次の方法で共有


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 コードが返されます。

リターン コード 形容
STATUS_SUCCESS
ルーチンが要求されたサイズの拡張を割り当てたことを示します。
STATUS_INSUFFICIENT_RESOURCES
ドライバー オブジェクト拡張機能にメモリを割り当てられなかったことを示します。
STATUS_OBJECT_NAME_COLLISION
指定された ClientIdentificationAddress を持つドライバー オブジェクト拡張機能が既に存在することを示します。

備考

ドライバー オブジェクト拡張機能のシステムによって割り当てられたメモリは常駐ストレージであり、任意の IRQL からアクセスできます。 割り当てられた記憶域は、ドライバー オブジェクトが削除されると、I/O マネージャーによって自動的に解放されます。

このルーチンの呼び出し元は、ClientIdentificationAddressの一意識別子を指定する必要があります。 コンテキスト領域へのポインターを取得するために、呼び出し元は、ClientIdentificationAddress を IoGetDriverObjectExtension 渡します。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

関連項目

IoGetDriverObjectExtension