EtwCheckCoverage API

This is a relatively new API (EtwCheckCoverage) that may be of interest. It is being used by a couple of DLLs and executables in Windows 11 and here’s a list of known parameters it takes:

comdlg32.dll
Shell_Picker_Show
Shell_Picker_Finish
Shell_Picker_Cancel

dafBth.dll
Bluetooth_Pairing_Cancelled
Bluetooth_Pairing_Succeeded
Bluetooth_Pairing_Failed
Bluetooth_Pairing_Started
Bluetooth_Pairing_Deleted

diagtrack.dll
UTC_OsEvents_AbnormalShutdown

dwmcore.dll
Dwm_EnergyReporter_DataDropped_Queuing
Dwm_EnergyReporter_DataDropped_MaxEntries
Dwm_EnergyReporter_DataDropped_WorkerRunning

Faultrep.dll
WER_Report_AppCrash

localspl.dll
Printing_Job_Complete_3D
Printing_Job_Error_3D
Printing_Job_Complete
Printing_Job_Error
Printing_Job_Start_3D
Printing_Job_Start

ncsi.dll
NLA_Capability_Internet
NLA_Capability_Internet_ProxyAuth
NLA_Capability_Internet_BehindHotspot
NLA_Capability_Internet_Proxied
NLA_Capability_Internet_Corp

rasapi32.dll
VPN_Connection_Failed
VPN_Connection_Complete

Taskmgr.exe
Diag_TaskMgr_EndTask_FromSmallView
Diag_TaskMgr_EndTask_FromDetails
Diag_TaskMgr_EndTask
Diag_Taskmgr_Launch

tellib.dll
UTC_OsEvents_AbnormalShutdown

wersvc.dll
WER_Report_AppHang

windows.storage.dll
Copy_Engine_WCIFS_Delete_Attempt

wlansvc.dll
Wireless_Connection_Success
Wireless_Connection_Unsuccessful

1 little known secret of aidd.dll

When you run (from admin account):

rundll32 aidd.dll, AiddRunTask

a lot of interesting things are happening. There are at least 2 files of interest being created:

c:\Windows\appcompat\AIDD\AIDDProcessLoadedDllListDBdump.txt
c:\Windows\appcompat\AIDD\ProcessLoadedDllList.db

They include a textual and SQLite-based list of executables running and DLLs loaded.

The text file includes 3 sections:

@#1 Executable
@#2 DLL
@#3 ExecutableDLL

and the SQLite database file includes 3 tables:

CREATE TABLE Executable (ID INTEGER PRIMARY KEY AUTOINCREMENT,Path TEXT UNIQUE NOT NULL,Publisher TEXT,ProductName TEXT,Version TEXT,ProgramID TEXT,FileID TEXT);

CREATE TABLE DLL (ID INTEGER PRIMARY KEY AUTOINCREMENT,Path TEXT UNIQUE NOT NULL,Publisher TEXT,ProductName TEXT,Version TEXT,FileID TEXT);

CREATE TABLE ExecutableDLL (ID INTEGER PRIMARY KEY AUTOINCREMENT,ExecutableID INTEGER NOT NULL,DllID INTEGER NOT NULL,DetectedAtLaunch INTEGER DEFAULT 0,LoadCount INTEGER DEFAULT 1,LastLoaded DATETIME,Month1_flag INTEGER DEFAULT 0,Month2_flag INTEGER DEFAULT 0,Month3_flag INTEGER DEFAULT 0,Month4_flag INTEGER DEFAULT 0,Month5_flag INTEGER DEFAULT 0,Month6_flag INTEGER DEFAULT 0,Month7_flag INTEGER DEFAULT 0,Month8_flag INTEGER DEFAULT 0,Month9_flag INTEGER DEFAULT 0,Month10_flag INTEGER DEFAULT 0,Month11_flag INTEGER DEFAULT 0,Month12_flag INTEGER DEFAULT 0,Month1_year INTEGER DEFAULT 0,Month2_year INTEGER DEFAULT 0,Month3_year INTEGER DEFAULT 0,Month4_year INTEGER DEFAULT 0,Month5_year INTEGER DEFAULT 0,Month6_year INTEGER DEFAULT 0,Month7_year INTEGER DEFAULT 0,Month8_year INTEGER DEFAULT 0,Month9_year INTEGER DEFAULT 0,Month10_year INTEGER DEFAULT 0,Month11_year INTEGER DEFAULT 0,Month12_year INTEGER DEFAULT 0,FOREIGN KEY (ExecutableID) REFERENCES Executable(ID),FOREIGN KEY (DllID) REFERENCES DLL(ID),UNIQUE(ExecutableID, DllID));

This is a quick&dirty equivalent of what you can get with Sysinternals’ tool listdlls.exe now available natively on Windows 11 26H2