Función ExAllocatePoolQuotaUninitialized (wdm.h)

La rutina ExAllocatePoolQuotaUninitialized asigna memoria del grupo y carga la cuota en el proceso actual.

Esta rutina es un contenedor y una opción de reemplazo para ExAllocatePoolWithQuotaTag. No hay ninguna diferencia en la funcionalidad.

Sintaxis

PVOID ExAllocatePoolQuotaUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag
);

Parámetros

PoolType

Tipo de memoria del grupo que se va a asignar. Para obtener una descripción de los tipos de memoria del grupo disponibles, consulte POOL_TYPE.

Del mismo modo, puede modificar el valor PoolType mediante ORing bit a bit con la marca POOL_COLD_ALLOCATION (también definida en wdm.h) como una sugerencia al kernel para asignar la memoria de las páginas que probablemente se van a paginar rápidamente. Para reducir la cantidad de memoria del grupo residente tanto como sea posible, no debe hacer referencia a estas asignaciones con frecuencia. La marca POOL_COLD_ALLOCATION solo es aviso.

NumberOfBytes

Número de bytes que se van a asignar.

Tag

Etiqueta de grupo que se va a usar para la memoria asignada. Especifique la etiqueta de grupo como un literal de carácter distinto de cero de uno a cuatro caracteres delimitado por comillas simples (por ejemplo, Tag1). Normalmente, la cadena se especifica en orden inverso (por ejemplo, 1gaT). Cada carácter ASCII de la etiqueta debe ser un valor del intervalo 0x20 (espacio) para 0x7E (tilde). Cada ruta de acceso de código de asignación debe usar una etiqueta de grupo única para ayudar a los depuradores y comprobadores a identificar la ruta de acceso del código.

Valor devuelto

ExAllocatePoolQuotaUninitialized devuelve un puntero al grupo asignado.

Si no se puede satisfacer la solicitud, ExAllocatePoolQuotaUninitialized genera una excepción a menos que se especifique POOL_QUOTA_FAIL_INSTEAD_OF_RAISE. El uso de POOL_QUOTA_FAIL_INSTEAD_OF_RAISE se prefiere por motivos de rendimiento.

Comentarios

Los controladores de nivel superior llaman a esta rutina que asignan memoria para satisfacer una solicitud en el contexto del proceso que originalmente realizó la solicitud de E/S. Los controladores de nivel inferior llaman a ExAllocatePoolUninitialized en su lugar.

La memoria que asigna ExAllocatePoolQuotaUninitialized no está inicializada . 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).

Consulte la sección Comentarios de ExAllocatePoolWithQuotaTag para obtener instrucciones adicionales.

Requisitos

Requisito Value
Cliente mínimo compatible Requiere WDK para Windows 10, versión 2004. Tiene como destino Windows 7 y versiones posteriores del sistema operativo Windows.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL (consulte la sección Comentarios)
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs, SpNoWait, StorPortStartIo

Consulte también

ExAllocatePoolQuotaZero

ExAllocatePoolWithQuotaTag