Função WdfDeviceQueryInterfaceProperty (wdfdevice.h)

[Aplica-se somente ao UMDF]

O método WdfDeviceQueryInterfaceProperty recupera uma propriedade de interface de 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 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 armazenou 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 do tipo DEVPROPTYPE que identifica o tipo de dados de propriedade que WdfDeviceQueryInterfaceProperty armazenou no buffer para o qual PropertyBuffer aponta.

Retornar valor

Se o método WdfDeviceQueryInterfaceProperty não encontrar erros, ele retornará STATUS_SUCCESS. Os valores retornados 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.

Comentários

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 que é executado até que a 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 de dispositivo unificado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1
Plataforma de Destino Universal
Versão mínima do UMDF 2,0
Cabeçalho wdfdevice.h (inclua Wdf.h)
Biblioteca WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

Confira também

WDF_DEVICE_INTERFACE_PROPERTY_DATA

WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT

WdfDeviceAllocAndQueryInterfaceProperty

WdfDeviceAssignInterfaceProperty