IoGetDeviceAttachmentBaseRef 関数 (ntifs.h)

IoGetDeviceAttachmentBaseRef ルーチンは、ファイル システムまたはデバイス ドライバー スタック内の最下位レベルのデバイス オブジェクトへのポインターを返します。

構文

PDEVICE_OBJECT IoGetDeviceAttachmentBaseRef(
  [in] PDEVICE_OBJECT DeviceObject
);

パラメーター

[in] DeviceObject

スタック内のデバイス オブジェクトへのポインター。

戻り値

IoGetDeviceAttachmentBaseRef は 、ファイル システムまたはデバイス ドライバー スタックの下部にあるデバイス オブジェクトへのポインターを返します。 指定されたデバイス オブジェクトがドライバー スタックにアタッチされていない場合、 IoGetDeviceAttachmentBaseRef はDeviceObject のデバイス オブジェクト ポインターを返します。

注釈

ファイル システム フィルター ドライバーは通常 、IoGetDeviceAttachmentBaseRef を呼び出して、ファイル システム ドライバー スタック内の最下位レベルのデバイス オブジェクトを取得します。 多くの場合、これは、フィルター ドライバーが、ファイル システムが自身をアクティブなファイル システムとして登録または登録解除したことを示す通知を受け取ったときに行われます。 フィルター ドライバーの通知コールバック ルーチンは 、IoGetDeviceAttachmentBaseRef を呼び出してファイル システムのコントロール デバイス オブジェクトへのポインターを取得し、 ObQueryNameString を呼び出して、デバッグのためにこのオブジェクトの名前を取得します。

IoGetDeviceAttachmentBaseRef は 、スタックの下部にあるデバイス オブジェクトの参照カウントをインクリメントします。 したがって、 IoGetDeviceAttachmentBaseRef の呼び出しが成功するたびに、 ObDereferenceObject の後続の呼び出しと一致する必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 SP4 更新プログラムのロールアップ。Windows XP
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

IoEnumerateDeviceObjectList

IoGetLowerDeviceObject

IoRegisterFsRegistrationChange

IoUnregisterFsRegistrationChange

ObDereferenceObject

ObQueryNameString