StorPortAllocatePool-Funktion (storport.h)
Die StorPortAllocatePool Routine weist einen Block nicht zusammenhängender, nicht ausgelagerter Poolspeicher zu.
Syntax
ULONG StorPortAllocatePool(
[in] PVOID HwDeviceExtension,
[in] ULONG NumberOfBytes,
[in] ULONG Tag,
[out] PVOID *BufferPointer
);
Parameter
[in] HwDeviceExtension
Ein Zeiger auf die Hardwaregeräteerweiterung für den Hostbusadapter (HBA).
[in] NumberOfBytes
Die Größe des speicherblocks in Bytes, der zugewiesen wird.
[in] Tag
Das Pooltag für den zugewiesenen Speicher. Treiber geben das Pooltag als Zeichenfolge von vier ASCII-Zeichen an, die durch einfache Anführungszeichen getrennt sind. Die Zeichenfolge wird in der Regel in umgekehrter Reihenfolge angegeben.
[out] BufferPointer
Ein Zeiger auf die Adresse des zugewiesenen Speicherblocks oder NULL- wenn nicht erfolgreich.
Rückgabewert
StorPortAllocatePool gibt einen der folgenden Statuscodes zurück:
Rückgabecode | Beschreibung |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | Diese Funktion ist nicht auf dem aktiven Betriebssystem implementiert. |
STOR_STATUS_SUCCESS | Gibt an, dass die Routine erfolgreich einen Speicherblock der angeforderten Größe zugeordnet hat. |
STOR_STATUS_INVALID_PARAMETER | Der Zeiger zum Empfangen der Pufferadresse ist NULL-. |
STOR_STATUS_INVALID_IRQL | Der Aufruf wurde an einem ungültigen IRQL ausgeführt. |
STOR_STATUS_INSUFFICIENT_RESOURCES | Speicher der angeforderten Größe kann nicht zugeordnet werden. |
Bemerkungen
Ein Miniporttreiber ruft die StorPortAllocatePool- Routine auf, um einen Block nicht zusammenhängender Speicher aus dem nicht ausgelagerten Pool zuzuweisen. Um den Speicherblock freizugeben, ruft der Miniporttreiber StorPortFreePoolauf. Wenn die Anforderung fehlschlägt, wird BufferPointer- auf NULL-festgelegt.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | storport.h (include Storport.h) |
IRQL- | <=DISPATCH_LEVEL |
DDI-Complianceregeln | StorPortAllocatePool(storport), StorPortAllocatePool2(storport), StorPortIrql(storport) |