função de retorno de chamada EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD (ufxclient.h)
A implementação do driver cliente para criar um ponto de extremidade de controle padrão.
Sintaxe
EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD EvtUfxDeviceDefaultEndpointAdd;
void EvtUfxDeviceDefaultEndpointAdd(
[in] UFXDEVICE unnamedParam1,
[in] USHORT unnamedParam2,
[in, out] PUFXENDPOINT_INIT unnamedParam3
)
{...}
Parâmetros
[in] unnamedParam1
O identificador para um objeto de dispositivo USB que o driver cliente recebeu em uma chamada anterior para o UfxDeviceCreate.
[in] unnamedParam2
O tamanho máximo padrão do pacote que pode ser enviado de ou para esse ponto de extremidade.
[in, out] unnamedParam3
Um ponteiro para um UFXENDPOINT_INIT estrutura opaca que contém o descritor de ponto de extremidade necessário para criar um objeto de ponto de extremidade.
Retornar valor
Nenhum
Comentários
O driver do cliente para o controlador de host de função registra sua implementação EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD com a extensão de classe de função USB (UFX) chamando o método UfxDeviceCreate .
Para criar o ponto de extremidade, espera-se que o driver do cliente inicialize os atributos das filas de comando e transferência do ponto de extremidade e, em seguida, chame UfxEndpointCreate para criar o ponto de extremidade. Depois que o ponto de extremidade de controle padrão for criado, o UFX estará pronto para processar pacotes de instalação e outros pacotes de transferência de controle do host.
O driver do cliente indica a conclusão desse evento chamando o método UfxDeviceEventComplete .
Exemplos
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();
}
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | ufxclient.h |
IRQL | PASSIVE_LEVEL |