Función StorPortAllocatePool (storport.h)
La rutina StorPortAllocatePool asigna un bloque de memoria de grupo no contigua y no paginada.
Sintaxis
ULONG StorPortAllocatePool(
[in] PVOID HwDeviceExtension,
[in] ULONG NumberOfBytes,
[in] ULONG Tag,
[out] PVOID *BufferPointer
);
Parámetros
[in] HwDeviceExtension
Puntero a la extensión de dispositivo de hardware para el adaptador de bus host (HBA).
[in] NumberOfBytes
Tamaño, en bytes, del bloque de memoria que se va a asignar.
[in] Tag
Etiqueta de grupo para la memoria asignada. Los controladores especifican la etiqueta pool como una cadena de cuatro caracteres ASCII, delimitados por comillas simples. Normalmente, la cadena se especifica en orden inverso.
[out] BufferPointer
Puntero a la dirección del bloque de memoria asignado o NULL si no se ejecuta correctamente.
Valor devuelto
StorPortAllocatePool devuelve uno de los siguientes códigos de estado:
Código devuelto | Descripción |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | Esta función no se implementa en el sistema operativo activo. |
STOR_STATUS_SUCCESS | Indica que la rutina asignó correctamente un bloque de memoria del tamaño solicitado. |
STOR_STATUS_INVALID_PARAMETER | El puntero para recibir la dirección del búfer es NULL. |
STOR_STATUS_INVALID_IRQL | La llamada se realizó en un IRQL no válido. |
STOR_STATUS_INSUFFICIENT_RESOURCES | No se puede asignar memoria del tamaño solicitado. |
Comentarios
Un controlador de minipuerto llama a la rutina StorPortAllocatePool para asignar un bloque de memoria no contigua del grupo no paginado. Para liberar el bloque de memoria, el controlador de minipuerto llama a StorPortFreePool. Si se produce un error en la solicitud, BufferPointer se establecerá en NULL.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | storport.h (incluya Storport.h) |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | StorPortAllocatePool(storport), StorPortAllocatePool2(storport), StorPortIrql(storport) |