Compartilhar via


Função WdfDeviceQueryInterfaceProperty (wdfdevice.h)

[Aplica-se somente ao UMDF]

O método WdfDeviceQueryInterfaceProperty recupera uma propriedade de interface do dispositivo especificada.

Sintaxe

NTSTATUS WdfDeviceQueryInterfaceProperty(
  [in]  WDFDEVICE                           Device,
  [in]  PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData,
  [in]  ULONG                               BufferLength,
  [out] PVOID                               PropertyBuffer,
  [out] PULONG                              ResultLength,
  [out] PDEVPROPTYPE                        Type
);

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in] PropertyData

Um ponteiro para uma estrutura de WDF_DEVICE_INTERFACE_PROPERTY_DATA que identifica a propriedade de interface do dispositivo a ser recuperada.

[in] BufferLength

O tamanho, em bytes, do buffer apontado por PropertyBuffer.

[out] PropertyBuffer

Um ponteiro para um buffer alocado pelo chamador que recebe a propriedade de interface do dispositivo solicitada. O ponteiro poderá ser NULL se o parâmetro BufferLength for zero.

[out] ResultLength

Um local fornecido pelo chamador que, no retorno, contém o tamanho, em bytes, das informações que WdfDeviceQueryInterfaceProperty armazenadas no PropertyBuffer. Se o valor retornado da função for STATUS_BUFFER_TOO_SMALL, esse local receberá o tamanho do buffer necessário.

[out] Type

Um ponteiro para uma variável DEVPROPTYPE que identifica o tipo de dados de propriedade que WdfDeviceQueryInterfaceProperty armazenados no buffer que PropertyBuffer aponta.

Valor de retorno

Se o método WdfDeviceQueryInterfaceProperty não encontrar erros, ele retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL
O buffer de entrada é muito pequeno para receber as informações.
STATUS_INVALID_PARAMETER_2
O valor do parâmetro especificado é inválido.
 

O método pode retornar outros valores NTSTATUS .

Observações

Antes de receber dados de propriedade do dispositivo, os drivers normalmente chamam o método WdfDeviceQueryInterfaceProperty apenas para obter o tamanho do buffer necessário. Para algumas propriedades, o tamanho dos dados pode mudar entre quando o tamanho necessário é retornado e quando o driver chama WdfDeviceQueryInterfaceProperty novamente. Portanto, os drivers devem chamar WdfDeviceQueryInterfaceProperty dentro de um loop executado até que o status de retorno não seja STATUS_BUFFER_TOO_SMALL.

É melhor usar WdfDeviceQueryInterfaceProperty somente se o tamanho do buffer necessário for conhecido e inalterado, pois nesse caso o driver precisa chamar WdfDeviceQueryInterfaceProperty apenas uma vez. Se o tamanho do buffer necessário for desconhecido ou variar, o driver deverá chamar WdfDeviceAllocAndQueryInterfaceProperty.

Para obter informações sobre métodos relacionados, consulte Acessando o modelo de propriedade do dispositivo unificado.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8.1
da Plataforma de Destino Universal
versão mínima do UMDF 2.0
cabeçalho wdfdevice.h (inclua Wdf.h)
biblioteca WUDFx02000.lib
de DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

Consulte também

WDF_DEVICE_INTERFACE_PROPERTY_DATA

WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT

WdfDeviceAllocAndQueryInterfaceProperty

WdfDeviceAssignInterfaceProperty