Compartilhar via


Função IoSetDevicePropertyData (wdm.h)

A rotina IoSetDevicePropertyData modifica a configuração atual de uma propriedade de dispositivo.

Sintaxe

NTSTATUS IoSetDevicePropertyData(
  [in]           PDEVICE_OBJECT   Pdo,
  [in]           const DEVPROPKEY *PropertyKey,
  [in]           LCID             Lcid,
  [in]           ULONG            Flags,
  [in]           DEVPROPTYPE      Type,
  [in]           ULONG            Size,
  [in, optional] PVOID            Data
);

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.

[in] Flags

Defina esse parâmetro como PLUGPLAY_PROPERTY_PERSISTENT se o valor da propriedade definido por essa rotina persistir entre as reinicializações do computador. Caso contrário, defina Sinalizadores como zero.

Windows 8 e Windows Server 2012 e sistemas operacionais posteriores tratam Sinalizadores como se PLUGPLAY_PROPERTY_PERSISTENT sempre fosse passado.

[in] Type

Um valor DEVPROPTYPE que especifica o tipo dos dados fornecidos no buffer de dados .

[in] Size

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

[in, optional] Data

Um ponteiro para os dados da propriedade do dispositivo. Defina esse parâmetro como NULL para excluir a propriedade especificada. Se Data não for NULL, a rotina armazenará uma cópia interna do valor da propriedade. O buffer apontado por Dados não precisa permanecer válido após o retorno da chamada.

Retornar valor

IoSetDevicePropertyData retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida ou o código NTSTATUS apropriado em caso de falha.

Comentários

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 no modo kernel usam a rotina IoSetDevicePropertyData para modificar as propriedades do dispositivo definidas como parte do modelo de propriedade do dispositivo unificado. Para obter mais informações sobre as propriedades do dispositivo, consulte Propriedades do dispositivo.

Para excluir uma propriedade para uma localidade específica, passe um valor LCID específico do idioma em Lcid e NULL em Dados.

Para excluir uma propriedade para todas as localidades, passe LOCALE_NEUTRAL em Lcid e NULL em Dados.

Para modificar uma propriedade para uma localidade específica, passe um valor LCID específico do idioma em Lcid e não NULL em Dados.

Para modificar uma propriedade para todas as localidades, passe LOCALE_NEUTRAL em Lcid e não NULL em Dados.

Começando com Windows 8 e Windows Server 2012 passando LOCALE_NEUTRAL no Lcid é tratado como qualquer outra localidade.

Os drivers podem usar a rotina IoGetDevicePropertyData para obter o valor atual de uma propriedade de dispositivo.

Os chamadores de IoSetDeviceProperty 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

IoGetDevicePropertyData