Compartir a través de


Macro FsRtlAllocatePoolWithTag (ntifs.h)

La rutina de FsRtlAllocatePoolWithTag asigna memoria del grupo.

Sintaxis

void FsRtlAllocatePoolWithTag(
  [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 nonPagedPoolMustSucceed y NonPagedPoolCacheAlignedMustS tipos de grupo están obsoletos y ya no se deben usar.

[in] NumberOfBytes

Número de bytes que se van a asignar. Este parámetro es necesario y no puede ser cero.

[in] Tag

Especifica la etiqueta de grupo para la memoria asignada. Los controladores normalmente 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

Ninguno

Observaciones

Si se produce un error de asignación de grupo, FsRtlAllocatePoolWithTag 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 FsRtlAllocatePoolWithTag en un try-except o instrucción 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 volca 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 FsRtlAllocatePoolWithTag asigna está sin inicializar. Un controlador en modo kernel primero debe cero 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 FsRtlAllocatePoolWithTag deben ejecutarse en IRQL <= DISPATCH_LEVEL. Un autor de llamada en DISPATCH_LEVEL debe especificar un nonPagedXxxPoolType. De lo contrario, el autor de la llamada debe ejecutarse en IRQL <= APC_LEVEL.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= DISPATCH_LEVEL (consulte la sección Comentarios)

Consulte también

exAllocatePoolWithTag

ExFreePool