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) |