BUS_INTERFACE_REFERENCE構造体 (ks.h)
ソフトウェア デバイス列挙子は、このインターフェイスをエクスポートして、ドライバーがカウント物理デバイス オブジェクト (PDO) を参照できるようにして、使用中にデバイスがアクティブなままになり、使用されていないときにアンロードされるようにします。
構文
typedef struct {
INTERFACE Interface;
PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
PFNQUERYREFERENCESTRING QueryReferenceString;
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;
メンバー
Interface
エクスポートされた INTERFACE を指定 します。
ReferenceDeviceObject
ドライバー指定の KStrReferenceDeviceObject ルーチンへのポインター。
DereferenceDeviceObject
ドライバー提供の KStrDereferenceDeviceObject ルーチンへのポインター。
QueryReferenceString
ドライバー提供の KStrQueryReferenceString ルーチンへのポインター。
注釈
ドライバーは、IRP_MN_QUERY_INTERFACEマイナー関数コードを指定するIRP_MJ_PNP要求を作成して送信することによって 、BUS_INTERFACE_REFERENCE インターフェイスを 取得します。 これを行うには、ドライバーは次のことを行う必要があります。
- ページメモリプールからBUS_INTERFACE_REFERENCE構造体を割り当ててゼロフィルします。
- クエリ インターフェイス要求用の IRP を作成し、新しい IRP の次のスタックの場所を取得します。
- 新しいスタックの場所で、 Parameters.QueryInterface.Interface メンバーの新しいBUS_INTERFACE_REFERENCE構造体へのポインターを指定します。
- 完了ルーチンを設定し、ドライバー スタックに要求を送信します。
- 要求が成功した場合、システムは Parameters.QueryInterface.Interface が指すBUS_INTERFACE_REFERENCE構造体を入力します。
要件
要件 | 値 |
---|---|
Header | ks.h (Ks.h を含む) |