Função WdfFdoInitQueryPropertyEx (wdffdo.h)
[Aplica-se a KMDF e UMDF]
O método WdfFdoInitQueryPropertyEx recupera uma propriedade de dispositivo especificada.
Sintaxe
NTSTATUS WdfFdoInitQueryPropertyEx(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
[in] ULONG BufferLength,
[out] PVOID PropertyBuffer,
[out] PULONG ResultLength,
[out] PDEVPROPTYPE Type
);
Parâmetros
[in] DeviceInit
Um ponteiro para uma estrutura WDFDEVICE_INIT que o driver obteve de sua função de retorno de chamada EvtDriverDeviceAdd .
[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] ResultLength
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 que, no retorno, contém o valor do tipo de propriedade dos dados de propriedade armazenados em PropertyBuffer.
Retornar valor
Se a operação for bem-sucedida, WdfFdoInitQueryPropertyEx 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
Antes de receber dados de propriedade do dispositivo, os drivers normalmente chamam o método WdfFdoInitQueryPropertyEx 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 WdfFdoInitQueryPropertyEx novamente. Portanto, os drivers devem chamar WdfFdoInitQueryPropertyEx dentro de um loop que é executado até que a status de retorno não seja STATUS_BUFFER_TOO_SMALL.
É melhor usar WdfFdoInitQueryPropertyEx somente se o tamanho do buffer necessário for conhecido e inalterado, pois nesse caso o driver precisa chamar WdfFdoInitQueryPropertyEx apenas uma vez. Se o tamanho do buffer necessário for desconhecido ou variar, o driver deverá chamar WdfFdoInitAllocAndQueryPropertyEx.
O driver pode chamar WdfFdoInitQueryPropertyEx somente antes de chamar WdfDeviceCreate. Para obter mais informações sobre como chamar WdfDeviceCreate, consulte Criando um objeto de dispositivo de estrutura.
Depois de chamar WdfDeviceCreate, um driver pode obter informações de propriedade do dispositivo chamando WdfDeviceQueryPropertyEx.
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 | wdffdo.h (include Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |