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 |
---|---|
|
O buffer de entrada é muito pequeno para receber as informações. |
|
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