I keep running into DLLs with long file names, as such. Just two for example: \"api-ms-win-appmodel-runtime-l1-1-1.dll\"
or \"api-ms-win-appmodel-identity
this is “Virtual DLLs” names. loader, when we call LoadLibrary
(LdrLoadDll
) check for well known name prefix (say api-
) and if name begin with this - use ApiSetSchema mechanism for translate virtual dll name (i.e api-ms-win..
) to real dll name (file name, like kernel32.dll
, kernelbase.dll
, etc). this mapping implemented in ApiSetSchema.dll which located in system32 folder.
about internal implementation - read Runtime DLL name resolution: ApiSetSchema - Part II and The API Set Schema