Função IoGetDevicePropertyData (wdm.h)

A rotina IoGetDevicePropertyData recupera a configuração atual de uma propriedade de dispositivo.

Sintaxe

NTSTATUS IoGetDevicePropertyData(
  [in]  PDEVICE_OBJECT   Pdo,
  [in]  const DEVPROPKEY *PropertyKey,
  [in]  LCID             Lcid,
        ULONG            Flags,
  [in]  ULONG            Size,
  [out] PVOID            Data,
  [out] PULONG           RequiredSize,
  [out] PDEVPROPTYPE     Type
);

Parâmetros

[in] Pdo

Um ponteiro para o PDO (objeto de dispositivo físico) para o dispositivo que está sendo consultado.

[in] PropertyKey

Um ponteiro para uma estrutura DEVPROPKEY que especifica a chave de propriedade do dispositivo.

[in] Lcid

Um identificador de localidade. Defina esse parâmetro como um valor LCID específico do idioma ou para LOCALE_NEUTRAL. O LCID do LOCALE_NEUTRAL especifica que a propriedade é neutra em idioma (ou seja, não é específica de nenhum idioma). Não defina esse parâmetro como LOCALE_SYSTEM_DEFAULT ou LOCALE_USER_DEFAULT. Para obter mais informações sobre valores LCID específicos do idioma, consulte Estrutura LCID.

Flags

Reservado para uso do sistema. Os drivers devem definir esse valor como 0.

[in] Size

O tamanho, em bytes, do buffer para o qual os dados apontam.

[out] Data

Um ponteiro para os dados da propriedade do dispositivo.

[out] RequiredSize

Um ponteiro para um ULONG para receber o tamanho das informações de propriedade retornadas em Dados. Se IoGetDevicePropertyData retornar STATUS_BUFFER_TOO_SMALL, o chamador poderá usar esse valor para alocar um buffer do tamanho correto.

[out] Type

Um ponteiro para um valor DEVPROPTYPE . Se IoGetDevicePropertyData for concluído com êxito, a rotina usará Type para fornecer o tipo de dados retornado no buffer de dados .

Retornar valor

IoGetDevicePropertyData retorna um valor NTSTATUS. Essa rotina pode retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS
A operação foi realizada com êxito. O buffer de dados contém os dados recuperados. **Type* contém o tipo dos dados recuperados.
STATUS_BUFFER_TOO_SMALL
O buffer de dados é muito pequeno. **RequiredSize* contém o comprimento do buffer necessário.
STATUS_OBJECT_NAME_NOT_FOUND
A propriedade do dispositivo especificada não foi encontrada.

Comentários

Os drivers no modo kernel usam a rotina IoGetDevicePropertyData para recuperar as propriedades do dispositivo definidas como parte do modelo de propriedade do dispositivo unificado.

Para ver os tipos de propriedade disponíveis para uso por essa rotina, consulte DEVPROP_TYPE_BYTE e páginas adjacentes para DEVPROP_TYPE_*.

Os drivers podem usar a rotina IoSetDevicePropertyData para modificar uma propriedade do dispositivo.

Os chamadores de IoGetDevicePropertyData devem estar em execução em IRQL <= APC_LEVEL no contexto de um thread do sistema.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows Vista.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Confira também

DEVPROPKEY

DEVPROPTYPE

IoSetDevicePropertyData