Compartir a través de


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)

Consulte también

ExAllocatePoolWithQuotaTag

ExFreePool

FsRtlAllocatePoolWithQuota