IoAllocateDriverObjectExtension 関数 (wdm.h)
IoAllocateDriverObjectExtension ルーチンは、ドライバー オブジェクト拡張機能と呼ばれるドライバーごとのコンテキスト領域を割り当て、一意の識別子を割り当てます。
構文
NTSTATUS IoAllocateDriverObjectExtension(
[in] PDRIVER_OBJECT DriverObject,
[in] PVOID ClientIdentificationAddress,
[in] ULONG DriverObjectExtensionSize,
[out] PVOID *DriverObjectExtension
);
パラメーター
[in] DriverObject
コンテキスト領域が関連付けられるドライバー オブジェクトへのポインター。
[in] ClientIdentificationAddress
割り当てるコンテキスト領域の一意識別子を指定します。
[in] DriverObjectExtensionSize
割り当てるコンテキスト領域の長さをバイト単位で指定します。
[out] DriverObjectExtension
完了時に割り当てられたコンテキスト領域へのポインター。
戻り値
IoAllocateDriverObjectExtension は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
ルーチンが要求されたサイズの拡張を割り当てたことを示します。 |
|
ドライバー オブジェクト拡張機能にメモリを割り当てられなかったことを示します。 |
|
指定された ClientIdentificationAddress を持つドライバー オブジェクト拡張機能が既に存在することを示します。 |
注釈
ドライバー オブジェクト拡張機能用にシステムによって割り当てられたメモリは常駐ストレージであり、任意の IRQL からアクセスできます。 ドライバー オブジェクトが削除されると、割り当てられたストレージは I/O マネージャーによって自動的に解放されます。
このルーチンの呼び出し元は、 ClientIdentificationAddress の一意の識別子を指定する必要があります。 コンテキスト領域へのポインターを取得するために、呼び出し元は ClientIdentificationAddress を IoGetDriverObjectExtension に渡します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |