共用方式為


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 (状态) 等於 TRUE 的另一個狀態值。 否則,它必須傳回狀態值,NT_SUCCESS (状态) 等於 FALSE。

備註

若要註冊客戶端驅動程式的事件回呼實作,驅動程式必須將 URS_CONFIGEvtUrsSetRole 成員設定為實作方法的函式指標,然後傳遞填入的結構來呼叫 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
標頭 ursdevice.h (包含 Urscx.h)
IRQL PASSIVE_LEVEL

另請參閱

UrsDeviceInitialize