Macro FsRtlAllocatePoolWithQuotaTag (ntifs.h)
La rutina FsRtlAllocatePoolWithQuotaTag asigna memoria del grupo, cargando cuota en el proceso actual.
Sintaxis
void FsRtlAllocatePoolWithQuotaTag(
[in] PoolType,
[in] NumberOfBytes,
[in] Tag
);
Parámetros
[in] PoolType
Tipo de grupo que se va a asignar. Uno de los siguientes:
- NonPagedPool
- PagedPool
- NonPagedPoolCacheAligned
- PagedPoolCacheAligned
Los tipos de grupo NonPagedPoolMustSucceed y NonPagedPoolCacheAlignedMustS están obsoletos y ya no deben usarse.
[in] NumberOfBytes
Número de bytes que se van a asignar.
[in] Tag
Especifica la etiqueta de grupo para la memoria asignada. Normalmente, los controladores especifican la etiqueta de grupo como una cadena de uno a cuatro caracteres ASCII de 7 bits, delimitados por comillas simples (por ejemplo, "abcd"). Este parámetro es necesario y no puede ser cero.
Valor devuelto
None
Observaciones
Si se produce un error de asignación de grupo, FsRtlAllocatePoolWithQuotaTag genera una excepción de STATUS_INSUFFICIENT_RESOURCES. Para obtener control si se produce este error de asignación de grupo, el controlador debe encapsular la llamada a FsRtlAllocatePoolWithQuotaTag en una instrucción try-except o try-finally .
El sistema asocia la etiqueta de grupo especificada por el parámetro Tag con el búfer asignado. Las herramientas de programación, como el depurador de Windows (WinDbg), pueden mostrar la etiqueta de grupo asociada a cada búfer asignado. El valor de la etiqueta de grupo se muestra normalmente en orden invertido. Por ejemplo, si un autor de la llamada pasa "Fred" como valor del parámetro Tag , este valor aparecerá como "derF" si el grupo se volcado o cuando se realiza el seguimiento del uso del grupo en el depurador.
Para obtener más información sobre la administración de memoria, consulte Administración de memoria.
La memoria que FsRtlAllocatePoolWithQuotaTag asigna no está inicializada. Un controlador en modo kernel debe cero primero esta memoria si va a hacer que sea visible para el software en modo de usuario (para evitar la pérdida de contenido potencialmente con privilegios).
Los autores de llamadas de FsRtlAllocatePoolWithQuotaTag deben ejecutarse en IRQL <= DISPATCH_LEVEL. Un autor de llamada en DISPATCH_LEVEL debe especificar un valor NonPaged***XxxPoolType. De lo contrario, el autor de la llamada debe ejecutarse en irQL < DISPATCH_LEVEL.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (consulte la sección Comentarios) |