Função WdfDeviceQueryPropertyEx (wdfdevice.h)
[Aplica-se a KMDF e UMDF]
O método WdfDeviceQueryPropertyEx recupera uma propriedade de dispositivo especificada.
Sintaxe
NTSTATUS WdfDeviceQueryPropertyEx(
[in] WDFDEVICE Device,
[in] PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
[in] ULONG BufferLength,
[out] PVOID PropertyBuffer,
[out] PULONG RequiredSize,
[out] PDEVPROPTYPE Type
);
Parâmetros
[in] Device
Um identificador para um objeto de dispositivo de estrutura.
[in] DeviceProperty
Um ponteiro para uma estrutura WDF_DEVICE_PROPERTY_DATA que identifica a propriedade do dispositivo a ser recuperada.
[in] BufferLength
O tamanho, em bytes, do buffer apontado por PropertyBuffer.
[out] PropertyBuffer
Um ponteiro fornecido pelo chamador para um buffer alocado pelo chamador que recebe as informações solicitadas. O ponteiro poderá ser NULL se o parâmetro BufferLength for zero.
[out] RequiredSize
Um local fornecido pelo chamador que, no retorno, contém o tamanho, em bytes, das informações que o método 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 DEVPROPTYPE . Se o método for bem-sucedido, ao retornar, esse parâmetro conterá o valor do tipo de propriedade dos dados de propriedade armazenados em PropertyBuffer.
Retornar valor
Se a operação for bem-sucedida, WdfDeviceQueryPropertyEx retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:
Código de retorno | Descrição |
---|---|
|
O buffer fornecido é muito pequeno para receber as informações. |
|
O valor deviceProperty especificado é inválido. |
O método pode retornar outros valores NTSTATUS.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
Você pode usar WdfDeviceQueryPropertyEx para recuperar qualquer propriedade exposta por meio do modelo de propriedade unificada, enquanto o método WdfDeviceQueryProperty só permite consultar um subconjunto do modelo de propriedade unificado.
Antes de receber dados de propriedade do dispositivo, os drivers normalmente chamam o método WdfDeviceQueryPropertyEx apenas para obter o tamanho do buffer necessário. Para algumas propriedades, o tamanho dos dados pode ser alterado entre quando o tamanho necessário é retornado e quando o driver chama WdfDeviceQueryPropertyEx novamente. Portanto, os drivers devem chamar WdfDeviceQueryPropertyEx dentro de um loop que é executado até que a status de retorno não seja STATUS_BUFFER_TOO_SMALL.
É melhor usar WdfDeviceQueryPropertyEx somente se o tamanho do buffer necessário for conhecido e inalterado, pois nesse caso o driver precisa chamar WdfDeviceQueryPropertyEx apenas uma vez. Se o tamanho do buffer necessário for desconhecido ou variar, o driver deverá chamar WdfDeviceAllocAndQueryPropertyEx.
Para obter informações sobre métodos relacionados, consulte Acessando o modelo de propriedade de dispositivo unificado.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.13 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfdevice.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | APC_LEVEL |