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 |
ターゲット プラットフォーム の | ウィンドウズ |
最小 KMDF バージョン | 1.15 |
ヘッダー | ursdevice.h (Urscx.h を含む) |
IRQL | PASSIVE_LEVEL |
関連項目
UrsDeviceInitialize の