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 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
Veja mais informações em Comentários.

[in] CapabilityBufferLength

Comprimento, em bytes, do buffer apontado por CapabilityBuffer.

[out, optional] CapabilityBuffer

Um ponteiro para um buffer alocado pelo 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 for diferente de 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 pode 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 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 de 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 drivers 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 Como enviar MDLs encadeados.

Esse GUID se aplica somente a drivers KMDF.

GUID_USB_CAPABILITY_STATIC_STREAMS Enquanto o USB 2.0 e versões anteriores dão 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 entre em um estado de baixa potência, independentemente de outras funções.

Para obter mais informações sobre suspensão de função, consulte How to Implement Function Suspend in a Composite Driver.

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 por 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 a 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 a drivers KMDF e UMDF.

Requisitos

Requisito Valor
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 da DDI DriverCreate(kmdf)

Confira também

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation