@@ -120,14 +120,14 @@ bool NTAPI RtlInitializeLdrDataTableEntry(
120120 }
121121
122122 switch (NtWindowsVersion ()) {
123- case win10:
124- case win10_1:
125- case win10_2: {
123+ case WINDOWS_VERSION:: win10:
124+ case WINDOWS_VERSION:: win10_1:
125+ case WINDOWS_VERSION:: win10_2: {
126126 auto entry = (PLDR_DATA_TABLE_ENTRY_WIN10)LdrEntry;
127127 entry->ReferenceCount = 1 ;
128128 }
129- case win8:
130- case win8_1: {
129+ case WINDOWS_VERSION:: win8:
130+ case WINDOWS_VERSION:: win8_1: {
131131 auto entry = (PLDR_DATA_TABLE_ENTRY_WIN8)LdrEntry;
132132 const static bool IsWin8 = RtlIsWindowsVersionInScope (6 , 2 , 0 , 6 , 3 , -1 );
133133 NtQuerySystemTime (&entry->LoadTime );
@@ -156,14 +156,14 @@ bool NTAPI RtlInitializeLdrDataTableEntry(
156156 FlagsProcessed = true ;
157157 }
158158
159- case win7: {
159+ case WINDOWS_VERSION:: win7: {
160160 if (LdrpDataTableEntrySize () == sizeof (LDR_DATA_TABLE_ENTRY_WIN7)) {
161161 auto entry = (PLDR_DATA_TABLE_ENTRY_WIN7)LdrEntry;
162162 entry->OriginalBase = headers->OptionalHeader .ImageBase ;
163163 NtQuerySystemTime (&entry->LoadTime );
164164 }
165165 }
166- case vista: {
166+ case WINDOWS_VERSION:: vista: {
167167 if (LdrpDataTableEntrySize () == sizeof (LDR_DATA_TABLE_ENTRY_VISTA) ||
168168 LdrpDataTableEntrySize () == sizeof (LDR_DATA_TABLE_ENTRY_WIN7)) {
169169 auto entry = (PLDR_DATA_TABLE_ENTRY_VISTA)LdrEntry;
@@ -172,7 +172,7 @@ bool NTAPI RtlInitializeLdrDataTableEntry(
172172 RtlInitializeListEntry (&entry->ServiceTagLinks );
173173 }
174174 }
175- case xp: {
175+ case WINDOWS_VERSION:: xp: {
176176 LdrEntry->DllBase = BaseAddress;
177177 LdrEntry->SizeOfImage = headers->OptionalHeader .SizeOfImage ;
178178 LdrEntry->TimeDateStamp = headers->FileHeader .TimeDateStamp ;
@@ -194,18 +194,18 @@ bool NTAPI RtlInitializeLdrDataTableEntry(
194194bool NTAPI RtlFreeLdrDataTableEntry (IN PLDR_DATA_TABLE_ENTRY LdrEntry) {
195195 HANDLE heap = NtCurrentPeb ()->ProcessHeap ;
196196 switch (NtWindowsVersion ()) {
197- case win10:
198- case win10_1:
199- case win10_2:
200- case win8:
201- case win8_1: {
197+ case WINDOWS_VERSION:: win10:
198+ case WINDOWS_VERSION:: win10_1:
199+ case WINDOWS_VERSION:: win10_2:
200+ case WINDOWS_VERSION:: win8:
201+ case WINDOWS_VERSION:: win8_1: {
202202 auto entry = (PLDR_DATA_TABLE_ENTRY_WIN10)LdrEntry;
203203 RtlFreeDependencies (entry);
204204 RtlFreeHeap (heap, 0 , entry->DdagNode );
205205 RtlRemoveModuleBaseAddressIndexNode (LdrEntry);
206206 }
207- case win7:
208- case vista: {
207+ case WINDOWS_VERSION:: win7:
208+ case WINDOWS_VERSION:: vista: {
209209 if (LdrpDataTableEntrySize () == sizeof (LDR_DATA_TABLE_ENTRY_VISTA) ||
210210 LdrpDataTableEntrySize () == sizeof (LDR_DATA_TABLE_ENTRY_WIN7)) {
211211 PLDR_DATA_TABLE_ENTRY_VISTA entry = (decltype (entry))LdrEntry;
@@ -218,7 +218,7 @@ bool NTAPI RtlFreeLdrDataTableEntry(IN PLDR_DATA_TABLE_ENTRY LdrEntry) {
218218 }
219219 }
220220 }
221- case xp: {
221+ case WINDOWS_VERSION:: xp: {
222222 RtlFreeHeap (heap, 0 , LdrEntry->BaseDllName .Buffer );
223223 RtlFreeHeap (heap, 0 , LdrEntry->FullDllName .Buffer );
224224 RemoveEntryList (&LdrEntry->InLoadOrderLinks );
@@ -266,13 +266,13 @@ VOID NTAPI RtlInsertMemoryTableEntry(IN PLDR_DATA_TABLE_ENTRY LdrEntry) {
266266}
267267
268268VOID NTAPI RtlRbInsertNodeEx (IN PRTL_RB_TREE Tree, IN PRTL_BALANCED_NODE Parent, IN BOOLEAN Right, OUT PRTL_BALANCED_NODE Node) {
269- decltype (&RtlRbInsertNodeEx)_RtlRbInsertNodeEx = decltype (_RtlRbInsertNodeEx)(RtlGetNtProcAddress (" RtlRbInsertNodeEx" ));
269+ static decltype (&RtlRbInsertNodeEx)_RtlRbInsertNodeEx = decltype (_RtlRbInsertNodeEx)(RtlGetNtProcAddress (" RtlRbInsertNodeEx" ));
270270 if (!_RtlRbInsertNodeEx)return ;
271271 return _RtlRbInsertNodeEx (Tree, Parent, Right, Node);
272272}
273273
274274VOID NTAPI RtlRbRemoveNode (IN PRTL_RB_TREE Tree, IN PRTL_BALANCED_NODE Node) {
275- decltype (&RtlRbRemoveNode)_RtlRbRemoveNode = decltype (_RtlRbRemoveNode)(RtlGetNtProcAddress (" RtlRbRemoveNode" ));
275+ static decltype (&RtlRbRemoveNode)_RtlRbRemoveNode = decltype (_RtlRbRemoveNode)(RtlGetNtProcAddress (" RtlRbRemoveNode" ));
276276 if (!_RtlRbRemoveNode)return ;
277277 return _RtlRbRemoveNode (Tree, Node);
278278}
@@ -296,8 +296,8 @@ PLDR_DATA_TABLE_ENTRY NTAPI RtlFindLdrTableEntryByBaseName(PCWSTR BaseName) {
296296 while (ListEntry != ListHead) {
297297 CurEntry = CONTAINING_RECORD (ListEntry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
298298 ListEntry = ListEntry->Flink ;
299- if (!wcsnicmp (BaseName, CurEntry->BaseDllName .Buffer , (CurEntry->BaseDllName .Length / sizeof (wchar_t )) - 4 ) ||
300- !wcsnicmp (BaseName, CurEntry->BaseDllName .Buffer , CurEntry->BaseDllName .Length / sizeof (wchar_t ))) {
299+ if (!_wcsnicmp (BaseName, CurEntry->BaseDllName .Buffer , (CurEntry->BaseDllName .Length / sizeof (wchar_t )) - 4 ) ||
300+ !_wcsnicmp (BaseName, CurEntry->BaseDllName .Buffer , CurEntry->BaseDllName .Length / sizeof (wchar_t ))) {
301301 return CurEntry;
302302 }
303303 }
@@ -322,14 +322,14 @@ size_t NTAPI LdrpDataTableEntrySize() {
322322 if (size)return size;
323323
324324 switch (NtWindowsVersion ()) {
325- case xp:return size = sizeof (LDR_DATA_TABLE_ENTRY_XP);
326- case vista:return size = sizeof (LDR_DATA_TABLE_ENTRY_VISTA);
327- case win7:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN7);
328- case win8:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN8);
329- case win8_1:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN8_1);
330- case win10:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN10);
331- case win10_1:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN10_1);
332- case win10_2:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN10_2);
325+ case WINDOWS_VERSION:: xp:return size = sizeof (LDR_DATA_TABLE_ENTRY_XP);
326+ case WINDOWS_VERSION:: vista:return size = sizeof (LDR_DATA_TABLE_ENTRY_VISTA);
327+ case WINDOWS_VERSION:: win7:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN7);
328+ case WINDOWS_VERSION:: win8:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN8);
329+ case WINDOWS_VERSION:: win8_1:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN8_1);
330+ case WINDOWS_VERSION:: win10:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN10);
331+ case WINDOWS_VERSION:: win10_1:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN10_1);
332+ case WINDOWS_VERSION:: win10_2:return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN10_2);
333333 default :return size = sizeof (LDR_DATA_TABLE_ENTRY_WIN10_2);
334334 }
335335}
0 commit comments