From 34c49777a3180cd82676f9b79077f8fe8714fc80 Mon Sep 17 00:00:00 2001 From: Stefan Leichter Date: Thu, 29 Dec 2011 16:10:23 +0100 Subject: [PATCH] ntoskrnl.exe: Add stub for IoInitializeRemoveLockEx. --- dlls/ntoskrnl.exe/ntoskrnl.c | 10 ++++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- include/ddk/wdm.h | 28 ++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index e6706d85d11..4f6f493a2d4 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -1700,6 +1700,16 @@ BOOLEAN WINAPI IoSetThreadHardErrorMode(BOOLEAN EnableHardErrors) return FALSE; } + +/***************************************************** + * IoInitializeRemoveLockEx (NTOSKRNL.EXE.@) + */ +VOID WINAPI IoInitializeRemoveLockEx(PIO_REMOVE_LOCK lock, ULONG tag, + ULONG maxmin, ULONG high, ULONG size) +{ + FIXME("(%p %u %u %u %u) stub\n", lock, tag, maxmin, high, size); +} + /***************************************************** * DllMain */ diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index a391c813e2d..187439fb2e6 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -398,7 +398,7 @@ @ stub IoGetStackLimits @ stub IoGetTopLevelIrp @ stdcall IoInitializeIrp(ptr long long) -@ stub IoInitializeRemoveLockEx +@ stdcall IoInitializeRemoveLockEx(ptr long long long long) @ stdcall IoInitializeTimer(ptr ptr ptr) @ stub IoInvalidateDeviceRelations @ stub IoInvalidateDeviceState diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index 356b1f7c557..3865f7f59fa 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -1065,6 +1065,33 @@ typedef enum _MM_SYSTEM_SIZE MmLargeSystem } MM_SYSTEMSIZE; +typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK { + BOOLEAN Removed; + BOOLEAN Reserved[3]; + LONG IoCount; + KEVENT RemoveEvent; +} IO_REMOVE_LOCK_COMMON_BLOCK; + +typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK *PIO_REMOVE_LOCK_TRACKING_BLOCK; + +typedef struct _IO_REMOVE_LOCK_DBG_BLOCK { + LONG Signature; + LONG HighWatermark; + LONGLONG MaxLockedTicks; + LONG AllocateTag; + LIST_ENTRY LockList; + KSPIN_LOCK Spin; + LONG LowMemoryCount; + ULONG Reserved1[4]; + PVOID Reserved2; + PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks; +} 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, *PIO_REMOVE_LOCK; + NTSTATUS WINAPI ObCloseHandle(IN HANDLE handle); #ifdef NONAMELESSUNION @@ -1125,6 +1152,7 @@ NTSTATUS WINAPI IoGetDeviceProperty(PDEVICE_OBJECT,DEVICE_REGISTRY_PROPERTY,ULO PVOID WINAPI IoGetDriverObjectExtension(PDRIVER_OBJECT,PVOID); PDEVICE_OBJECT WINAPI IoGetRelatedDeviceObject(PFILE_OBJECT); void WINAPI IoInitializeIrp(IRP*,USHORT,CCHAR); +VOID WINAPI IoInitializeRemoveLockEx(PIO_REMOVE_LOCK,ULONG,ULONG,ULONG,ULONG); NTSTATUS WINAPI IoWMIRegistrationControl(PDEVICE_OBJECT,ULONG); PKTHREAD WINAPI KeGetCurrentThread(void);