From f69973e1e6aca0c4b139e8b1755f2ee0e42e61e4 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 27 Oct 2010 22:58:23 +0000 Subject: [PATCH] [NTOSKRNL] - Add IoWMIDeviceObjectToProviderId and IoIs32bitProcess stubs for 64bit builds - Comment out some deprecated amd64 code - Add MmProtectToValue - Fix a typo svn path=/trunk/; revision=49322 --- reactos/ntoskrnl/io/iomgr/device.c | 11 ++++++++ reactos/ntoskrnl/io/iomgr/irp.c | 11 ++++++++ reactos/ntoskrnl/mm/ARM3/i386/init.c | 2 +- reactos/ntoskrnl/mm/amd64/page.c | 41 ++++++++++++++++++++++++++-- reactos/ntoskrnl/ntoskrnl.pspec | 2 ++ 5 files changed, 64 insertions(+), 3 deletions(-) diff --git a/reactos/ntoskrnl/io/iomgr/device.c b/reactos/ntoskrnl/io/iomgr/device.c index 88e5ba4fa67..738ec9744b3 100644 --- a/reactos/ntoskrnl/io/iomgr/device.c +++ b/reactos/ntoskrnl/io/iomgr/device.c @@ -1731,4 +1731,15 @@ IoStartPacket(IN PDEVICE_OBJECT DeviceObject, KeLowerIrql(OldIrql); } +#if defined (_WIN64) +ULONG +NTAPI +IoWMIDeviceObjectToProviderId( + IN PDEVICE_OBJECT DeviceObject) +{ + UNIMPLEMENTED; + return 0; +} +#endif + /* EOF */ diff --git a/reactos/ntoskrnl/io/iomgr/irp.c b/reactos/ntoskrnl/io/iomgr/irp.c index 55d316adf55..54179a6d317 100644 --- a/reactos/ntoskrnl/io/iomgr/irp.c +++ b/reactos/ntoskrnl/io/iomgr/irp.c @@ -1816,3 +1816,14 @@ IoSetTopLevelIrp(IN PIRP Irp) /* Set the IRP */ PsGetCurrentThread()->TopLevelIrp = (ULONG_PTR)Irp; } + +#if defined (_WIN64) +BOOLEAN +NTAPI +IoIs32bitProcess( + IN PIRP Irp OPTIONAL) +{ +#pragma message IoIs32bitProcess is hardcoded to FALSE + return FALSE; +} +#endif diff --git a/reactos/ntoskrnl/mm/ARM3/i386/init.c b/reactos/ntoskrnl/mm/ARM3/i386/init.c index cfb77c6e33c..1d0a41c79ac 100644 --- a/reactos/ntoskrnl/mm/ARM3/i386/init.c +++ b/reactos/ntoskrnl/mm/ARM3/i386/init.c @@ -571,7 +571,7 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock) if (KiI386PentiumLockErrataPresent) { /* Mark the 1st IDT page as Write-Through to prevent a lockup - on a FOOF instruction. + on a F00F instruction. See http://www.rcollins.org/Errata/Dec97/F00FBug.html */ PointerPte = MiAddressToPte(KeGetPcr()->IDT); PointerPte->u.Hard.WriteThrough = 1; diff --git a/reactos/ntoskrnl/mm/amd64/page.c b/reactos/ntoskrnl/mm/amd64/page.c index b91e5e6a223..3201412e4f4 100644 --- a/reactos/ntoskrnl/mm/amd64/page.c +++ b/reactos/ntoskrnl/mm/amd64/page.c @@ -77,6 +77,43 @@ MmProtectToPteMask[32] = PTE_EXECUTE_WRITECOPY | PTE_WRITECOMBINED_CACHE, }; +const +ULONG MmProtectToValue[32] = +{ + PAGE_NOACCESS, + PAGE_READONLY, + PAGE_EXECUTE, + PAGE_EXECUTE_READ, + PAGE_READWRITE, + PAGE_WRITECOPY, + PAGE_EXECUTE_READWRITE, + PAGE_EXECUTE_WRITECOPY, + PAGE_NOACCESS, + PAGE_NOCACHE | PAGE_READONLY, + PAGE_NOCACHE | PAGE_EXECUTE, + PAGE_NOCACHE | PAGE_EXECUTE_READ, + PAGE_NOCACHE | PAGE_READWRITE, + PAGE_NOCACHE | PAGE_WRITECOPY, + PAGE_NOCACHE | PAGE_EXECUTE_READWRITE, + PAGE_NOCACHE | PAGE_EXECUTE_WRITECOPY, + PAGE_NOACCESS, + PAGE_GUARD | PAGE_READONLY, + PAGE_GUARD | PAGE_EXECUTE, + PAGE_GUARD | PAGE_EXECUTE_READ, + PAGE_GUARD | PAGE_READWRITE, + PAGE_GUARD | PAGE_WRITECOPY, + PAGE_GUARD | PAGE_EXECUTE_READWRITE, + PAGE_GUARD | PAGE_EXECUTE_WRITECOPY, + PAGE_NOACCESS, + PAGE_WRITECOMBINE | PAGE_READONLY, + PAGE_WRITECOMBINE | PAGE_EXECUTE, + PAGE_WRITECOMBINE | PAGE_EXECUTE_READ, + PAGE_WRITECOMBINE | PAGE_READWRITE, + PAGE_WRITECOMBINE | PAGE_WRITECOPY, + PAGE_WRITECOMBINE | PAGE_EXECUTE_READWRITE, + PAGE_WRITECOMBINE | PAGE_EXECUTE_WRITECOPY +}; + /* PRIVATE FUNCTIONS *******************************************************/ BOOLEAN @@ -418,8 +455,8 @@ MmDeleteVirtualMapping( { Pfn = OldPte.u.Hard.PageFrameNumber; - if (FreePage) - MmReleasePageMemoryConsumer(MC_NPPOOL, Pfn); + //if (FreePage) + //MmReleasePageMemoryConsumer(MC_NPPOOL, Pfn); } else Pfn = 0; diff --git a/reactos/ntoskrnl/ntoskrnl.pspec b/reactos/ntoskrnl/ntoskrnl.pspec index cc7415b4439..12a4139acfb 100644 --- a/reactos/ntoskrnl/ntoskrnl.pspec +++ b/reactos/ntoskrnl/ntoskrnl.pspec @@ -454,6 +454,7 @@ @ stdcall IoInitializeTimer(ptr ptr ptr) @ stdcall IoInvalidateDeviceRelations(ptr long) @ stdcall IoInvalidateDeviceState(ptr) +@ stdcall -arch=x86_64 IoIs32bitProcess(ptr) @ stdcall IoIsFileOriginRemote(ptr) @ stdcall IoIsOperationSynchronous(ptr) @ stdcall IoIsSystemThread(ptr) @@ -533,6 +534,7 @@ @ stdcall IoVolumeDeviceToDosName(ptr ptr) @ stdcall IoWMIAllocateInstanceIds(ptr long ptr) @ stdcall IoWMIDeviceObjectToInstanceName(ptr ptr ptr) +@ stdcall -arch=x86_64 IoWMIDeviceObjectToProviderId(ptr) @ stdcall IoWMIExecuteMethod(ptr ptr long long ptr ptr) @ stdcall IoWMIHandleToInstanceName(ptr ptr ptr) @ stdcall IoWMIOpenBlock(ptr long ptr)