Prototype
long EMemory::OffsetStatusSizeGet( ulonglong ullOffset,
ulonglong ullOffsetSize );

Cette fonction retourne le statut d'un intervalle de travail d'un objet EMemory (voir Base » Intervalle de travail, Base » Statut d'un intervalle de travail) qui l'une des valeurs définie dans l'énumération de l'objet (voir Enum).

Contrairement aux autres fonctions, la variable ullOffsetSize ne peut avoir la valeur EMemory::SizeUpToEnd. Vous devez spécifier l'étendue réelle de l'intervalle de travail. Si vous spécifiez EMemory::SizeUpToEnd, la fonction considère que l'étendue de l'intervalle de travail est égale à 0xFFFFFFFFFFFFFFFFL (soit 18.446.744.073.709.551.615 octets).

 

Argument

ulonglong ullOffset

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

ulonglong ullOffsetSize

étendue de l'intervalle de travail.

 

Retour

long

statut de l'offset, soit EMemory::OffsetStatus_Unknown soit EMemory::OffsetStatus_In soit EMemory::OffsetStatus_Limit soit EMemory::OffsetStatus_Out soit EMemory::OffsetStatus_Ride.

 

Exemple

Description :

Teste le statut des intervalles de travail (offset + étendue) d'une étendue de 3 octets pour des offsets de 0, 2, 4, 5 et 6 d'un objet EMemory alloué de 5 octets d'espace de travail.

Code :

EMemory eMem( 5 ); // objet EMemory alloué de 5 octets
ulonglong ulltOffset[]={ 0, 2, 4, 5, 6 };
long lOffsetStatus;
TCHAR *psztStatus[]={
    _T("EMemory::OffsetStatus_Unknown"),
    _T("EMemory::OffsetStatus_In"),
    _T("EMemory::OffsetStatus_Limit"),
    _T("EMemory::OffsetStatus_Out"),
    _T("EMemory::OffsetStatus_Ride") };

eMem.Trace( _T("eMem") );

for ( int i = 0; i<sizeof(ulltOffset)/sizeof(ulonglong); i++ )
  {
  lOffsetStatus = eMem.OffsetStatusSizeGet( ulltOffset[i], 3 );
  ETrace::DoEx( _T("Le statut de l'offset %I64u d'une taille de 3 octets est : %s (code %d) !\n"), ulltOffset[i], psztStatus[lOffsetStatus], lOffsetStatus );
  }

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='5' byte(s).
### End #

Le statut de l'offset 0 d'une taille de 3 octets est : EMemory::OffsetStatus_In (code 1) !
Le statut de l'offset 2 d'une taille de 3 octets est : EMemory::OffsetStatus_In (code 1) !
Le statut de l'offset 4 d'une taille de 3 octets est : EMemory::OffsetStatus_Ride (code 4) !
Le statut de l'offset 5 d'une taille de 3 octets est : EMemory::OffsetStatus_Limit (code 2) !
Le statut de l'offset 6 d'une taille de 3 octets est : EMemory::OffsetStatus_Out (code 3) !

Vue :

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04
I n |< = >|
I n |< = >|
R i d e |< = >|
L i m i t |< = >|
O u t |< = >|

 

Voir aussi
long EMemory::OffsetStatusGet( ulonglong ullOffset );

 

Minimum
Version 1.0.0