Función IoSetDevicePropertyData (wdm.h)

La rutina IoSetDevicePropertyData modifica la configuración actual de una propiedad de dispositivo.

Sintaxis

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

Puntero al objeto de dispositivo físico (PDO) del dispositivo que se está consultando.

[in] PropertyKey

Puntero a una estructura DEVPROPKEY que especifica la clave de propiedad del dispositivo.

[in] Lcid

Identificador de configuración regional. Establezca este parámetro en un valor LCID específico del lenguaje o en LOCALE_NEUTRAL.

El LOCALE_NEUTRAL LCID especifica que la propiedad es independiente del idioma (es decir, no específica de ningún idioma).

No establezca este parámetro en LOCALE_SYSTEM_DEFAULT o LOCALE_USER_DEFAULT.

Para obtener más información sobre los valores LCID específicos del lenguaje, vea LCID Structure.

[in] Flags

Establezca este parámetro en PLUGPLAY_PROPERTY_PERSISTENT si el valor de propiedad establecido por esta rutina debe conservarse en los reinicios del equipo. De lo contrario, establezca Marcas en cero.

Windows 8 y Windows Server 2012 y sistemas operativos posteriores tratan marcas como si siempre se pasa PLUGPLAY_PROPERTY_PERSISTENT.

[in] Type

Valor DEVPROPTYPE que especifica el tipo de los datos que se proporcionan en el búfer de datos .

[in] Size

Tamaño, en bytes, del búfer al que apunta Data .

[in, optional] Data

Puntero a los datos de la propiedad del dispositivo. Establezca este parámetro en NULL para eliminar la propiedad especificada. Si Data no es NULL, la rutina almacena una copia interna del valor de la propiedad. El búfer al que apunta Data no tiene que permanecer válido después de que se devuelva la llamada.

Valor devuelto

IoSetDevicePropertyData devuelve STATUS_SUCCESS si la llamada se realizó correctamente o el código NTSTATUS adecuado en caso de error.

Comentarios

Para ver los tipos de propiedad disponibles para su uso por esta rutina, consulte DEVPROP_TYPE_BYTE y páginas adyacentes para DEVPROP_TYPE_*.

Los controladores en modo kernel usan la rutina IoSetDevicePropertyData para modificar las propiedades del dispositivo definidas como parte del modelo de propiedades de dispositivo unificado. Para obtener más información sobre las propiedades del dispositivo, consulte Propiedades del dispositivo.

Para eliminar una propiedad de una configuración regional específica, pase un valor LCID específico del idioma en Lcid y NULL en Datos.

Para eliminar una propiedad para todas las configuraciones regionales, pase LOCALE_NEUTRAL en Lcid y NULL en Datos.

Para modificar una propiedad para una configuración regional específica, pase un valor LCID específico del idioma en Lcid y no NULL en Datos.

Para modificar una propiedad para todas las configuraciones regionales, pase LOCALE_NEUTRAL en Lcid y no NULL en Datos.

A partir de Windows 8 y Windows Server 2012 pasar LOCALE_NEUTRAL en Lcid se trata como cualquier otra configuración regional.

Los controladores pueden usar la rutina IoGetDevicePropertyData para obtener el valor actual de una propiedad de dispositivo.

Los autores de llamadas de IoSetDeviceProperty deben ejecutarse en IRQL <= APC_LEVEL en el contexto de un subproceso del sistema.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows Vista.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

DEVPROPKEY

DEVPROPTYPE

IoGetDevicePropertyData