次の方法で共有


IoGetAttachedDeviceReference 関数 (ntifs.h)

IoGetAttachedDeviceReference ルーチンは、ドライバー スタック内の最上位レベルのデバイス オブジェクトへのポインターを返し、そのオブジェクトの参照カウントをインクリメントします。

構文

PDEVICE_OBJECT IoGetAttachedDeviceReference(
  [in] PDEVICE_OBJECT DeviceObject
);

パラメーター

[in] DeviceObject

最上位のアタッチされたデバイス オブジェクトが取得されるデバイス オブジェクトへのポインター。

戻り値

IoGetAttachedDeviceReference は、オブジェクトの参照カウントをインクリメントした後、アタッチされたデバイス オブジェクトのスタック内の最上位レベルのデバイス オブジェクトへのポインターを返します。

注釈

DeviceObject のデバイス オブジェクトにデバイス オブジェクトがアタッチされていない場合、DeviceObject と返されるポインターは等しくなります。

デバイス ドライバーライターは、この呼び出しを行う必要があるすべての操作を完了したときに、このルーチンによって返されるデバイス オブジェクト ポインターを使用して ObDereferenceObject を呼び出すようにする必要があります。 これを行わないと、未処理の参照カウントが原因で、システムがデバイス オブジェクトを解放または削除できなくなります。

要件

要件
サポートされている最小のクライアント Windows 2000
対象プラットフォーム ユニバーサル
Header ntifs.h (Wdm.h、Ntddk.h、Ntifs.h を含みます)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DanglingDeviceObjectReference(wdm), HwStorPortProhibitedDDIs(storport)

こちらもご覧ください

ObDereferenceObject