Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporciona una resolución para resolver el identificador de evento WMI-Activity 5858 que se registra con ResultCode = 0x80041032 en Windows Server 2012 R2.
Número de KB original: 3124914
Síntomas
Al usar Windows Server 2012 R2 con aplicaciones que emiten consultas WMI mediante IWbemServices:ExecQuery
, el administrador puede observar el siguiente evento en Visor de eventos:
Log Name: Microsoft-Windows-WMI-Activity/Operational
Source: WMI-Activity
Event ID: 5858
Level: Error
Id = {guid}; ClientMachine = <computer>; User = <user>; ClientProcessId = <process ID>; Component = Unknown; Operation = Start IWbemServices::ExecQuery - <WMI namespace>: <Select Query Statement>; ResultCode = 0x80041032; PossibleCause = Unknown
where 0x80041032 indicates WBEM_E_CALL_CANCELLED.
Nota:
Este evento puede producirse con muchos valores ResultCode diferentes. El problema descrito en este artículo solo se aplica cuando ResultCode = 0x80041032 (WBEM_E_CALL_CANCELLED)
.
Causa
El error WMI-Activity 5858 con ResultCode = 0x80041032 (WBEM_E_CALL_CANCELLED) indica que el llamador de WMI ha emitido IWbemServices:ExecQuery
correctamente , pero ha liberado el IWbemContext
objeto antes de recuperar el conjunto de resultados completo mediante el IEnumWbemClassObject::Next
método . Si el servicio WMI sigue manteniendo datos para el cliente cuando el cliente finaliza el vínculo (liberando el IWbemContext
objeto), este evento se registrará.
Este error puede producirse si la aplicación WMI llama IEnumWbemClassObject::Next
a con un valor de tiempo de espera (lTimeout) que no es lo suficientemente largo como para recuperar el objeto que se consulta y no comprueba si hay un código de retorno de WBEM_S_TIMEDOUT (0x40004)
para volver a emitir la solicitud.
Solución
La aplicación cliente WMI debe modificarse para emitir llamadas a para IEnumWbemClassObject::Next
recuperar el conjunto de resultados completo, antes de liberar el objeto IWbemContext. Si no se reciben objetos, asegúrese de que el valor de tiempo de espera (lTimeout) sea mayor que 0 y que WBEM_S_TIMEDOUT (0x40004)
no se devuelva.
Más información
Para más información, vea:
-
Nota:
El código de ejemplo incluido al final de esta página muestra
IEnumWbemClassObject::Next
que se llama con un valor de tiempo de espera (lTimeout) de 0 y no está comprobando el error de WBEM_S_TIMEDOUT .
Recolección de datos
Si necesita ayuda del soporte técnico de Microsoft, le recomendamos que recopile la información siguiendo los pasos mencionados en Recopilación de información mediante el uso de TSS para cuestiones relacionadas con la experiencia del usuario.