How does the Application Metering agent controls the execution of programs?
The Application Metering agent uses a .dll located in the '%WINDIR%\system32' folder named 'AMInit.dll' to control or verify the execution of programs.
This DLL is added to the following registry key:
String Value 'AppInit_DLLs' = 'AMInit.dll'
This registry key list DLLs that should be loaded using the LoadLibrary() function during the DLL_PROCESS_ATTACH process f User32.dll. This means that executables that do not link to User32.dll cannot be controlled by the Application Metering agent, but there are very few executables that do not link to the User32.dll.
The AppInit_DLLs value has type "REG_SZ." This value has to specify a NULL-terminated string of .dll files that is delimited by spaces or by commas. Because spaces are used as delimiters, do not use long file names. The system does not recognize semicolons as delimiters for these .dll files.
For more details about "Working with the AppInit_DLL registry value" see Microsoft support site.