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

UfxDeviceCreate

UfxDeviceEventComplete