INTERFACE 構造体 (wdm.h)
INTERFACE 構造体は、他のドライバーで使用するためにドライバーによってエクスポートされるインターフェイスを表します。
構文
typedef struct _INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;
メンバー
Size
ドライバー インターフェイスを定義する構造体のサイズ (バイト単位)。
Version
ドライバー定義インターフェイスのバージョン。
Context
インターフェイス固有のコンテキスト情報へのポインター。
InterfaceReference
インターフェイスの参照カウントをインクリメントするドライバー提供の InterfaceReference ルーチンへのポインター。
InterfaceDereference
インターフェイスの参照カウントをデクリメントするドライバー提供の InterfaceDereference ルーチンへのポインター。
注釈
INTERFACE 構造体は、IRP_MN_QUERY_INTERFACE要求に応答してドライバーによって返されるインターフェイスを記述するすべての構造体の最初のメンバーとして含める必要があります。
InterfaceReference ルーチンは、ドライバーがIRP_MN_QUERY_INTERFACEに応答してそのインターフェイスを提供するたびに、インターフェイスをエクスポートするドライバーによって呼び出される必要があります。 同様に、インターフェイスを要求するドライバーが後で別のドライバーに渡す場合、インターフェイスを渡すドライバーは、それを受け取るドライバーの代わりに InterfaceReference を呼び出す必要があります。
インターフェイスをインポートする各ドライバー ( IRP_MN_QUERY_INTERFACE を送信するか、別のドライバーからインターフェイスを受信するかに関係なく) インターフェイスの使用が完了したら 、InterfaceDereference ルーチンを呼び出す必要があります。 InterfaceDereference ルーチンを呼び出した後、ドライバーは、インターフェイスを最初に再観察しないと、インターフェイスを再度使用できません。
既存のインターフェイスの新しいバージョンを導入する場合は、この構造体の [サイズ ] フィールドまたは [ バージョン ] フィールドを変更する代わりに、新しい GUID を作成します。 詳細については、「 Driver-Defined インターフェイスの使用」を参照してください。
要件
要件 | 値 |
---|---|
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h、Miniport.h を含む) |