Condividi tramite


Funzione StorPortAllocatePool (storport.h)

La routine StorPortAllocatePool alloca un blocco di memoria del pool non contiguo e non di paging.

Sintassi

ULONG StorPortAllocatePool(
  [in]  PVOID HwDeviceExtension,
  [in]  ULONG NumberOfBytes,
  [in]  ULONG Tag,
  [out] PVOID *BufferPointer
);

Parametri

[in] HwDeviceExtension

Puntatore all'estensione del dispositivo hardware per la scheda bus host (HBA).

[in] NumberOfBytes

Dimensioni, in byte, del blocco di memoria allocato.

[in] Tag

Tag del pool per la memoria allocata. I driver specificano il tag del pool come stringa di quattro caratteri ASCII, delimitati da virgolette singole. La stringa viene in genere specificata in ordine inverso.

[out] BufferPointer

Puntatore all'indirizzo del blocco di memoria allocato o NULL in caso di esito negativo.

Valore restituito

StorPortAllocatePool restituisce uno dei codici di stato seguenti:

Codice restituito Descrizione
STOR_STATUS_NOT_IMPLEMENTED Questa funzione non viene implementata nel sistema operativo attivo.
STOR_STATUS_SUCCESS Indica che la routine ha allocato correttamente un blocco di memoria delle dimensioni richieste.
STOR_STATUS_INVALID_PARAMETER Il puntatore per ricevere l'indirizzo del buffer è NULL.
STOR_STATUS_INVALID_IRQL La chiamata è stata effettuata in un IRQL non valido.
STOR_STATUS_INSUFFICIENT_RESOURCES Impossibile allocare memoria delle dimensioni richieste.

Osservazioni

Un driver miniport chiama la routine StorPortAllocatePool per allocare un blocco di memoria non contigua dal pool non di paging. Per liberare il blocco di memoria, il driver miniport chiama StorPortFreePool. Se la richiesta non riesce, BufferPointer verrà impostata su NULL.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione storport.h (include Storport.h)
IRQL <=DISPATCH_LEVEL
regole di conformità DDI StorPortAllocatePool(storport), StorPortAllocatePool2(storport), StorPortIrql(storport)

Vedere anche

StorPortFreePool