- MmLoadSystemImage's last parameter (BaseAddress) is not marked as OPTIONAL. Fix callers.

svn path=/trunk/; revision=35872
This commit is contained in:
Aleksey Bragin 2008-09-02 08:26:05 +00:00
parent f2b500d25c
commit d866798279
2 changed files with 7 additions and 4 deletions

View file

@ -277,6 +277,7 @@ IopLoadServiceModule(
UNICODE_STRING ServiceImagePath, CCSName; UNICODE_STRING ServiceImagePath, CCSName;
NTSTATUS Status; NTSTATUS Status;
HANDLE CCSKey, ServiceKey; HANDLE CCSKey, ServiceKey;
PVOID BaseAddress;
DPRINT("IopLoadServiceModule(%wZ, 0x%p)\n", ServiceName, ModuleObject); DPRINT("IopLoadServiceModule(%wZ, 0x%p)\n", ServiceName, ModuleObject);
@ -358,7 +359,7 @@ IopLoadServiceModule(
else else
{ {
DPRINT("Loading module\n"); DPRINT("Loading module\n");
Status = MmLoadSystemImage(&ServiceImagePath, NULL, NULL, 0, (PVOID)ModuleObject, NULL); Status = MmLoadSystemImage(&ServiceImagePath, NULL, NULL, 0, (PVOID)ModuleObject, &BaseAddress);
} }
ExFreePool(ServiceImagePath.Buffer); ExFreePool(ServiceImagePath.Buffer);
@ -1561,6 +1562,7 @@ IopLoadUnloadDriver(PLOAD_UNLOAD_PARAMS LoadParams)
PDEVICE_NODE DeviceNode; PDEVICE_NODE DeviceNode;
PDRIVER_OBJECT DriverObject; PDRIVER_OBJECT DriverObject;
PLDR_DATA_TABLE_ENTRY ModuleObject; PLDR_DATA_TABLE_ENTRY ModuleObject;
PVOID BaseAddress;
WCHAR *cur; WCHAR *cur;
/* Check if it's an unload request */ /* Check if it's an unload request */
@ -1671,7 +1673,7 @@ IopLoadUnloadDriver(PLOAD_UNLOAD_PARAMS LoadParams)
* Load the driver module * Load the driver module
*/ */
Status = MmLoadSystemImage(&ImagePath, NULL, NULL, 0, (PVOID)&ModuleObject, NULL); Status = MmLoadSystemImage(&ImagePath, NULL, NULL, 0, (PVOID)&ModuleObject, &BaseAddress);
if (!NT_SUCCESS(Status) && Status != STATUS_IMAGE_ALREADY_LOADED) if (!NT_SUCCESS(Status) && Status != STATUS_IMAGE_ALREADY_LOADED)
{ {
DPRINT("MmLoadSystemImage() failed (Status %lx)\n", Status); DPRINT("MmLoadSystemImage() failed (Status %lx)\n", Status);

View file

@ -694,6 +694,7 @@ MmInitializeCrashDump(HANDLE PageFileHandle, ULONG PageFileNum)
ANSI_STRING ProcName; ANSI_STRING ProcName;
PIO_STACK_LOCATION StackPtr; PIO_STACK_LOCATION StackPtr;
PLDR_DATA_TABLE_ENTRY ModuleObject = NULL; PLDR_DATA_TABLE_ENTRY ModuleObject = NULL;
PVOID BaseAddress;
Status = ZwFsControlFile(PageFileHandle, Status = ZwFsControlFile(PageFileHandle,
0, 0,
@ -766,13 +767,13 @@ MmInitializeCrashDump(HANDLE PageFileHandle, ULONG PageFileNum)
} }
/* Load the diskdump driver. */ /* Load the diskdump driver. */
Status = MmLoadSystemImage(&DiskDumpName, NULL, NULL, 0, (PVOID)&ModuleObject, NULL); Status = MmLoadSystemImage(&DiskDumpName, NULL, NULL, 0, (PVOID)&ModuleObject, &BaseAddress);
if (ModuleObject == NULL) if (ModuleObject == NULL)
{ {
return(STATUS_OBJECT_NAME_NOT_FOUND); return(STATUS_OBJECT_NAME_NOT_FOUND);
} }
RtlInitAnsiString(&ProcName, "DiskDumpFunctions"); RtlInitAnsiString(&ProcName, "DiskDumpFunctions");
MmCoreDumpFunctions = MiFindExportedRoutineByName(ModuleObject->DllBase, MmCoreDumpFunctions = MiFindExportedRoutineByName(BaseAddress,
&ProcName); &ProcName);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {