次の方法で共有


WdfDeviceCreateDeviceInterface 関数 (wdfdevice.h)

[KMDF と UMDF に適用]

WdfDeviceCreateDeviceInterface メソッドは、指定されたデバイスのデバイス インターフェイスを作成します。

構文

NTSTATUS WdfDeviceCreateDeviceInterface(
  [in]           WDFDEVICE        Device,
  [in]           const GUID       *InterfaceClassGUID,
  [in, optional] PCUNICODE_STRING ReferenceString
);

パラメーター

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in] InterfaceClassGUID

デバイス インターフェイス クラスを識別する GUID へのポインター。

[in, optional] ReferenceString

デバイス インターフェイスの参照文字列を記述する UNICODE_STRING 構造体へのポインター。 文字列には、パス区切り文字 ("/" または "\") を含めてはなりません。 このパラメーターは省略可能であり、 NULL にすることができます。 詳細については、「解説」を参照してください。

戻り値

操作が成功した場合、WdfDeviceCreateDeviceInterface はSTATUS_SUCCESSを返します。

WdfDeviceCreateDeviceInterface が返すことができるその他の戻り値の一覧については、「フレームワーク オブジェクト作成エラー」を参照してください。

メソッドは、他の NTSTATUS 値を返す場合があります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーは、EVT_WDF_DRIVER_DEVICE_ADDから、またはデバイスの起動後に WdfDeviceCreateDeviceInterface を呼び出すことができます。

ドライバーは、 そのEVT_WDF_DRIVER_DEVICE_ADD コールバック関数からこの関数を呼び出す場合、デバイスが起動し、デバイスが停止したときに無効にすると、インターフェイスが自動的に有効になります。 自動有効化を防ぐために、ドライバーは IsInterfaceEnabled パラメーターを FALSE に設定して WdfDeviceSetDeviceInterfaceStateEx を呼び出すことができます。

デバイスが既に起動した後にドライバーがこの関数を呼び出した場合、インターフェイスは無効のままです。 ドライバーは、必要に応じて WdfDeviceSetDeviceInterfaceState を 呼び出すことができます。

ドライバーでは、 ReferenceString パラメーターを使用して、1 つのインターフェイスのさまざまなインスタンスを区別できます。 つまり、ドライバーが同じデバイス インターフェイス クラスに対して WdfDeviceCreateDeviceInterface を 2 回呼び出す場合、ドライバーは毎回異なる ReferenceString パラメーターを 指定できます。 インターフェイスのインスタンスを開くと、I/O マネージャーはインスタンスの参照文字列をドライバーに渡します。 参照文字列は、インターフェイス インスタンスの名前のパス コンポーネントに追加されます。 ドライバーは、参照文字列を使用して、開いているデバイス インターフェイス クラスのインスタンスを決定できます。

デバイス インターフェイスと WdfDeviceCreateDeviceInterface メソッドの詳細については、「 デバイス インターフェイスの使用」を参照してください。

次の例では、デバイスの COM ポート インターフェイス クラスを登録します。

NTSTATUS  status;

status = WdfDeviceCreateDeviceInterface(
                                        Device,
                                        (LPGUID) &GUID_DEVINTERFACE_COMPORT,
                                        NULL
                                        );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)

こちらもご覧ください

UNICODE_STRING

WdfDeviceSetDeviceInterfaceState