this should be a comment but the content is long for a comment so an answer
your statement /subsequent edit / that header files does not contain names
is not correct
:\>echo %cd%
E:\ewdk\Program Files\Windows Kits\10\Include\10.0.10586.0\um
:\>grep -irn -B 3 -A 3 GetLocalTime *
sysinfoapi.h-180-WINBASEAPI
sysinfoapi.h-181-VOID
sysinfoapi.h-182-WINAPI
sysinfoapi.h:183:GetLocalTime(
sysinfoapi.h-184- _Out_ LPSYSTEMTIME lpSystemTime
sysinfoapi.h-185- );
sysinfoapi.h-186-
--
in fact i have around 49547 apis parsed from ewdk win10 headers
:\>wc -l uniqtags.txt
49547 uniqtags.txt
here is what it spits out for your GetLocalTime
:\>grep -n GetLocalTime uniqtags.txt
9715:GetLocalTime ( _Out_ LPSYSTEMTIME lpSystemTime )
15926:InternetDebugGetLocalTime ( _Out_ SYSTEMTIME * pstLocalTime, _Out_opt_ DWORD * pdwReserved )
here is what the possibly undocumented zwrecover functions with arguments
parsed from headers look like
:\>grep -n ZwRec uniqtags.txt
33290:ZwRecoverEnlistment ( _In_ HANDLE EnlistmentHandle, _In_opt_ PVOID EnlistmentKey )
33291:ZwRecoverResourceManager ( _In_ HANDLE ResourceManagerHandle )
33292:ZwRecoverTransactionManager ( _In_ HANDLE TransactionManagerHandle )
just to make it clear if you want to print out all the Zw.Enlist. functions with thier arguments you could do some thing like this
:\>for /f %I in ( 'awk "{print $1}" uniqtags.txt ^| grep -i Zw ^| grep Enlist ') do grep %I uniqta
gs.txt
:\>grep ZwCommitEnlistment uniqtags.txt
ZwCommitEnlistment ( _In_ HANDLE EnlistmentHandle, _In_opt_ PLARGE_INTEGER TmVirtualClock )
:\>grep ZwCreateEnlistment uniqtags.txt
ZwCreateEnlistment ( _Out_ PHANDLE EnlistmentHandle, _In_ ACCESS_MASK DesiredAccess, _In_ HANDL
E ResourceManagerHandle, _In_ HANDLE TransactionHandle, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
, _In_opt_ ULONG CreateOptions, _In_ NOTIFICATION_MASK NotificationMask, _In_opt_ PVOID EnlistmentKe
y )
:\>grep ZwOpenEnlistment uniqtags.txt
ZwOpenEnlistment ( _Out_ PHANDLE EnlistmentHandle, _In_ ACCESS_MASK DesiredAccess, _In_ HANDL
E RmHandle, _In_ LPGUID EnlistmentGuid, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes )
:\>grep ZwPrePrepareEnlistment uniqtags.txt
ZwPrePrepareEnlistment ( _In_ HANDLE EnlistmentHandle, _In_opt_ PLARGE_INTEGER TmVirtualClock )
:\>grep ZwPrepareEnlistment uniqtags.txt
ZwPrepareEnlistment ( _In_ HANDLE EnlistmentHandle, _In_opt_ PLARGE_INTEGER TmVirtualClock )
:\>grep ZwQueryInformationEnlistment uniqtags.txt
ZwQueryInformationEnlistment ( _In_ HANDLE EnlistmentHandle, _In_ ENLISTMENT_INFORMATION_CLASS En
listmentInformationClass, _Out_writes_bytes_(EnlistmentInformationLength) PVOID EnlistmentInformatio
n, _In_ ULONG EnlistmentInformationLength, _Out_opt_ PULONG ReturnLength )
:\>grep ZwReadOnlyEnlistment uniqtags.txt
ZwReadOnlyEnlistment ( _In_ HANDLE EnlistmentHandle, _In_opt_ PLARGE_INTEGER TmVirtualClock )
:\>grep ZwRecoverEnlistment uniqtags.txt
ZwRecoverEnlistment ( _In_ HANDLE EnlistmentHandle, _In_opt_ PVOID EnlistmentKey )
:\>grep ZwRollbackEnlistment uniqtags.txt
ZwRollbackEnlistment ( _In_ HANDLE EnlistmentHandle, _In_opt_ PLARGE_INTEGER TmVirtualClock )
:\>grep ZwSetInformationEnlistment uniqtags.txt
ZwSetInformationEnlistment ( _In_ HANDLE EnlistmentHandle, _In_ ENLISTMENT_INFORMATION_CLASS En
listmentInformationClass, _In_reads_bytes_(EnlistmentInformationLength) PVOID EnlistmentInformation,
_In_ ULONG EnlistmentInformationLength )
:\>