Prototype
E_RTN EMemory::BlockCountGet( ulonglong *pullBlockCounted,
void *pBlockToCount,
ulonglong ullBlockToCountSize,
ulonglong ullOffset = 0,
ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

Cette fonction décompte le nombre de bloc d'octets de l'intervalle de travail ayant les valeurs du bloc d'octets pBlockToCount.

 

Argument

ulonglong *pullBlockCounted

adresse d'une variable de type ulonglong où y sera stocké le nombre de bloc d'octets trouvé.

Si cette information ne vous intéresse pas cet argument peut être NULL (la fonction ne retournera pas d'erreur à ce propos).

void *pBlockToCount

adresse du bloc d'octets à décompter.

ulonglong ullBlockToCountSize

taille du bloc d'octets à décompter.

ulonglong ullOffset = 0

offset de départ de l'intervalle de travail de décompte.

ulonglong ullOffsetSize = EMemory::SizeUpToEnd

étendue de l'intervalle de travail de décompte.

 

Retour

E_RTN

voir la section retour de la librairie Eclat.

 

Exemple

Description :

Décompte du nombre de bloc d'octets ayant les valeurs contigues 0x41, 0x42 et 0x41 ("ABA" en ASCII) dans l'ensemble de l'espace de travail puis dans un intervalle de travail de l'offset 1 sur une taille de 9 octets d'un objet EMemory alloué de 11 octets d'espace de travail contenant les données 0x41, 0x42, 0x41, 0x42, 0x41, 0x42, 0x41, 0x42, 0x41, 0x42 et 0x41 ("ABABABABABA" en ASCII).

Code :

EMemory eMem( "ABABABABABA", 11 ); // objet EMemory alloué de 11 octets
ulonglong ullBlockCount = 0;

eMem.TraceEx( _T("eMem") );

eMem.BlockCountGet( &ullBlockCount, "ABA", 3 );
ETrace::DoEx( _T("Nombre de bloc d'octets ayant les valeurs \"ABA\" = %I64u.\n"), ullBlockCount );

eMem.BlockCountGet( &ullBlockCount, "ABA", 3, 1, 9 );
ETrace::DoEx( _T("Nombre de bloc d'octets ayant les valeurs \"ABA\" = %I64u.\n"), ullBlockCount );

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000002', workspace size='11' byte(s).
# Array data from offset '0x00000000' to offset '0x0000000A', length=11 byte(s).
# Offset start 0x00000000 41 42 41 42 41 42 41 42 41 42 41 .. .. .. .. .. [ABABABABABA]
### End #

Nombre de bloc d'octets ayant les valeurs "ABA" = 3.
Nombre de bloc d'octets ayant les valeurs "ABA" = 2.

Vue :

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04 05 06 07 08 09 0A
  41
A
42
B
41
A
42
B
41
A
42
B
41
A
42
B
41
A
42
B
41
A

 

Voir aussi
E_RTN EMemory::ByteCountGet( ulonglong *pullByteCounted, uchar ucByteToCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
E_RTN EMemory::BytesCountGet( ulonglong *pullByteCounted, void *pBytesToCount, ulonglong ullBytesToCountSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
E_RTN EMemory::BlocksCountGet( ulonglong *pullBlockCounted, ulonglong *pullBlockWeightAccrued, EMemory::SC_BLOCK *pscBlockToCount, ulonglong ullBlockToCountCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

 

Minimum
Version 1.0.0