Module: wine Branch: master Commit: 5817e366346fc9c0e23d30c9d65cbf47c5815e6d URL: http://source.winehq.org/git/wine.git/?a=commit;h=5817e366346fc9c0e23d30c9d6...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Jun 19 16:58:42 2007 +0200
ntdll: Improved the stub behavior of NtQuerySystemInformation(SystemModuleInformation).
---
dlls/ntdll/loader.c | 3 ++- dlls/ntdll/nt.c | 15 ++------------- dlls/ntdll/tests/info.c | 6 ++---- 3 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 77e5308..2826d19 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -1859,6 +1859,7 @@ NTSTATUS WINAPI LdrQueryProcessModuleInformation(PSYSTEM_MODULE_INFORMATION smi, char* ptr; PLIST_ENTRY mark, entry; PLDR_MODULE mod; + WORD id = 0;
smi->ModulesCount = 0;
@@ -1875,7 +1876,7 @@ NTSTATUS WINAPI LdrQueryProcessModuleInformation(PSYSTEM_MODULE_INFORMATION smi, sm->ImageBaseAddress = mod->BaseAddress; sm->ImageSize = mod->SizeOfImage; sm->Flags = mod->Flags; - sm->Id = 0; /* FIXME */ + sm->Id = id++; sm->Rank = 0; /* FIXME */ sm->Unknown = 0; /* FIXME */ str.Length = 0; diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index 3332821..ed707c0 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -844,19 +844,8 @@ NTSTATUS WINAPI NtQuerySystemInformation( } break; case SystemModuleInformation: - { - SYSTEM_MODULE_INFORMATION smi; - - memset(&smi, 0, sizeof(smi)); - len = sizeof(smi); - - if ( Length >= len) - { - if (!SystemInformation) ret = STATUS_ACCESS_VIOLATION; - else memcpy( SystemInformation, &smi, len); - } - else ret = STATUS_INFO_LENGTH_MISMATCH; - } + /* FIXME: should be system-wide */ + ret = LdrQueryProcessModuleInformation( SystemInformation, Length, &len ); break; case SystemHandleInformation: { diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c index 4837211..526c62e 100644 --- a/dlls/ntdll/tests/info.c +++ b/dlls/ntdll/tests/info.c @@ -382,10 +382,8 @@ static void test_query_module(void)
ModuleCount = smi->ModulesCount; sm = &smi->Modules[0]; - todo_wine{ - /* our implementation is a stub for now */ - ok( ModuleCount > 0, "Expected some modules to be loaded\n"); - } + /* our implementation is a stub for now */ + ok( ModuleCount > 0, "Expected some modules to be loaded\n");
/* Loop through all the modules/drivers, Wine doesn't get here (yet) */ for (i = 0; i < ModuleCount ; i++)