Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Crea o actualiza una instancia de una clase existente. La instancia se escribe en el repositorio WMI.
Nota:
Esta API es solo para uso interno. No está pensado para su uso desde el código de desarrollador.
Syntax
HRESULT PutInstanceWmi (
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Parámetros
pInst
[in] Puntero a la instancia que se va a escribir.
lFlags
[in] Combinación de marcas que afectan al comportamiento de esta función. Los siguientes valores se definen en el archivo de encabezado WbemCli.h , o bien puede definirlos como constantes en el código:
| Constante | Importancia | Description |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Si se establece, WMI no almacena ningún calificador con el Amended sabor. Si no se establece, se supone que este objeto no está localizado y todos los calificadores se almacenan con esta instancia. |
WBEM_FLAG_CREATE_OR_UPDATE |
0 | Cree la instancia si no existe o sobrescriba si ya existe. |
WBEM_FLAG_UPDATE_ONLY |
1 | Actualice la instancia. La instancia debe existir para que la llamada sea correcta. |
WBEM_FLAG_CREATE_ONLY |
2 | Cree la instancia. Se produce un error en la llamada si la instancia ya existe. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | La marca provoca una llamada semisincrónica. |
pCtx
[in] Normalmente, este valor es null. De lo contrario, es un puntero a una instancia de IWbemContext que puede usar el proveedor que proporciona las clases solicitadas.
ppCallResult
[out] Si nulles , este parámetro no se usa. Si lFlags contiene WBEM_FLAG_RETURN_IMMEDIATELY, la función devuelve inmediatamente con WBEM_S_NO_ERROR. El ppCallResult parámetro recibe un puntero a un nuevo objeto IWbemCallResult .
Valor devuelto
Los siguientes valores devueltos por esta función se definen en el archivo de encabezado WbemCli.h , o bien puede definirlos como constantes en el código:
| Constante | Importancia | Description |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | El usuario no tiene permiso para actualizar una instancia de la clase especificada. |
WBEM_E_FAILED |
0x80041001 | Se ha producido un error no especificado. |
WBEM_E_INVALID_CLASS |
0x80041010 | La clase que admite esta instancia no es válida. |
WBEM_E_ILLEGAL_NULL |
0x80041028 |
null se especificó para una propiedad que no puede ser null, como una que está marcada por un Indexed calificador o Not_Null . |
WBEM_E_INVALID_OBJECT |
0x8004100f | La instancia especificada no es válida. (Por ejemplo, llamar a PutInstanceWmi con una clase devuelve este valor). |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Un parámetro no es válido. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | La WBEM_FLAG_CREATE_ONLY marca se especificó, pero la instancia ya existe. |
WBEM_E_NOT_FOUND |
0x80041002 |
WBEM_FLAG_UPDATE_ONLY se especificó en lFlags, pero la instancia no existe. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | No hay suficiente memoria disponible para completar la operación. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI probablemente se detuvo y se reiniciará. Vuelva a llamar a ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Error en el vínculo de llamada a procedimiento remoto (RPC) entre el proceso actual y WMI. |
WBEM_S_NO_ERROR |
0 | La llamada de función se realizó correctamente. |
Observaciones
Esta función ajusta una llamada al método IWbemServices::P utInstance .
La PutInstanceWmi función solo admite la creación de instancias y la actualización de instancias de clases existentes. Dependiendo de cómo se establezca el pCtx parámetro, se actualizan algunas o todas las propiedades de la instancia.
Cuando la instancia a pInst la que apunta pertenece a una subclase, Administración de Windows llama a todos los proveedores responsables de las clases de las que deriva la subclase. Todos estos proveedores deben realizarse correctamente para que la solicitud original PutInstanceWmi se realice correctamente. Primero se llama al proveedor que admite la clase superior de la jerarquía. El orden de llamada continúa con la subclase de la clase superior y continúa de arriba a abajo hasta que Administración de Windows alcanza el proveedor para la clase propietaria de la instancia a pInstla que apunta .
Administración de Windows no llama a los proveedores para ninguna de las clases secundarias de una instancia.
Cuando una aplicación debe actualizar una instancia que pertenece a una jerarquía de clases, el pInst parámetro debe apuntar a la instancia que contiene las propiedades que se van a modificar. Es decir, considere la posibilidad de una instancia de destino que pertenezca a ClassB. La ClassB instancia deriva de ClassA y ClassA define la propiedad PropA. Si una aplicación desea realizar un cambio en el valor de PropA en la ClassB instancia, debe establecerse pInst en esa instancia en lugar de en una instancia de ClassA.
No se permite llamar a PutInstanceWmi en una instancia de una clase abstracta.
Si se produce un error en la llamada a la función, puede obtener información de error adicional llamando a la función GetErrorInfo .
Requisitos
Plataformas: Consulte Requisitos del sistema.
Encabezado: WMINet_Utils.idl
Versiones de .NET Framework: Disponible desde la versión 4.7.2