estructura PROCESS_HEAP_ENTRY (minwinbase.h)
Contiene información sobre un elemento de montón. La función HeapWalk usa una estructura PROCESS_HEAP_ENTRY para enumerar los elementos de un montón.
Sintaxis
typedef struct _PROCESS_HEAP_ENTRY {
PVOID lpData;
DWORD cbData;
BYTE cbOverhead;
BYTE iRegionIndex;
WORD wFlags;
union {
struct {
HANDLE hMem;
DWORD dwReserved[3];
} Block;
struct {
DWORD dwCommittedSize;
DWORD dwUnCommittedSize;
LPVOID lpFirstBlock;
LPVOID lpLastBlock;
} Region;
} DUMMYUNIONNAME;
} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY;
Miembros
lpData
Puntero a la parte de datos del elemento del montón.
Para iniciar una enumeración heapWalk heapWalk , establezca lpData en NULL.
Si PROCESS_HEAP_REGION se usa en el miembro wFlags , lpData apunta a la primera dirección virtual usada por la región.
Si PROCESS_HEAP_UNCOMMITTED_RANGE se usa en wFlags, lpData apunta al principio del intervalo de memoria no confirmada.
cbData
Tamaño de la parte de datos del elemento del montón, en bytes.
Si PROCESS_HEAP_REGION se usa en wFlags, cbData especifica el tamaño total, en bytes, del espacio de direcciones reservado para esta región.
Si PROCESS_HEAP_UNCOMMITTED_RANGE se usa en wFlags, cbData especifica el tamaño, en bytes, del intervalo de memoria no confirmada.
cbOverhead
Tamaño de los datos utilizados por el sistema para mantener información sobre el elemento del montón, en bytes. Estos bytes de sobrecarga se agregan a los bytes cbData de la parte de datos del elemento del montón.
Si PROCESS_HEAP_REGION se usa en wFlags, cbOverhead especifica el tamaño, en bytes, de las estructuras de control del montón que describen la región.
Si PROCESS_HEAP_UNCOMMITTED_RANGE se usa en wFlags, cbOverhead especifica el tamaño, en bytes, de las estructuras de control que describen este intervalo no confirmado.
iRegionIndex
Identificador de la región del montón que contiene el elemento del montón. Un montón consta de una o varias regiones de memoria virtual, cada una con un índice de región único.
En la primera entrada del montón devuelta para la mayoría de las regiones del montón, HeapWalk usa el PROCESS_HEAP_REGION en el miembro wFlags . Cuando se usa este valor, los miembros de la estructura Region contienen información adicional sobre la región.
La función HeapAlloc a veces usa la función VirtualAlloc para asignar bloques grandes desde un montón que se puede crecer. El administrador del montón trata una asignación de bloques de gran tamaño como una región independiente con un índice de región único. HeapWalk no usa PROCESS_HEAP_REGION en la entrada del montón devuelta para una región de bloque grande, por lo que los miembros de la estructura Region no son válidos. Puede usar la función VirtualQuery para obtener información adicional sobre una región de bloque grande.
wFlags
Propiedades del elemento del montón. Algunos valores afectan al significado de otros miembros de esta estructura de datos PROCESS_HEAP_ENTRY . Se definen los valores siguientes.
DUMMYUNIONNAME
DUMMYUNIONNAME.Block
Esta estructura solo es válida si se especifican tanto el PROCESS_HEAP_ENTRY_BUSY como el PROCESS_HEAP_ENTRY_MOVEABLE en wFlags.
DUMMYUNIONNAME.Block.hMem
Identificador del bloque de memoria asignado y desplazable.
DUMMYUNIONNAME.Block.dwReserved[3]
Reservados; no se usa.
DUMMYUNIONNAME.Region
Esta estructura solo es válida si el miembro wFlags especifica PROCESS_HEAP_REGION.
DUMMYUNIONNAME.Region.dwCommittedSize
Número de bytes en la región del montón que se confirma actualmente como bloques de memoria libres, bloques de memoria ocupados o estructuras de control del montón.
Se trata de un campo opcional que se establece en cero si el número de bytes confirmados no está disponible.
DUMMYUNIONNAME.Region.dwUnCommittedSize
Número de bytes de la región del montón que actualmente no se han confirmado.
Se trata de un campo opcional que se establece en cero si el número de bytes no confirmados no está disponible.
DUMMYUNIONNAME.Region.lpFirstBlock
Puntero al primer bloque de memoria válido de esta región del montón.
DUMMYUNIONNAME.Region.lpLastBlock
Puntero al primer bloque de memoria no válido de esta región del montón.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | minwinbase.h (incluye Windows.h) |