共用方式為


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。

言論

若要註冊用戶端驅動程式的事件回呼實作,驅動程式必須將 EvtUrsSetRoleURS_CONFIG 成員設定為實作方法的函式指標,然後藉由傳遞填入結構來呼叫 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