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 |