Share via


Función TraceLoggingUnregister (traceloggingprovider.h)

Anula el registro de un proveedor de TraceLogging.

Sintaxis

void TraceLoggingUnregister(
  TraceLoggingHProvider hProvider
);

Parámetros

hProvider

Identificador del proveedor TraceLogging que se va a anular el registro.

Valor devuelto

None

Observaciones

Cuando un componente comienza a ejecutarse, cualquier identificador de proveedor de TraceLogging en el componente estará en un estado no registrado y los intentos de usar el identificador del proveedor para generar eventos se omitirán silenciosamente. Para que el proveedor pueda escribir cualquier evento, debe registrar el proveedor mediante TraceLoggingRegister. Normalmente, lo hará durante el inicio del componente. En el apagado del componente, anule el registro del proveedor mediante una llamada a TraceLoggingUnregister, por ejemplo, antes de volver de main, wmaino WinMain, en DllMain(DLL_PROCESS_DETACH), antes de volver desde un error DriverEntryo en la rutina Unload del controlador.

TraceLoggingRegister no es seguro para subprocesos con respecto a otras llamadas a TraceLoggingRegister o TraceLoggingUnregister en el mismo identificador. No llame a TraceLoggingRegister si es posible que otro subproceso llame a TraceLoggingRegister o TraceLoggingUnregister en el mismo identificador al mismo tiempo.

Si se produce un error en TraceLoggingRegister , el identificador del proveedor permanecerá sin registrar y todos los usos del identificador de proveedor no serán seguros sin operaciones. En concreto, es un no-op seguro llamar a TraceLoggingWrite o TraceLoggingUnregister con un identificador de proveedor no registrado.

Importante

Si el archivo DLL o el controlador llama a TraceLoggingRegister en un identificador de proveedor, debe llamar a TraceLoggingUnregister en ese identificador de proveedor antes de que se descargue el archivo DLL o el controlador. Si un archivo DLL se descarga sin llamar a TraceLoggingUnregister, el proceso puede bloquearse posteriormente. Si un controlador descarga sin llamar a TraceLoggingUnregister, el sistema puede bloquearse posteriormente. La TraceLoggingRegister función establece una devolución de llamada de configuración ETW y TraceLoggingUnregister cancela la devolución de llamada. Si la devolución de llamada no se cancela y el módulo se descarga, se producirá un bloqueo la próxima vez que ETW intente invocar la devolución de llamada.

Requisitos

   
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Encabezado traceloggingprovider.h
Library Advapi32.lib

Consulte también

TraceLoggingRegister

EventUnregister