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) |