Método SWbemServicesEx.Put

El método Put del objeto SWbemServicesEx guarda el objeto en el espacio de nombres enlazado al objeto y devuelve un objeto SWbemObjectPath que contiene la ruta de acceso del objeto en el que se escribieron los datos.

Se llama a este método en el modo semisincrónico. Para más información, vea Llamada a un método.

Para obtener una explicación de esta sintaxis, vea Convenciones de documentación para la API de scripting.

Sintaxis

objObjectPath = .Put( _
  ByVal objWbemObject, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Parámetros

objWbemObject

Necesario. Nuevo objeto que se va a colocar en el espacio de nombres. Puede ser un objeto recién creado o un objeto modificado.

iFlags [opcional]

Este parámetro determina si la llamada crea o actualiza el objeto y si la llamada se devuelve de inmediato. Este parámetro puede aceptar los valores siguientes.

wbemChangeFlagUpdateCompatible (0 (0x0))

Permite actualizar una clase si no hay clases derivadas y no hay ninguna instancia de esa clase. También permite actualizaciones en todos los casos si el cambio es únicamente para calificadores no importantes (por ejemplo, el calificador Description). Este es el comportamiento predeterminado de esta llamada y se usa para la compatibilidad con versiones anteriores de WMI. Si la clase tiene instancias, se produce un error en la actualización.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Permite actualizaciones de clases incluso si hay clases secundarias siempre y cuando el cambio no cause ningún conflicto con las clases secundarias. Se puede usar esta marca para agregar una nueva propiedad a la clase base que no se ha mencionado antes en ninguna de las clases secundarias. Si la clase tiene instancias, se produce un error en la actualización.

wbemChangeFlagUpdateForceMode (64 (0x40))

Esta marca fuerza la actualización de las clases cuando existen clases secundarias en conflicto. Por ejemplo, esta marca fuerza una actualización si se define un calificador de clase en una clase secundaria y la clase base intenta agregar el mismo calificador en conflicto con el existente. En este modo, el conflicto se resuelve eliminando el calificador en conflicto en la clase secundaria. Si la clase tiene instancias, se produce un error en la actualización.

El uso del modo de fuerza para actualizar una clase estática provoca la eliminación de todas las instancias de esa clase. Una actualización forzada en una clase de proveedor no elimina instancias de la clase.

wbemChangeFlagCreateOrUpdate (0 (0x0))

Hace que la clase o instancia se cree si no existe o se sobrescriba si ya existe.

wbemChangeFlagCreateOnly (2 (0x2))

Se usa solo para la creación. Se produce un error en la llamada si la clase ya existe.

wbemChangeFlagUpdateOnly (1 (0x1))

Hace que esta llamada solo realice una actualización. La clase o la instancia deben existir para que la llamada se realice correctamente.

wbemFlagReturnImmediately (16 (0x10))

Hace que la llamada se devuelva inmediatamente.

wbemFlagReturnWhenComplete (0 (0x0))

Hace que esta llamada se bloquee hasta que se haya completado la operación. Esta marca llama al método en el modo sincrónico.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Hace que WMI escriba datos de modificación de clase junto con la definición de clase base. Para obtener más información, consulte Localización de información de clase WMI.

objWbemNamedValueSet [opcional]

Normalmente, esto no está definido. De lo contrario, se trata de un objeto SWbemNamedValueSet cuyos elementos representan la información de contexto que puede usar el proveedor que atiende la solicitud. Un proveedor que admita o necesite esa información debe documentar los nombres de valor reconocidos, el tipo de datos del valor, los valores permitidos y la semántica.

Valor devuelto

Si la llamada se realiza correctamente, se devolverá un objeto SWbemObjectPath. Este objeto contiene la ruta de acceso del objeto de la instancia o clase que se ha confirmado correctamente en WMI.

Códigos de error

Después de completar el método Put_, el objeto Err puede contener uno de los códigos de error de la lista siguiente.

wbemErrAccessDenied - 2147749891 (0x80041003)

El usuario actual no tiene el permiso para la operación.

wbemErrAlreadyExists - 2147749913 (0x80041019)

Se especificó el indicador wbemChangeFlagCreateOnly, pero la instancia ya existe.

wbemErrFailed: 2147749889 (0x80041001)

Error no especificado.

wbemErrIllegalNull - 2147749898 (0x8004100A)

Se especificó un valor NULL para una propiedad que no puede ser NULL. Un ejemplo de esta propiedad es uno marcado por un calificador Key, Indexed o Not_Null.

wbemErrInvalidObject - 2147749908 (0x80041014)

El objeto especificado no es válido.

wbemErrInvalidParameter - 2147749896 (0x80041008)

Un parámetro especificado no es válido.

wbemErrNotFound: 2147749890 (0x80041002)

Se especificó la marca wbemChangeFlagUpdateOnly, pero la instancia o la clase no existe.

wbemErrIncompleteClass: 2147749920 (0x80041020)

No se han establecido todas las propiedades necesarias para las clases.

wbemErrOutOfMemory: 2147749894 (0x80041006)

No hay suficiente memoria para completar la operación.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_ISWbemServicesEx
IID
IID_ISWbemServicesEx