EVT_UCX_ROOTHUB_GET_INFO fungsi panggilan balik (ucxroothub.h)
Implementasi driver klien yang dipanggil UCX ketika menerima permintaan informasi tentang hub akar.
Sintaks
EVT_UCX_ROOTHUB_GET_INFO EvtUcxRoothubGetInfo;
void EvtUcxRoothubGetInfo(
[in] UCXROOTHUB UcxRootHub,
[in] WDFREQUEST Request
)
{...}
Parameter
[in] UcxRootHub
Handel ke objek UCX yang mewakili hub akar.
[in] Request
Struktur jenis ROOTHUB_INFO.
Nilai kembali
Tidak ada
Keterangan
Driver klien UCX mendaftarkan fungsi panggilan balik ini dengan ekstensi pengontrol host USB (UCX) dengan memanggil metode UcxRootHubCreate .
Struktur _ROOTHUB_INFO berisi jumlah port USB 2.0 dan USB 3.0 yang didukung oleh hub akar.
Setelah UCX memanggil fungsi EVT_UCX_ROOTHUB_GET_INFO , jumlah port yang diekspos oleh hub akar dijamin tetap sama. Perhatikan bahwa ini adalah port virtual, bukan port fisik. Setiap konektor USB fisik diwakili oleh satu atau beberapa port dengan kecepatan yang berbeda pada hub akar.
Driver klien mengembalikan status penyelesaian dalam Permintaan. Driver dapat menyelesaikan WDFREQUEST secara asinkron.
Contoh
VOID
RootHub_EvtRootHubGetInfo(
UCXROOTHUB UcxRootHub,
WDFREQUEST Request
)
/*++
For sample demonstration purposes, this function returns statically
defined information for the root hub.
--*/
{
PUCX_ROOTHUB_CONTEXT ucxRootHubContext;
WDF_REQUEST_PARAMETERS wdfRequestParams;
PROOTHUB_INFO rootHubInfo;
NTSTATUS status;
ucxRootHubContext = GetUcxRootHubContext(UcxRootHub);
WDF_REQUEST_PARAMETERS_INIT(&wdfRequestParams);
WdfRequestGetParameters(Request, &wdfRequestParams);
rootHubInfo = (PROOTHUB_INFO)wdfRequestParams.Parameters.Others.Arg1;
if (rootHubInfo->Size < sizeof(ROOTHUB_INFO)) {
DbgTrace(TL_ERROR, RootHub, "Invalid ROOTHUB_INFO Size %d", rootHubInfo->Size);
status = STATUS_INVALID_PARAMETER;
goto RootHub_EvtRootHubGetInfo;
}
rootHubInfo->ControllerType = ControllerTypeSoftXhci;
rootHubInfo->NumberOf20Ports = ucxRootHubContext->NumberOf20Ports;
rootHubInfo->NumberOf30Ports = ucxRootHubContext->NumberOf30Ports;
rootHubInfo->MaxU1ExitLatency = ucxRootHubContext->U1DeviceExitLatency;
rootHubInfo->MaxU2ExitLatency = ucxRootHubContext->U2DeviceExitLatency;
DbgTrace(TL_INFO, RootHub, "RootHub_UcxEvtGetInfo NumberOf20Ports %d NumberOf30Ports %d", rootHubInfo->NumberOf20Ports, rootHubInfo->NumberOf30Ports);
status = STATUS_SUCCESS;
RootHub_EvtRootHubGetInfo:
WdfRequestComplete(Request, status);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | ucxroothub.h (termasuk Ucxclass.h) |
IRQL | DISPATCH_LEVEL |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk