diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index ac152968cc9..2de8f131957 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -1454,6 +1454,16 @@ PVOID WINAPI MmPageEntireDriver(PVOID AddrInSection) return AddrInSection; } + +/*********************************************************************** + * MmProbeAndLockPages (NTOSKRNL.EXE.@) + */ +void MmProbeAndLockPages(PMDLX MemoryDescriptorList, KPROCESSOR_MODE AccessMode, LOCK_OPERATION Operation) +{ + FIXME("(%p, %u, %u): stub\n", MemoryDescriptorList, AccessMode, Operation); +} + + /*********************************************************************** * MmResetDriverPaging (NTOSKRNL.EXE.@) */ diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 676b2416e64..2201d0664f1 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -702,7 +702,7 @@ @ stub MmMarkPhysicalMemoryAsGood @ stdcall MmPageEntireDriver(ptr) @ stub MmPrefetchPages -@ stub MmProbeAndLockPages +@ stdcall MmProbeAndLockPages(ptr long long) @ stub MmProbeAndLockProcessPages @ stub MmProbeAndLockSelectedPages @ stub MmProtectMdlSystemAddress diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index 85d3da56aed..a868e881934 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -966,6 +966,8 @@ typedef struct _MDL { ULONG ByteOffset; } MDL, *PMDL; +typedef MDL *PMDLX; + typedef struct _KTIMER { DISPATCHER_HEADER Header; ULARGE_INTEGER DueTime; @@ -1088,10 +1090,16 @@ typedef struct _IO_REMOVE_LOCK_DBG_BLOCK { } IO_REMOVE_LOCK_DBG_BLOCK; typedef struct _IO_REMOVE_LOCK { - IO_REMOVE_LOCK_COMMON_BLOCK Common; - IO_REMOVE_LOCK_DBG_BLOCK Dbg; + IO_REMOVE_LOCK_COMMON_BLOCK Common; + IO_REMOVE_LOCK_DBG_BLOCK Dbg; } IO_REMOVE_LOCK, *PIO_REMOVE_LOCK; +typedef enum { + IoReadAccess, + IoWriteAccess, + IoModifyAccess +} LOCK_OPERATION; + NTSTATUS WINAPI ObCloseHandle(IN HANDLE handle); #ifdef NONAMELESSUNION