Condividi tramite


Funzione CloseTrace (evntrace.h)

La funzione CloseTrace chiude una sessione di elaborazione di traccia creata con OpenTrace.

Sintassi

ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
  [in] TRACEHANDLE TraceHandle
);

Parametri

[in] TraceHandle

Gestire la sessione di elaborazione della traccia da chiudere. La funzione OpenTrace restituisce questo handle.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore di sistema. Di seguito sono riportati alcuni errori comuni e le relative cause.

  • ERROR_INVALID_HANDLE

    Una delle seguenti condizioni è vera:

    • TraceHandle è 0.
    • TraceHandle è INVALID_PROCESSTRACE_HANDLE.
    • TraceHandle non è un handle valido.
  • ERROR_BUSY

    Prima di Windows Vista, non è possibile chiudere la traccia fino al completamento della funzione ProcessTrace .

  • ERROR_CTX_CLOSE_PENDING

    La chiamata è stata completata correttamente. La funzione ProcessTrace verrà arrestata dopo l'elaborazione di tutti gli eventi in tempo reale nei relativi buffer (non riceverà nuovi eventi).

Commenti

I consumer chiamano questa funzione per chiudere un handle di traccia restituito da OpenTrace.

Importante

Non utilizzare questa funzione per chiudere l'handle di traccia restituito da StartTrace.

Se si elaborano eventi da un file di log, chiamare questa funzione solo dopo la restituzione della funzione ProcessTrace . Tuttavia, se si elaborano eventi in tempo reale, è possibile chiamare questa funzione prima che ProcessTrace restituisca . Un altro modo per arrestare l'elaborazione della traccia consiste nel restituire FALSE da BufferCallback.

Se si chiama questa funzione prima della restituzione di ProcessTrace , la funzione CloseTrace restituisce ERROR_CTX_CLOSE_PENDING. Il codice ERROR_CTX_CLOSE_PENDING indica che la chiamata di funzione CloseTrace ha avuto esito positivo; La funzione ProcessTrace interromperà l'elaborazione degli eventi dopo l'elaborazione di tutti gli eventi in coda in precedenza (ProcessTrace non riceverà nuovi eventi dopo aver chiamato la funzione CloseTrace ). È possibile chiamare la funzione CloseTrace dal callback BufferCallback, EventCallback o EventClassCallback .

Prima di Windows Vista: È possibile chiamare CloseTrace solo dopo la restituzione di ProcessTrace .

Esempio

Per un esempio che usa CloseTrace, vedere Recupero dei dati degli eventi tramite TDH.

Requisiti

   
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione evntrace.h
Libreria Sechost.lib in Windows 8.1 e Windows Server 2012 R2; Advapi32.lib in Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista e Windows XP
DLL Sechost.dll in Windows 8.1 e Windows Server 2012 R2; Advapi32.dll in Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista e Windows XP

Vedi anche

OpenTrace

ProcessTrace