EVT_URS_SET_ROLE コールバック関数 (ursdevice.h)

URS クラス拡張機能は、クライアント ドライバーがコントローラーの役割を変更する必要がある場合に、このイベント コールバックを呼び出します。

構文

EVT_URS_SET_ROLE EvtUrsSetRole;

NTSTATUS EvtUrsSetRole(
  [in] WDFDEVICE Device,
  [in] URS_ROLE Role
)
{...}

パラメーター

[in] Device

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

[in] Role

コントローラー デバイス 対して設定するロールを示すURS_ROLE型の値。

戻り値

操作が成功した場合、コールバック関数は STATUS_SUCCESS、またはNT_SUCCESS(status) が TRUE と等しい別の状態値を返す必要があります。 それ以外の場合は、NT_SUCCESS(status) が FALSE の状態値を返す必要があります。

注釈

イベント コールバックのクライアント ドライバーの実装を登録するには、ドライバーで URS_CONFIG の EvtUrsSetRoleメンバーを実装 メソッドの関数ポインターに設定し、設定された構造体を渡して UrsDeviceInitialize メソッドを呼び出す必要があります。 ドライバーは、コントローラーのフレームワーク デバイス オブジェクトを作成した後に、 メソッドを呼び出す必要があります。



NTSTATUS
EvtUrsSetRole (
    _In_ WDFDEVICE Device,
    _In_ URS_ROLE Role
    )
{
    NTSTATUS status;
    PFDO_CONTEXT fdoContext;

    TRACE_FUNC_ENTRY(TRACE_FLAG);
    TRY {


           // Change the current role of the controller to the specified role.
           // The driver might have stored the control registers in the device context. 
           // Read and write the register to get and set the current role. 

        }


        TRACE_INFO(TRACE_FLAG, "[Device: 0x%p] Successfully set role to %!URS_ROLE!", Device, Role);

        status = STATUS_SUCCESS;

    } FINALLY {

    }

    TRACE_FUNC_EXIT(TRACE_FLAG);

    return status;
}

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
対象プラットフォーム Windows
最小 KMDF バージョン 1.15
Header ursdevice.h (Urscx.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

UrsDeviceInitialize