Compartilhar via


Função WdfUsbTargetDeviceRetrieveInformation (wdfusb.h)

[Aplica-se a KMDF e UMDF]

O método WdfUsbTargetDeviceRetrieveInformation recupera informações sobre o dispositivo USB associado a um objeto de dispositivo USB de estrutura especificado.

Sintaxe

NTSTATUS WdfUsbTargetDeviceRetrieveInformation(
  [in]      WDFUSBDEVICE                UsbDevice,
  [in, out] PWDF_USB_DEVICE_INFORMATION Information
);

Parâmetros

[in] UsbDevice

Um identificador para um objeto de dispositivo USB que foi obtido de uma chamada anterior para WdfUsbTargetDeviceCreateWithParameters.

[in, out] Information

Um ponteiro para uma estrutura de WDF_USB_DEVICE_INFORMATION alocada pelo chamador que recebe informações de dispositivo USB.

Retornar valor

WdfUsbTargetDeviceRetrieveInformation 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_PARAMETER
Um parâmetro inválido foi detectado.
 

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

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Para obter mais informações sobre o método WdfUsbTargetDeviceRetrieveInformation e destinos de E/S USB, consulte Destinos de E/S USB.

Nas versões de estrutura 1.11 e posteriores, o driver pode chamar WdfUsbTargetDeviceQueryUsbCapability para recuperar a velocidade operacional de um dispositivo.

Exemplos

O exemplo de código a seguir faz parte de uma função de retorno de chamada EvtDevicePrepareHardware que cria um objeto de dispositivo USB, inicializa uma estrutura WDF_USB_DEVICE_INFORMATION e chama WdfUsbTargetDeviceRetrieveInformation.

NTSTATUS
MyEvtDevicePrepareHardware(
    IN WDFDEVICE  Device,
    IN WDFCMRESLIST  ResourceList,
    IN WDFCMRESLIST  ResourceListTranslated
    )
{
    NTSTATUS  status;
    PMY_DEVICE_CONTEXT  pMyDeviceContext;
    WDF_USB_DEVICE_CREATE_CONFIG  Config;

    pMyDeviceContext = GetDeviceContext(Device);

    // If object handle is not NULL, MyEvtDevicePrepareHardware
    // was called previously and the handle is still valid.
    if (pMyDeviceContext->UsbDevice != NULL) {
        return STATUS_SUCCESS;
    }

    WDF_USB_DEVICE_CREATE_CONFIG_INIT(
                                      &Config,
                                      USBD_CLIENT_CONTRACT_VERSION_602
                                      );

    status = WdfUsbTargetDeviceCreateWithParameters(
                                      Device,
                                      &Config,
                                      WDF_NO_OBJECT_ATTRIBUTES,
                                      &pMyDeviceContext->UsbDevice
                                      );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    WDF_USB_DEVICE_INFORMATION_INIT(&deviceInfo);

    status = WdfUsbTargetDeviceRetrieveInformation(
                                      pDeviceContext->UsbDevice, 
                                      &deviceInfo
                                      );
...
}

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfusb.h (include Wdfusb.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

Confira também

WDF_USB_DEVICE_INFORMATION

WdfUsbTargetDeviceCreateWithParameters

WdfUsbTargetDeviceQueryUsbCapability