EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY função de retorno de chamada (udecxwdfdevice.h)
A implementação do driver cliente UDE para determinar os recursos compatíveis com o controlador de host USB emulado.
Sintaxe
EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY EvtUdecxWdfDeviceQueryUsbCapability;
NTSTATUS EvtUdecxWdfDeviceQueryUsbCapability(
[in] WDFDEVICE UdecxWdfDevice,
[in] PGUID CapabilityType,
[in] ULONG OutputBufferLength,
[out, optional] PVOID OutputBuffer,
[out] PULONG ResultLength
)
{...}
Parâmetros
[in] UdecxWdfDevice
Um identificador para um objeto de dispositivo de estrutura que representa o controlador. O driver cliente inicializou esse objeto na chamada anterior para UdecxWdfDeviceAddUsbDeviceEmulation.
[in] CapabilityType
Ponteiro para um GUID que especifica a funcionalidade solicitada. Os possíveis valores de PGUID são os seguintes:
- GUID_USB_CAPABILITY_CHAINED_MDLS
- GUID_USB_CAPABILITY_SELECTIVE_SUSPEND
- GUID_USB_CAPABILITY_FUNCTION_SUSPEND
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE
[in] OutputBufferLength
O comprimento, em bytes, do buffer de saída da solicitação, se um buffer de saída estiver disponível.
[out, optional] OutputBuffer
Um ponteiro para um local que recebe o endereço do buffer. Alguns recursos podem precisar fornecer informações adicionais para a extensão de classe de emulação de dispositivo USB (UdeCx) nesse buffer.
[out] ResultLength
Um local que, no retorno, contém o tamanho, em bytes, das informações armazenadas na função de retorno de chamada em OutputBuffer.
Valor de retorno
Se a operação for bem-sucedida, a função de retorno de chamada deverá retornar STATUS_SUCCESS ou outro valor de status para o qual NT_SUCCESS(status) é igual a TRUE. Se não houver suporte para uma funcionalidade, o driver cliente poderá retornar NT_SUCCESS(status) igual a FALSE, como STATUS_UNSUCCESSFUL.
Observações
A extensão de classe invoca essa função de retorno de chamada implementada pelo driver cliente quando a extensão de classe recebe uma solicitação para determinar os recursos do controlador emulado. O retorno de chamada é invocado somente depois que EvtDriverDeviceAdd tiver retornado, normalmente em EvtDevicePrepareHardware. Esse retorno de chamada não pode ser invocado depois que EvtDeviceReleaseHardware tiver retornado.
A extensão de classe relata esses GUIDs de funcionalidade, como não há suporte:
- GUID_USB_CAPABILITY_STATIC_STREAMS
- GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL
Para outros GUIDs, a extensão de classe invoca a implementação do driver cliente, como GUID_USB_CAPABILITY_CHAINED_MDLS. Espera-se que o driver cliente determine o suporte para solicitações de E/S que usam um MDL encadeado. Se esse recurso tiver suporte, o TransferBufferMdl do URB conterá o buffer de solicitação. Se não houver suporte para MDL encadeado, o driver cliente não receberá valores TransferBufferMdl que apontam para MDLs encadeados.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10 |
servidor com suporte mínimo | Windows Server 2016 |
da Plataforma de Destino | Windows |
versão mínima do KMDF | 1.15 |
cabeçalho | udecxwdfdevice.h (inclua Udecx.h) |
IRQL | PASSIVE_LEVEL |
Consulte também
Arquitetura : UDE (Emulação de Dispositivo USB)