StorPortAllocatePool 関数 (storport.h)
StorPortAllocatePool ルーチンは、連続していない非ページ プール メモリのブロックを割り当てます。
構文
ULONG StorPortAllocatePool(
[in] PVOID HwDeviceExtension,
[in] ULONG NumberOfBytes,
[in] ULONG Tag,
[out] PVOID *BufferPointer
);
パラメーター
[in] HwDeviceExtension
ホスト バス アダプター (HBA) のハードウェア デバイス拡張機能へのポインター。
[in] NumberOfBytes
割り当てられているメモリ ブロックのサイズ (バイト単位)。
[in] Tag
割り当てられたメモリのプール タグ。 ドライバーは、プール タグを 4 つの ASCII 文字の文字列として指定し、単一引用符で区切ります。 通常、文字列は逆の順序で指定されます。
[out] BufferPointer
割り当てられたメモリ ブロックのアドレスへのポインター。成功しなかった場合は NULL 。
戻り値
StorPortAllocatePool は、次のいずれかの状態コードを返します。
リターン コード | 説明 |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | この関数は、アクティブなオペレーティング システムには実装されません。 |
STOR_STATUS_SUCCESS | ルーチンが要求されたサイズのメモリ ブロックを正常に割り当てたことを示します。 |
STOR_STATUS_INVALID_PARAMETER | バッファー アドレスを受け取るポインターは NULL です。 |
STOR_STATUS_INVALID_IRQL | 呼び出しが無効な IRQL で行われました。 |
STOR_STATUS_INSUFFICIENT_RESOURCES | 要求されたサイズのメモリを割り当てられません。 |
注釈
ミニポート ドライバーは 、StorPortAllocatePool ルーチンを呼び出して、非ページ プールから連続していないメモリのブロックを割り当てます。 メモリ ブロックを解放するために、ミニポート ドライバーは StorPortFreePool を呼び出します。 要求が失敗した場合、 BufferPointer は NULL に設定されます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | storport.h (Storport.h を含む) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | StorPortAllocatePool(storport)、 StorPortAllocatePool2(storport)、 StorPortIrql(storport) |