次の方法で共有


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 の一意の識別子を指定する必要があります。 コンテキスト領域へのポインターを取得するために、呼び出し元は ClientIdentificationAddressIoGetDriverObjectExtension に渡します。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

IoGetDriverObjectExtension