EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD fungsi panggilan balik (ufxclient.h)
Implementasi driver klien untuk membuat titik akhir kontrol default.
Sintaks
EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD EvtUfxDeviceDefaultEndpointAdd;
void EvtUfxDeviceDefaultEndpointAdd(
[in] UFXDEVICE unnamedParam1,
[in] USHORT unnamedParam2,
[in, out] PUFXENDPOINT_INIT unnamedParam3
)
{...}
Parameter
[in] unnamedParam1
Handel ke objek perangkat USB yang diterima driver klien dalam panggilan sebelumnya ke UfxDeviceCreate.
[in] unnamedParam2
Ukuran paket maksimum default yang dapat dikirim dari atau ke titik akhir ini.
[in, out] unnamedParam3
Penunjuk ke struktur buram UFXENDPOINT_INIT yang berisi deskriptor titik akhir yang diperlukan untuk membuat objek titik akhir.
Nilai kembali
Tidak ada
Keterangan
Driver klien untuk pengontrol host fungsi mendaftarkan implementasi EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD dengan ekstensi kelas fungsi USB (UFX) dengan memanggil metode UfxDeviceCreate .
Untuk membuat titik akhir, driver klien diharapkan untuk menginisialisasi atribut transfer titik akhir dan antrean perintah, lalu memanggil UfxEndpointCreate untuk membuat titik akhir. Setelah titik akhir kontrol default dibuat, UFX siap untuk memproses paket penyiapan dan paket transfer kontrol lainnya dari host.
Driver klien menunjukkan penyelesaian peristiwa ini dengan memanggil metode UfxDeviceEventComplete .
Contoh
EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD UfxDevice_EvtDeviceDefaultEndpointAdd;
VOID
UfxDevice_EvtDeviceDefaultEndpointAdd (
_In_ UFXDEVICE UfxDevice,
_In_ USHORT MaxPacketSize,
_Inout_ PUFXENDPOINT_INIT EndpointInit
)
/*++
Routine Description:
EvtDeviceDefaultEndpointAdd handler for the UFXDEVICE object.
Creates UFXENDPOINT object corresponding to the default endpoint of the
device.
Arguments:
UfxDevice - UFXDEVICE object representing the device.
MaxPacketSize - Max packet size of the device's default endpoint.
EndpointInit - Pointer to the Opaque UFXENDPOINT_INIT object
--*/
{
NTSTATUS Status;
USB_ENDPOINT_DESCRIPTOR Descriptor;
PAGED_CODE();
TraceEntry();
Descriptor.bDescriptorType = USB_ENDPOINT_DESCRIPTOR_TYPE;
Descriptor.bEndpointAddress = 0;
Descriptor.bInterval = 0;
Descriptor.bLength = sizeof(USB_ENDPOINT_DESCRIPTOR);
Descriptor.bmAttributes = USB_ENDPOINT_TYPE_CONTROL;
Descriptor.wMaxPacketSize = MaxPacketSize;
// #### TODO: Insert code to add the endpoint.
// See code example for EVT_UFX_DEVICE_ENDPOINT_ADD ####
End:
UfxDeviceEventComplete(UfxDevice, Status);
TraceExit();
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | ufxclient.h |
IRQL | PASSIVE_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