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) |