EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD Rückruffunktion (ufxclient.h)

Die Implementierung des Clienttreibers zum Erstellen eines Standard-Steuerelementendpunkts.

Syntax

EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD EvtUfxDeviceDefaultEndpointAdd;

void EvtUfxDeviceDefaultEndpointAdd(
  [in]      UFXDEVICE unnamedParam1,
  [in]      USHORT unnamedParam2,
  [in, out] PUFXENDPOINT_INIT unnamedParam3
)
{...}

Parameter

[in] unnamedParam1

Das Handle für ein USB-Geräteobjekt, das der Clienttreiber in einem vorherigen Aufruf von UfxDeviceCreate empfangen hat.

[in] unnamedParam2

Die standardmäßige maximale Paketgröße, die von oder an diesen Endpunkt gesendet werden kann.

[in, out] unnamedParam3

Ein Zeiger auf eine UFXENDPOINT_INIT undurchsichtige Struktur, die den Endpunktdeskriptor enthält, der zum Erstellen eines Endpunktobjekts erforderlich ist.

Rückgabewert

Keine

Bemerkungen

Der Clienttreiber für den Funktionshostcontroller registriert seine EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD Implementierung bei der USB-Funktionsklassenerweiterung (UFX), indem die UfxDeviceCreate-Methode aufgerufen wird.

Zum Erstellen des Endpunkts wird erwartet, dass der Clienttreiber die Attribute der Übertragungs- und Befehlswarteschlangen des Endpunkts initialisiert und dann UfxEndpointCreate aufruft , um den Endpunkt zu erstellen. Nachdem der Standard-Steuerelementendpunkt erstellt wurde, ist UFX bereit, Setuppakete und andere Steuerungsübertragungspakete vom Host zu verarbeiten.

Der Clienttreiber gibt den Abschluss dieses Ereignisses an, indem die UfxDeviceEventComplete-Methode aufgerufen wird.

Beispiele


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();
}

Anforderungen

Anforderung Wert
Zielplattform Windows
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile ufxclient.h
IRQL PASSIVE_LEVEL

Weitere Informationen

UfxDeviceCreate

UfxDeviceEventComplete