Prototype
E_RTN EMemory::SpaceSuppressEach( ulonglong *pullSpaceCountSuppressed,
ulonglong ullSpaceToSuppressSize,
ulonglong ullStepEach,
BOOL bStartAtFirst,
ulonglong ullOffset = 0,
ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

Cette fonction supprime dans un intervalle de travail un espace de ullSpaceToSuppressSize octet(s) à intervalle régulier.

Si l'intervalle de travail est inférieur à l'intervalle régulier, cette fonction ne fait rien car elle supprime un espace TOUS LES INTERVALLES REGULIERS (faire un description dans Base).

L'espace de travail est redimensionné à la baisse du nombre d'octets supprimé.

 

Argument

ulonglong *pullSpaceCountSuppressed

adresse d'une variable de type ulonglong où y sera stocké le nombre d'espace supprimé (à ne pas confondre avec nombre d'octets supprimé).

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

ulonglong ullSpaceToSuppressSize

taille à supprimer à chaque intervalle régulier.

ulonglong ullStepEach

intervalle régulier de suppression.

BOOL bStartAtFirst

commencer la suppression de l'espace à partir de l'offset de départ.

Dans ce cas, spécifiez la valeur TRUE.

ulonglong ullOffset = 0

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

ulonglong ullOffsetSize = EMemory::SizeUpToEnd

étendue de l'intervalle de travail de suppression.

 

Retour

E_RTN

voir la section retour de la librairie Eclat.

 

Exemple

Description :

Suppression d'un espace de 2 octets tous les intervalles de 3 octets sur tout l'espace de travail d'un objet EMemory alloué de 12 octets contenant les données 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B et 0x4C ("ABCDEFGHIJKL" en ASCII).

Code :

EMemory eMem( "ABCDEFGHIJKL", 12 ); // objet EMemory alloué de 12 octets
ulonglong ullCount;

eMem.TraceEx( _T("eMem") );
eMem.SpaceSuppressEach( &ullCount, 2, 3, TRUE );
ETrace::DoEx( _T("Nombre d'espace supprimé = %I64u\n\n"), ullCount );
eMem.TraceEx( _T("eMem") );

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F2FC', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='12' byte(s).
# Array data from offset '0x00000000' to offset '0x0000000B', length=12 byte(s).
# Offset start 0x00000000 41 42 43 44 45 46 47 48 49 4A 4B 4C .. .. .. .. [ABCDEFGHIJKL]
### End #

Nombre d'espace supprimé = 3

### Object EMemory 'eMem' Trace #
# Object address='0x0012F2FC', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='6' byte(s).
# Array data from offset '0x00000000' to offset '0x00000005', length=6 byte(s).
# Offset start 0x00000000 43 44 45 48 49 4A .. .. .. .. .. .. .. .. .. .. [CDEHIJ]
### End #

Vue :

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 01 02 03 04 05 06 07 08 09 0A 0B
41
A
42
B
43
C
44
D
45
E
46
F
47
G
48
H
49
I
4A
J
4B
K
4C
L

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
00 01 02 03 04 05
43
C
44
D
45
E
48
H
49
I
4A
J

 

Voir aussi
E_RTN EMemory::SpaceSuppress( ulonglong ullOffset=0, ulonglong ullOffsetSize=EMemory::SizeUpToEnd );
E_RTN EMemory::ByteSuppress( ulonglong *pullByteCountSuppressed, uchar ucByteToSuppress, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
E_RTN EMemory::BytesSuppress( ulonglong *pullByteCountSuppressed, void *pBytesToSuppress, ulonglong ullBytesToSuppressSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
E_RTN EMemory::BlockSuppress( ulonglong *pullBlockCountSuppressed, void *pBlockToSuppress, ulonglong ullBlockToSuppressSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
E_RTN EMemory::BlocksSuppress( ulonglong *pullBlockCountSuppressed, ulonglong *pullBlockWeightAccrued, EMemory::SC_BLOCK *pscBlockToSuppress, ulonglong ullBlockToSuppressCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

 

Minimum
Version 1.0.0