[PATCH] kernel32: Implement K32EnumDeviceDrivers and K32GetDeviceDriverBaseNameA (pt. 2)
I noticed my submission yesterday was a little undercooked and since I have spent some more time on it, I thought I'd try to submit a (hopefully) proper patch to the list. This is a rough implementation of K32EnumDeviceDrivers and K32GetDeviceDriverBaseNameA.
Anthony Lauzon <anthony.lauzon(a)gmail.com> writes:
+ status = NtQuerySystemInformation(SystemModuleInformation, + smi, + SystemInformationLength, + &ReturnLength); + + ULONG i; + /* Try to find which module matches the base address given */ + for (i = 0; i < smi->ModulesCount; ++i) + { + if (i >= cb/sizeof(LPVOID)) { + break; + } + image_base[i] = smi->Modules[i].ImageBaseAddress; + }
This is enumerating the modules loaded in the current process, it doesn't have anything to do with device drivers. What problem are you trying to solve? -- Alexandre Julliard julliard(a)winehq.org
I followed the ReactOS code and the documentation from Microsoft for the EnumDeviceDrivers function for this code. I'm attaching a link to the stack trace from the program I'm trying to run. It's the Creative E-MU Emulator X3. The error is an invalid floating point for 32-bit code error. emux3_trace.log <https://drive.google.com/file/d/1JLHO-J3lNgUVgvMK8M8BsxNnX8kTycqJ/view?usp=drive_web> On Thu, Jul 12, 2018 at 6:08 AM Alexandre Julliard <julliard(a)winehq.org> wrote:
Anthony Lauzon <anthony.lauzon(a)gmail.com> writes:
+ status = NtQuerySystemInformation(SystemModuleInformation, + smi, + SystemInformationLength, + &ReturnLength); + + ULONG i; + /* Try to find which module matches the base address given */ + for (i = 0; i < smi->ModulesCount; ++i) + { + if (i >= cb/sizeof(LPVOID)) { + break; + } + image_base[i] = smi->Modules[i].ImageBaseAddress; + }
This is enumerating the modules loaded in the current process, it doesn't have anything to do with device drivers. What problem are you trying to solve?
-- Alexandre Julliard julliard(a)winehq.org
participants (2)
-
Alexandre Julliard -
Anthony Lauzon