Compartilhar via


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

Confira também

UfxDeviceCreate

UfxDeviceEventComplete