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 capacidade sobre a qual o driver cliente deseja recuperar informações. Os possíveis valores 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
Confira mais informações em Comentários.

[in] CapabilityBufferLength

Comprimento, em bytes, do buffer apontado pelo 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 USBD_QueryUsbCapability .

[out, optional] ResultLength

Um ponteiro para um local que contém o tamanho, em bytes, da funcionalidade retornada. Esse parâmetro é opcional.

Retornar valor

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
STATUS_INVALID_DEVICE_STATE
O identificador de objeto do dispositivo USB não é válido.
STATUS_INSUFFICIENT_RESOURCES
Memória insuficiente estava disponível.
STATUS_INVALID_PARAMETER
O chamador passou um valor de parâmetro inválido.
  • UsbDevice ou CapabilityType é NULL.
  • CapabilityBuffer é NULL, mas CapabilityBufferLength contém um valor diferente de zero. Por outro lado, o chamador forneceu um CapabilityBuffer , mas CapabilityBufferLength é zero.
STATUS_NOT_IMPLEMENTED
Não há suporte para a funcionalidade especificada pela pilha de driver USB subjacente.
STATUS_NOT_SUPPORTED
Não há suporte para a funcionalidade especificada pelo hardware do controlador de host.

Esse método também pode retornar outros valores NTSTATUS.

Comentários

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 em Windows 8 é capaz de aceitar um MDL encadeado (consulte MDL) do driver de cliente USB baseado em KMDF.

Para obter mais informações sobre a funcionalidade de MDLs encadeadas na pilha de driver USB, consulte Como enviar MDLs encadeados.

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 Como abrir e fechar Fluxos estáticos em um ponto de extremidade em massa USB.

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 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.

Requisitos

   
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Universal
Versão mínima do KMDF 1.11
Versão mínima do UMDF 2.0
Cabeçalho wdfusb.h (include Wdfusb.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf)

Confira também

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation