Funzione UMDEtwRegister (umdprovider.h)
Registra il provider di traccia eventi. Il driver deve chiamare questa funzione prima di effettuare chiamate agli eventi di registrazione.
Sintassi
void UMDEtwRegister(
PFNUMDETW_RUNDOWN CbRundown
);
Parametri
CbRundown
Puntatore a una funzione di callback che restituisce informazioni sullo stato corrente del driver in modalità utente.
Questa funzione di callback deve chiamare la funzione UMDEtwLogMapAllocation per ogni mapping di allocazione corrente.
Valore restituito
nessuno
Osservazioni
Il tipo di dati per il parametro CbRundown è definito come:
typedef void (*PFNUMDETW_RUNDOWN)();
UMDEtwRegister è definito inline in Umdprovider.h come:
// GUID for UMD ETW provider
// {A688EE40-D8D9-4736-B6F9-6B74935BA3B1}
static const GUID UMDEtwProviderId =
{ 0xa688ee40, 0xd8d9, 0x4736, { 0xb6, 0xf9, 0x6b, 0x74, 0x93, 0x5b, 0xa3, 0xb1 } };
// Registration handle, returned by EventRegister and passed to EventUnregister
__declspec(selectany) REGHANDLE RegHandle = NULL;
// Whether any level of logging is enabled.
__declspec(selectany) BOOLEAN Enabled = FALSE;
// Whether we are currently in a rundown
__declspec(selectany) BOOLEAN InRundown = FALSE;
// Callback to the driver when a rundown is needed
__declspec(selectany) PFNUMDETW_RUNDOWN Rundown = NULL;
FORCEINLINE void NTAPI EnableCallback(
__in LPCGUID SourceId,
__in ULONG IsEnabled,
__in UCHAR Level,
__in ULONGLONG MatchAnyKeyword,
__in ULONGLONG MatchAllKeywords,
__in_opt PEVENT_FILTER_DESCRIPTOR FilterData,
__in_opt PVOID CallbackContext
)
{
switch (IsEnabled)
{
case EVENT_CONTROL_CODE_DISABLE_PROVIDER:
Enabled = FALSE;
break;
case EVENT_CONTROL_CODE_ENABLE_PROVIDER:
Enabled = TRUE;
break;
case EVENT_CONTROL_CODE_CAPTURE_STATE:
// Temporarily enable logging during the rundown
BOOLEAN OldEnabled = Enabled;
Enabled = TRUE;
InRundown = TRUE;
Rundown();
InRundown = FALSE;
// Restore Enabled to its original state
Enabled = OldEnabled;
break;
}
}
FORCEINLINE void UMDEtwRegister(PFNUMDETW_RUNDOWN RundownCb)
{
Rundown = RundownCb;
// Register the provider
EventRegister(&UMDEtwProviderId,
EnableCallback,
NULL,
&RegHandle);
}
La funzione EventRegister e i valori EVENT_CONTROL_CODE_XXX sono descritti nella documentazione degli eventi di Windows .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Server minimo supportato | Windows Server 2012 |
Piattaforma di destinazione | Desktop |
Intestazione | umdprovider.h (include Umdprovider.h) |