EVT_UCM_CONNECTOR_SET_POWER_ROLE fungsi panggilan balik (ucmmanager.h)

Implementasi driver klien dari fungsi panggilan balik peristiwa EVT_UCM_CONNECTOR_SET_POWER_ROLE yang mengatur peran daya konektor ke peran yang ditentukan saat dilampirkan ke konektor mitra.

Sintaks

EVT_UCM_CONNECTOR_SET_POWER_ROLE EvtUcmConnectorSetPowerRole;

NTSTATUS EvtUcmConnectorSetPowerRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_POWER_ROLE PowerRole
)
{...}

Parameter

[in] Connector

Tangani ke konektor yang diterima driver klien dalam panggilan sebelumnya ke metode UcmConnectorCreate .

[in] PowerRole

Bendera UCM_POWER_ROLE-ketik yang menentukan peran yang akan diatur.

Nilai kembali

Jika operasi berhasil, fungsi panggilan balik harus mengembalikan STATUS_SUCCESS, atau nilai status lain yang NT_SUCCESS(status) sama dengan TRUE. Jika tidak, itu harus mengembalikan nilai status yang NT_SUCCESS(status) sama dengan FALSE.

Keterangan

Untuk mendaftarkan fungsi panggilan balik EVT_UCM_CONNECTOR_SET_POWER_ROLE , klien harus memanggil UcmConnectorCreate.

Ekstensi kerangka kerja manajer konektor USB (UcmCx) dapat meminta UcmPowerRoleSink atau UcmPowerRoleSource. Jika port sudah dalam peran yang diminta, driver klien dapat menyelesaikan permintaan tanpa perubahan apa pun. Jika tidak, ia memulai operasi pertukaran peran daya (PR_Swap). Driver memanggil UcmConnectorPowerDirectionChanged untuk memberi tahu UcmCx tentang keberhasilan atau kegagalan operasi itu. Driver dapat memanggil metode tersebut dalam fungsi panggilan balik.

Peran berlanjut untuk koneksi saat ini.

Jika operasi pertukaran peran tertunda, UcmCx tidak meminta pertukaran peran lain. Operasi tersebut diserialisasikan di seluruh pertukaran peran daya dan data.

Setelah operasi pertukaran selesai, jika port mitra mengirim permintaan PR_Swap, driver klien harus menolak permintaan.

Contoh


EVT_UCM_CONNECTOR_SET_POWER_ROLE     EvtSetPowerRole;  

NTSTATUS  
EvtSetPowerRole(  
    UCMCONNECTOR Connector,  
    UCM_POWER_ROLE PowerRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetPowerRole(%!UCM_POWER_ROLE!) Entry", PowerRole);  
  
    connCtx = GetConnectorContext(Connector);  

    //PR_Swap operation.  
  
  
    TRACE_FUNC_EXIT();  
    return STATUS_SUCCESS;  
}  

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Server minimum yang didukung Server Windows 2016
Target Platform Windows
Versi KMDF minimum 1.15
Versi UMDF minimum 2.15
Header ucmmanager.h (termasuk Ucmcx.h)
IRQL PASSIVE_LEVEL

Lihat juga

UcmConnectorBuat