Função IoSetDevicePropertyData (wdm.h)
A rotina IoSetDevicePropertyData modifica a configuração atual de uma propriedade do 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 de 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 LOCALE_NEUTRAL especifica que a propriedade é neutra em idioma (ou seja, não é específica para qualquer 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 para PLUGPLAY_PROPERTY_PERSISTENT se o valor da propriedade definido por essa rotina deve persistir entre as reinicializações do computador. Caso contrário, defina Flags como zero.
Os sistemas operacionais Windows 8 e Windows Server 2012 e posteriores tratam os sinalizadores como se PLUGPLAY_PROPERTY_PERSISTENT sempre fosse passado.
[in] Type
Um valor DEVPROPTYPE que especifica o tipo dos dados fornecidos no buffer Data.
[in] Size
O tamanho, em bytes, do buffer que data aponta.
[in, optional] Data
Um ponteiro para os dados da propriedade do dispositivo. Defina esse parâmetro para NULL para excluir a propriedade especificada. Se data não forNULL, a rotina armazenará uma cópia interna do valor da propriedade. O buffer apontado pelo Data não precisa permanecer válido após o retorno da chamada.
Valor de retorno
IoSetDevicePropertyData retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida ou o código NTSTATUS apropriado em caso de falha.
Observações
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 de modo kernel usam a rotina de 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 no Data.
Para excluir uma propriedade para todas as localidades, passe LOCALE_NEUTRAL em Lcid e NULL em Data.
Para modificar uma propriedade para uma localidade específica, passe um valor LCID específico do idioma em Lcid eNULL não no Data.
Para modificar uma propriedade para todas as localidades, passe LOCALE_NEUTRAL Lcid eNULL não no Data.
Começando com o Windows 8 e o Windows Server 2012 passando LOCALE_NEUTRAL em Lcid é tratado como qualquer outra localidade.
Os drivers podem usar a rotina de IoGetDevicePropertyData para obter o valor atual de uma propriedade do dispositivo.
Os chamadores de IoSetDeviceProperty devem estar em execução no IRQL <= APC_LEVEL no contexto de um thread do sistema.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows Vista. |
da Plataforma de Destino | Universal |
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |