Função WdfUsbTargetDeviceQueryUsbCapability (wdfusb.h)
[Aplica-se a KMDF e UMDF]
O método WdfUsbTargetDeviceQueryUsbCapability determina se o controlador de host e a pilha de driver USB dão suporte a uma funcionalidade específica.
Sintaxe
NTSTATUS WdfUsbTargetDeviceQueryUsbCapability(
[in] WDFUSBDEVICE UsbDevice,
[in] const GUID *CapabilityType,
[in] ULONG CapabilityBufferLength,
[out, optional] PVOID CapabilityBuffer,
[out, optional] PULONG ResultLength
);
Parâmetros
[in] UsbDevice
Um identificador para um objeto de dispositivo USB.
[in] CapabilityType
Um ponteiro para um GUID que representa a funcionalidade sobre a qual o driver cliente deseja recuperar informações. Os possíveis valores de PGUID são os seguintes:
- GUID_USB_CAPABILITY_CHAINED_MDLS
- GUID_USB_CAPABILITY_STATIC_STREAMS
- 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] CapabilityBufferLength
Comprimento, em bytes, do buffer apontado por CapabilityBuffer.
[out, optional] CapabilityBuffer
Um ponteiro para um buffer alocado por chamador para receber a funcionalidade USB solicitada. Esse parâmetro é opcional. Se CapabilityBufferLength for zero, esse parâmetro deverá ser NULL. Da mesma forma, se CapabilityBufferLength não for zero, esse parâmetro deverá ser fornecido. Esse parâmetro corresponde ao parâmetro OutputBuffer da rotina de USBD_QueryUsbCapability.
[out, optional] ResultLength
Um ponteiro para um local que contém o tamanho, em bytes, da funcionalidade retornada. Esse parâmetro é opcional.
Valor de retorno
WdfUsbTargetDeviceQueryUsbCapability retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
O identificador de objeto do dispositivo USB não é válido. |
|
Memória insuficiente estava disponível. |
|
O chamador passou um valor de parâmetro inválido.
|
|
A funcionalidade especificada não é suportada pela pilha de driver USB subjacente. |
|
Não há suporte para a funcionalidade especificada pelo hardware do controlador de host. |
Esse método também pode retornar outros valores NTSTATUS .
Observações
Antes de chamar WdfUsbTargetDeviceQueryUsbCapability, o driver deve chamar WdfUsbTargetDeviceCreateWithParameters para se registrar na pilha de driver USB subjacente.
WdfUsbTargetDeviceQueryUsbCapability deve ser chamado depois que a função de retorno de chamada EvtDevicePrepareHardware do driver tiver sido chamada.
A tabela a seguir descreve os recursos específicos de USB que um driver cliente USB baseado em KMDF pode consultar por meio de uma chamada WdfUsbTargetDeviceQueryUsbCapability.
GUID de funcionalidade | Descrição |
---|---|
GUID_USB_CAPABILITY_CHAINED_MDLS |
A nova pilha de driver USB no Windows 8 é capaz de aceitar um MDL encadeado (consulte MDL) de um driver de cliente USB baseado em KMDF.
Para obter mais informações sobre a funcionalidade de MDLs encadeadas na pilha de driver USB, consulte How to Send Chained MDLs. Esse GUID se aplica somente a drivers KMDF. |
GUID_USB_CAPABILITY_STATIC_STREAMS |
Enquanto o USB 2.0 e anterior dá suporte ao envio de apenas um único fluxo de dados por meio de um ponto de extremidade em massa, o USB 3.0 permite enviar e receber vários fluxos de dados por meio de um ponto de extremidade em massa.
Para obter mais informações sobre como abrir fluxos, consulte How to Open and Close Static Streams in a USB Bulk Endpoint. Esse GUID se aplica somente a drivers KMDF. |
GUID_USB_CAPABILITY_FUNCTION_SUSPEND |
A especificação do Barramento Serial Universal (USB) 3.0 define um novo recurso chamado suspensão de função. O recurso permite que uma função individual de um dispositivo composto insira um estado de baixa potência, independentemente de outras funções.
Para obter mais informações sobre a suspensão da função, consulte Como implementar a suspensão da função em um driver composto. Esse GUID se aplica somente a drivers KMDF. |
GUID_USB_CAPABILITY_SELECTIVE_SUSPEND |
Para obter informações sobre a suspensão seletiva, consulte de Suspensão Seletiva USB.
Esse GUID se aplica somente a drivers KMDF. |
GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE |
Determina se o ônibus está operando em alta velocidade ou superior.
Esse GUID se aplica aos drivers KMDF e UMDF. |
GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE |
Determina se o ônibus está operando em SuperSpeed ou superior.
Esse GUID se aplica aos drivers KMDF e UMDF. |