次の方法で共有


UrsDeviceInitialize 関数 (ursdevice.h)

USB デュアルロール コントローラーに関連する操作をサポートするようにフレームワーク デバイス オブジェクトを初期化し、関連するイベント コールバック関数を USB デュアルロール コントローラー クラス拡張機能に登録します。

構文

NTSTATUS UrsDeviceInitialize(
  [in] WDFDEVICE   Device,
  [in] PURS_CONFIG Config
);

パラメーター

[in] Device

WdfDeviceCreate への前回の呼び出しでクライアント ドライバーが取得したフレームワーク デバイス オブジェクトハンドル。

[in] Config

URS_CONFIG_INITを呼び出してクライアント ドライバーが初期化した URS_CONFIG 構造体へのポインター。

戻り値

このメソッドは、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは適切な NTSTATUS エラー コードを返す可能性があります。

備考

USB デュアルロール コントローラーのクライアント ドライバーは、WdfDeviceCreate 呼び出しの後にこのメソッドを呼び出す必要があります。

クライアント ドライバーは、EvtDriverDeviceAdd 実装でこのメソッドを呼び出します。

この呼び出し中に、クライアント ドライバーが提供するイベント コールバック実装も、URS_CONFIGの適切なメンバーを設定することによって登録されます。

このメソッドは、ホスト ロールと関数ロールのリソース リストと、コントローラーに送信される IOCTL 要求を処理するために必要なキューを作成します。 ロールの切り替え操作ごとに、現在のロールの子デバイス スタックが切り捨てられ、新しいロールのデバイス スタックが読み込まれます。 UrsDeviceInitialize メソッドは、これらのデバイス スタックの構築に使用される識別情報を取得します。 このメソッドは、基になるバス (ACPI など) からデバイスに関する情報も取得します。



EVT_URS_DEVICE_FILTER_RESOURCE_REQUIREMENTS EvtUrsFilterResourceRequirements;
EVT_URS_SET_ROLE EvtUrsSetRole;

EvtDriverDeviceAdd (
    _In_ WDFDRIVER Driver,
    _Inout_ PWDFDEVICE_INIT DeviceInit
    )
{
...

    WDFDEVICE device;
    NTSTATUS status;
    WDF_OBJECT_ATTRIBUTES attributes;
    URS_CONFIG ursConfig;
...
 
    status = UrsDeviceInitInitialize(DeviceInit);
    if (!NT_SUCCESS(status)) {
        //UrsDeviceInitInitialize failed.
        return status;
    }
   
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, DRIVER_CONTEXT);
    status = WdfDeviceCreate(&DeviceInit, &attributes, &device);
    if (!NT_SUCCESS(status)) {
        // WdfDeviceCreate failed.
        return status;
    }
    URS_CONFIG_INIT(&ursConfig, UrsHostInterfaceTypeXhci, EvtUrsFilterResourceRequirements);
    
    ursConfig.EvtUrsSetRole = EvtUrsSetRole;
    status = UrsDeviceInitialize(device, &ursConfig);

    if (!NT_SUCCESS(status)) {
        // UrsDeviceInitialize failed.
        return status;

    }

...

}

必要条件

要件 価値
サポートされる最小クライアント Windows 10
サポートされる最小サーバー Windows Server 2016
ターゲット プラットフォーム ウィンドウズ
最小 KMDF バージョン 1.15
ヘッダー ursdevice.h (Urscx.h を含む)
ライブラリ Urscxstub.lib
IRQL PASSIVE_LEVEL

関連項目

URS_CONFIG

URS_CONFIG_INIT