EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY função de retorno de chamada (udecxwdfdevice.h)
A implementação do driver do 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 do cliente inicializou esse objeto na chamada anterior para UdecxWdfDeviceAddUsbDeviceEmulation.
[in] CapabilityType
Ponteiro para um GUID que especifica o recurso solicitado. Os possíveis valores 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) neste 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 no OutputBuffer.
Retornar valor
Se a operação for bem-sucedida, a função de retorno de chamada deverá retornar STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE. Se não houver suporte para uma funcionalidade, o driver do cliente poderá retornar NT_SUCCESS(status) igual a FALSE, como STATUS_UNSUCCESSFUL.
Comentários
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 é retornado, normalmente em EvtDevicePrepareHardware. Esse retorno de chamada não pode ser invocado após o retorno de EvtDeviceReleaseHardware .
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 do cliente determine o suporte para solicitações de E/S que usam um MDL encadeado. Se esse recurso tiver suporte, o membro TransferBufferMdl da URB conterá o buffer de solicitação. Se não houver suporte para MDL encadeado, o driver do cliente não receberá valores TransferBufferMdl que apontam para MDLs encadeados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 |
Servidor mínimo com suporte | Windows Server 2016 |
Plataforma de Destino | Windows |
Versão mínima do KMDF | 1.15 |
Cabeçalho | udecxwdfdevice.h (inclua Udecx.h) |
IRQL | PASSIVE_LEVEL |