* isolated in its own library to clear the confusion
* and improve reusability
*/
-
+#define WIN32_NO_STATUS
+#include <windows.h>
#define NTOS_MODE_USER
-#include <ntos.h>
+#include <ndk/ntndk.h>
#define NDEBUG
#include <debug.h>
-#include <epsapi.h>
+#include <epsapi/epsapi.h>
NTSTATUS NTAPI
PsaEnumerateProcessModules(IN HANDLE ProcessHandle,
while(Current != ListHead)
{
- PLDR_MODULE LoaderModule = CONTAINING_RECORD(Current, LDR_MODULE, InLoadOrderModuleList);
+ PLDR_DATA_TABLE_ENTRY LoaderModule = CONTAINING_RECORD(Current, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
/* return the current module to the callback */
Status = Callback(ProcessHandle, LoaderModule, CallbackContext);
goto Failure;
}
- Current = LoaderModule->InLoadOrderModuleList.Flink;
+ Current = LoaderModule->InLoadOrderLinks.Flink;
}
#if 0
}
{
PROCESS_BASIC_INFORMATION BasicInformation;
PPEB_LDR_DATA LoaderData;
- LDR_MODULE LoaderModule;
+ LDR_DATA_TABLE_ENTRY LoaderModule;
PLIST_ENTRY ListHead, Current;
/* query the process basic information (includes the PEB address) */
{
/* read the current module */
Status = NtReadVirtualMemory(ProcessHandle,
- CONTAINING_RECORD(Current, LDR_MODULE, InLoadOrderModuleList),
+ CONTAINING_RECORD(Current, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks),
&LoaderModule,
sizeof(LoaderModule),
NULL);
}
/* address of the next module in the list */
- Current = LoaderModule.InLoadOrderModuleList.Flink;
+ Current = LoaderModule.InLoadOrderLinks.Flink;
}
}