次の方法で共有


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 ルーチンを呼び出した後、ドライバーは、最初にインターフェイスを再度使用しないと、インターフェイスを再度使用できません。

既存のインターフェイスの新しいバージョンを導入する場合は、この構造体の Size フィールドまたは Version フィールドを変更するのではなく、新しい GUID を作成します。 詳細については、「Driver-Defined インターフェイスの使用 」を参照してください。

必要条件

要件 価値
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h、ミニポート h を含む)

関連項目

IRP_MN_QUERY_INTERFACE

InterfaceDereference