EVT_UCM_CONNECTOR_SET_DATA_ROLE fungsi panggilan balik (ucmmanager.h)

Implementasi driver klien dari fungsi panggilan balik peristiwa EVT_UCM_CONNECTOR_SET_DATA_ROLE yang menukar peran data konektor ke peran yang ditentukan saat dilampirkan ke konektor mitra.

Sintaks

EVT_UCM_CONNECTOR_SET_DATA_ROLE EvtUcmConnectorSetDataRole;

NTSTATUS EvtUcmConnectorSetDataRole(
  [in] UCMCONNECTOR Connector,
  [in] UCM_DATA_ROLE DataRole
)
{...}

Parameter

[in] Connector

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

[in] DataRole

Bendera UCM_TYPEC_PARTNER-typed 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_DATA_ROLE , driver klien harus memanggil UcmConnectorCreate.

Ekstensi kerangka kerja manajer konektor USB (UcmCx) dapat meminta UcmTypeCPortStateUfp atau UcmTypeCPortStateDfp. Jika port sudah dalam peran yang diminta, driver klien dapat menyelesaikan permintaan tanpa perubahan apa pun. Jika tidak, operasi pertukaran peran data dimulai (DR_Swap). Driver memanggil UcmConnectorDataDirectionChanged 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 DR_Swap, driver klien harus menolak permintaan.

Contoh


EVT_UCM_CONNECTOR_SET_DATA_ROLE     EvtSetDataRole;  

NTSTATUS  
EvtSetDataRole(  
    UCMCONNECTOR  Connector,  
    UCM_TYPE_C_PORT_STATE DataRole  
    )  
{  
    PCONNECTOR_CONTEXT connCtx;  
  
    TRACE_INFO("EvtSetDataRole(%!UCM_TYPE_C_PORT_STATE!) Entry", DataRole);  
  
    connCtx = GetConnectorContext(Connector);

  
    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