EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD fonction de rappel (ufxclient.h)
Implémentation du pilote client pour créer un point de terminaison de contrôle par défaut.
Syntaxe
EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD EvtUfxDeviceDefaultEndpointAdd;
void EvtUfxDeviceDefaultEndpointAdd(
[in] UFXDEVICE unnamedParam1,
[in] USHORT unnamedParam2,
[in, out] PUFXENDPOINT_INIT unnamedParam3
)
{...}
Paramètres
[in] unnamedParam1
Handle d’un objet de périphérique USB que le pilote client a reçu lors d’un appel précédent à l’UfxDeviceCreate.
[in] unnamedParam2
Taille de paquet maximale par défaut qui peut être envoyée à partir de ou à ce point de terminaison.
[in, out] unnamedParam3
Pointeur vers une structure opaque UFXENDPOINT_INIT qui contient le descripteur de point de terminaison requis pour créer un objet de point de terminaison.
Valeur de retour
None
Remarques
Le pilote client du contrôleur hôte de fonction inscrit son implémentation EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD avec l’extension de classe de fonction USB (UFX) en appelant la méthode UfxDeviceCreate .
Pour créer le point de terminaison, le pilote client est censé initialiser les attributs des files d’attente de transfert et de commande du point de terminaison, puis appeler UfxEndpointCreate pour créer le point de terminaison. Une fois le point de terminaison de contrôle par défaut créé, UFX est prêt à traiter les paquets d’installation et d’autres paquets de transfert de contrôle à partir de l’hôte.
Le pilote client indique la fin de cet événement en appelant la méthode UfxDeviceEventComplete .
Exemples
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();
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | ufxclient.h |
IRQL | PASSIVE_LEVEL |