Compartir a través de


Función ExAllocatePoolPriorityUninitialized (wdm.h)

Esta rutina es un contenedor y una opción de reemplazo para ExAllocatePoolWithTagPriority.

ExAllocatePoolPriorityUninitialized asigna memoria de grupo del tipo especificado.

Sintaxis

PVOID ExAllocatePoolPriorityUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag,
  EX_POOL_PRIORITY                               Priority
);

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.

Puede modificar el valor de enumeración realizando una operación OR bit a bit con la marca POOL_RAISE_IF_ALLOCATION_FAILURE definida en wdm.h. Esta marca hace que se genere una excepción si no se puede satisfacer la solicitud. No se recomienda el uso de esta marca porque es costoso.

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. Para obtener más información, vea el parámetro Tag de ExAllocatePoolWithTag.

Priority

Valor de enumeración EX_POOL_PRIORITY que especifica la prioridad de esta solicitud.

Valor devuelto

ExAllocatePoolPriorityUninitialized devuelve NULL si no hay memoria suficiente en el grupo libre para satisfacer la solicitud a menos que se especifique POOL_RAISE_IF_ALLOCATION_FAILURE. De lo contrario, la rutina devuelve un puntero a la memoria asignada.

Comentarios

La memoria que asigna ExAllocatePoolPriorityUninitialized 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 ExAllocatePoolWithTagPriority 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 <= DISPATCH_LEVEL (consulte la sección Comentarios)
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo

Consulte también

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero