You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against c3ac646a8ded3ef3ebc743a7fdda01b0691a427a.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 2e48aae38577a6ed0564ead6e1e1bd8b886177c8 Mon Sep 17 00:00:00 2001
|
||||
From e82c474f4befd2ba092dc41e0d7e188cd6303b7e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 6 Jun 2017 21:08:51 +0200
|
||||
Subject: [PATCH] ntoskrnl.exe: Implement NtBuildNumber.
|
||||
@@ -10,7 +10,7 @@ Subject: [PATCH] ntoskrnl.exe: Implement NtBuildNumber.
|
||||
3 files changed, 39 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
index 6769187..1542c96 100644
|
||||
index c3276c95..0e9fa425 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
@@ -60,6 +60,7 @@ WINE_DECLARE_DEBUG_CHANNEL(plugplay);
|
||||
@@ -21,7 +21,7 @@ index 6769187..1542c96 100644
|
||||
|
||||
extern LONG CALLBACK vectored_handler( EXCEPTION_POINTERS *ptrs );
|
||||
|
||||
@@ -2969,6 +2970,13 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag,
|
||||
@@ -2913,6 +2914,13 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag,
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ index 6769187..1542c96 100644
|
||||
|
||||
/*****************************************************
|
||||
* DllMain
|
||||
@@ -2976,7 +2984,6 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag,
|
||||
@@ -2920,7 +2928,6 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag,
|
||||
BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
|
||||
{
|
||||
static void *handler;
|
||||
@@ -43,7 +43,7 @@ index 6769187..1542c96 100644
|
||||
|
||||
switch(reason)
|
||||
{
|
||||
@@ -2985,7 +2992,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
|
||||
@@ -2929,7 +2936,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
|
||||
#if defined(__i386__) || defined(__x86_64__)
|
||||
handler = RtlAddVectoredExceptionHandler( TRUE, vectored_handler );
|
||||
#endif
|
||||
@@ -53,10 +53,10 @@ index 6769187..1542c96 100644
|
||||
case DLL_PROCESS_DETACH:
|
||||
if (reserved) break;
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
index 889da07..9b81e26 100644
|
||||
index 19cde8cf..271b7f08 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
|
||||
@@ -748,7 +748,7 @@
|
||||
@@ -751,7 +751,7 @@
|
||||
@ stdcall NtAllocateLocallyUniqueId(ptr)
|
||||
@ stdcall NtAllocateUuids(ptr ptr ptr ptr)
|
||||
@ stdcall NtAllocateVirtualMemory(long ptr long ptr long long)
|
||||
@@ -66,7 +66,7 @@ index 889da07..9b81e26 100644
|
||||
@ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr)
|
||||
@ stdcall NtCreateEvent(ptr long ptr long long)
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
index cbf8bdc..143b86b 100644
|
||||
index bd1070c1..2e622c8d 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/driver.c
|
||||
+++ b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
@@ -174,6 +174,22 @@ static void winetest_end_todo(void)
|
||||
@@ -92,8 +92,8 @@ index cbf8bdc..143b86b 100644
|
||||
static void test_currentprocess(void)
|
||||
{
|
||||
PEPROCESS current;
|
||||
@@ -575,6 +591,18 @@ static void test_stack_callout(void)
|
||||
else win_skip("KeExpandKernelStackAndCalloutEx is not available\n");
|
||||
@@ -604,6 +620,18 @@ static void test_lookaside_list(void)
|
||||
ExDeleteNPagedLookasideList(&list);
|
||||
}
|
||||
|
||||
+static void test_version(void)
|
||||
@@ -111,14 +111,14 @@ index cbf8bdc..143b86b 100644
|
||||
static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info)
|
||||
{
|
||||
ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength;
|
||||
@@ -604,6 +632,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info)
|
||||
@@ -633,6 +661,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info)
|
||||
test_init_funcs();
|
||||
test_load_driver();
|
||||
test_sync();
|
||||
+ test_version();
|
||||
test_stack_callout();
|
||||
test_lookaside_list();
|
||||
|
||||
/* print process report */
|
||||
--
|
||||
1.9.1
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,261 +0,0 @@
|
||||
From 38dab0fbe11effe3fd0f3d94f90865cd096da892 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 6 Jun 2017 23:42:56 +0200
|
||||
Subject: [PATCH] ntoskrnl.exe: Implement ExInitializeNPagedLookasideList.
|
||||
|
||||
---
|
||||
dlls/ntoskrnl.exe/ntoskrnl.c | 19 +++++++++-
|
||||
dlls/ntoskrnl.exe/tests/driver.c | 37 +++++++++++++++++--
|
||||
include/ddk/wdm.h | 76 ++++++++++++++++++++++++++++++++++++++--
|
||||
include/winnt.h | 2 ++
|
||||
4 files changed, 127 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
index 1542c96..a450bf6 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
@@ -2153,7 +2153,24 @@ void WINAPI ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside,
|
||||
ULONG Tag,
|
||||
USHORT Depth)
|
||||
{
|
||||
- FIXME( "stub: %p, %p, %p, %u, %lu, %u, %u\n", Lookaside, Allocate, Free, Flags, Size, Tag, Depth );
|
||||
+ TRACE( "%p, %p, %p, %u, %lu, %u, %u\n", Lookaside, Allocate, Free, Flags, Size, Tag, Depth );
|
||||
+
|
||||
+ RtlInitializeSListHead( &Lookaside->L.u.ListHead );
|
||||
+ Lookaside->L.Depth = 4;
|
||||
+ Lookaside->L.MaximumDepth = 256;
|
||||
+ Lookaside->L.TotalAllocates = 0;
|
||||
+ Lookaside->L.u2.AllocateMisses = 0;
|
||||
+ Lookaside->L.TotalFrees = 0;
|
||||
+ Lookaside->L.u3.FreeMisses = 0;
|
||||
+ Lookaside->L.Type = NonPagedPool | Flags;
|
||||
+ Lookaside->L.Tag = Tag;
|
||||
+ Lookaside->L.Size = Size;
|
||||
+ Lookaside->L.u4.Allocate = Allocate ? Allocate : ExAllocatePoolWithTag;
|
||||
+ Lookaside->L.u5.Free = Free ? Free : ExFreePool;
|
||||
+ Lookaside->L.LastTotalAllocates = 0;
|
||||
+ Lookaside->L.u6.LastAllocateMisses = 0;
|
||||
+
|
||||
+ /* FIXME: insert in global list of lookadside lists */
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
index 143b86b..13fce71 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/driver.c
|
||||
+++ b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
@@ -22,6 +22,9 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
+#define NONAMELESSUNION
|
||||
+#define NONAMELESSSTRUCT
|
||||
+
|
||||
#include "ntstatus.h"
|
||||
#define WIN32_NO_STATUS
|
||||
#include "windef.h"
|
||||
@@ -603,6 +606,33 @@ static void test_version(void)
|
||||
ok(*pNtBuildNumber == build, "Expected build number %u, got %u\n", build, *pNtBuildNumber);
|
||||
}
|
||||
|
||||
+static void test_lookaside_list(void)
|
||||
+{
|
||||
+ NPAGED_LOOKASIDE_LIST list;
|
||||
+ ULONG tag = 0x454e4957; /* WINE */
|
||||
+
|
||||
+ ExInitializeNPagedLookasideList(&list, NULL, NULL, POOL_NX_ALLOCATION, LOOKASIDE_MINIMUM_BLOCK_SIZE, tag, 0);
|
||||
+ ok(list.L.Depth == 4, "Expected 4 got %u\n", list.L.Depth);
|
||||
+ ok(list.L.MaximumDepth == 256, "Expected 256 got %u\n", list.L.MaximumDepth);
|
||||
+ ok(list.L.TotalAllocates == 0, "Expected 0 got %u\n", list.L.TotalAllocates);
|
||||
+ ok(list.L.u2.AllocateMisses == 0, "Expected 0 got %u\n", list.L.u2.AllocateMisses);
|
||||
+ ok(list.L.TotalFrees == 0, "Expected 0 got %u\n", list.L.TotalFrees);
|
||||
+ ok(list.L.u3.FreeMisses == 0, "Expected 0 got %u\n", list.L.u3.FreeMisses);
|
||||
+ ok(list.L.Type == (NonPagedPool|POOL_NX_ALLOCATION),
|
||||
+ "Expected NonPagedPool|POOL_NX_ALLOCATION got %u\n", list.L.Type);
|
||||
+ ok(list.L.Tag == tag, "Expected %x got %x\n", tag, list.L.Tag);
|
||||
+ ok(list.L.Size == LOOKASIDE_MINIMUM_BLOCK_SIZE,
|
||||
+ "Expected %u got %u\n", LOOKASIDE_MINIMUM_BLOCK_SIZE, list.L.Size);
|
||||
+ ok(list.L.LastTotalAllocates == 0,"Expected 0 got %u\n", list.L.LastTotalAllocates);
|
||||
+ ok(list.L.u6.LastAllocateMisses == 0,"Expected 0 got %u\n", list.L.u6.LastAllocateMisses);
|
||||
+ ExDeleteNPagedLookasideList(&list);
|
||||
+
|
||||
+ list.L.Depth = 0;
|
||||
+ ExInitializeNPagedLookasideList(&list, NULL, NULL, 0, LOOKASIDE_MINIMUM_BLOCK_SIZE, tag, 20);
|
||||
+ ok(list.L.Depth == 4, "Expected 4 got %u\n", list.L.Depth);
|
||||
+ ExDeleteNPagedLookasideList(&list);
|
||||
+}
|
||||
+
|
||||
static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info)
|
||||
{
|
||||
ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength;
|
||||
@@ -633,6 +663,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info)
|
||||
test_load_driver();
|
||||
test_sync();
|
||||
test_version();
|
||||
+ test_lookaside_list();
|
||||
test_stack_callout();
|
||||
|
||||
/* print process report */
|
||||
@@ -685,7 +716,7 @@ static NTSTATUS test_load_driver_ioctl(IRP *irp, IO_STACK_LOCATION *stack, ULONG
|
||||
|
||||
static NTSTATUS WINAPI driver_Create(DEVICE_OBJECT *device, IRP *irp)
|
||||
{
|
||||
- irp->IoStatus.Status = STATUS_SUCCESS;
|
||||
+ irp->IoStatus.u.Status = STATUS_SUCCESS;
|
||||
IoCompleteRequest(irp, IO_NO_INCREMENT);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -710,14 +741,14 @@ static NTSTATUS WINAPI driver_IoControl(DEVICE_OBJECT *device, IRP *irp)
|
||||
break;
|
||||
}
|
||||
|
||||
- irp->IoStatus.Status = status;
|
||||
+ irp->IoStatus.u.Status = status;
|
||||
IoCompleteRequest(irp, IO_NO_INCREMENT);
|
||||
return status;
|
||||
}
|
||||
|
||||
static NTSTATUS WINAPI driver_Close(DEVICE_OBJECT *device, IRP *irp)
|
||||
{
|
||||
- irp->IoStatus.Status = STATUS_SUCCESS;
|
||||
+ irp->IoStatus.u.Status = STATUS_SUCCESS;
|
||||
IoCompleteRequest(irp, IO_NO_INCREMENT);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
|
||||
index 03af14d..a4114e6 100644
|
||||
--- a/include/ddk/wdm.h
|
||||
+++ b/include/ddk/wdm.h
|
||||
@@ -153,20 +153,18 @@ typedef struct _KWAIT_BLOCK {
|
||||
USHORT WaitType;
|
||||
} KWAIT_BLOCK, *PKWAIT_BLOCK, *RESTRICTED_POINTER PRKWAIT_BLOCK;
|
||||
|
||||
-typedef struct _ALLOCATE_FUNCTION *PALLOCATE_FUNCTION;
|
||||
typedef struct _IO_TIMER *PIO_TIMER;
|
||||
typedef struct _IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
|
||||
typedef struct _ETHREAD *PETHREAD;
|
||||
-typedef struct _FREE_FUNCTION *PFREE_FUNCTION;
|
||||
typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
|
||||
typedef struct _EPROCESS *PEPROCESS;
|
||||
typedef struct _ERESOURCE *PERESOURCE;
|
||||
typedef struct _IO_WORKITEM *PIO_WORKITEM;
|
||||
-typedef struct _NPAGED_LOOKASIDE_LIST *PNPAGED_LOOKASIDE_LIST;
|
||||
typedef struct _PAGED_LOOKASIDE_LIST *PPAGED_LOOKASIDE_LIST;
|
||||
typedef struct _OBJECT_TYPE *POBJECT_TYPE;
|
||||
typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION;
|
||||
typedef struct _ZONE_HEADER *PZONE_HEADER;
|
||||
+typedef struct _LOOKASIDE_LIST_EX *PLOOKASIDE_LIST_EX;
|
||||
|
||||
#define FM_LOCK_BIT 0x1
|
||||
|
||||
@@ -193,6 +191,11 @@ typedef struct _VPB {
|
||||
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)];
|
||||
} VPB, *PVPB;
|
||||
|
||||
+#define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE 0x8
|
||||
+#define POOL_RAISE_IF_ALLOCATION_FAILURE 0x10
|
||||
+#define POOL_COLD_ALLOCATION 0x100
|
||||
+#define POOL_NX_ALLOCATION 0x200
|
||||
+
|
||||
typedef enum _POOL_TYPE {
|
||||
NonPagedPool,
|
||||
PagedPool,
|
||||
@@ -1232,6 +1235,71 @@ typedef struct _KLOCK_QUEUE_HANDLE {
|
||||
KIRQL OldIrql;
|
||||
} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
|
||||
|
||||
+typedef void * (NTAPI *PALLOCATE_FUNCTION)(POOL_TYPE, SIZE_T, ULONG);
|
||||
+typedef void * (NTAPI *PALLOCATE_FUNCTION_EX)(POOL_TYPE, SIZE_T, ULONG, PLOOKASIDE_LIST_EX);
|
||||
+typedef void (NTAPI *PFREE_FUNCTION)(void *);
|
||||
+typedef void (NTAPI *PFREE_FUNCTION_EX)(void *, PLOOKASIDE_LIST_EX);
|
||||
+
|
||||
+#ifdef _WIN64
|
||||
+#define LOOKASIDE_ALIGN DECLSPEC_CACHEALIGN
|
||||
+#else
|
||||
+#define LOOKASIDE_ALIGN
|
||||
+#endif
|
||||
+
|
||||
+#define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD(SLIST_ENTRY, Next))
|
||||
+
|
||||
+typedef struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE
|
||||
+{
|
||||
+ union
|
||||
+ {
|
||||
+ SLIST_HEADER ListHead;
|
||||
+ SINGLE_LIST_ENTRY SingleListHead;
|
||||
+ } DUMMYUNIONNAME;
|
||||
+ USHORT Depth;
|
||||
+ USHORT MaximumDepth;
|
||||
+ ULONG TotalAllocates;
|
||||
+ union
|
||||
+ {
|
||||
+ ULONG AllocateMisses;
|
||||
+ ULONG AllocateHits;
|
||||
+ } DUMMYUNIONNAME2;
|
||||
+ ULONG TotalFrees;
|
||||
+ union
|
||||
+ {
|
||||
+ ULONG FreeMisses;
|
||||
+ ULONG FreeHits;
|
||||
+ } DUMMYUNIONNAME3;
|
||||
+ POOL_TYPE Type;
|
||||
+ ULONG Tag;
|
||||
+ ULONG Size;
|
||||
+ union
|
||||
+ {
|
||||
+ PALLOCATE_FUNCTION_EX AllocateEx;
|
||||
+ PALLOCATE_FUNCTION Allocate;
|
||||
+ } DUMMYUNIONNAME4;
|
||||
+ union
|
||||
+ {
|
||||
+ PFREE_FUNCTION_EX FreeEx;
|
||||
+ PFREE_FUNCTION Free;
|
||||
+ } DUMMYUNIONNAME5;
|
||||
+ LIST_ENTRY ListEntry;
|
||||
+ ULONG LastTotalAllocates;
|
||||
+ union
|
||||
+ {
|
||||
+ ULONG LastAllocateMisses;
|
||||
+ ULONG LastAllocateHits;
|
||||
+ } DUMMYUNIONNAME6;
|
||||
+ ULONG Future[2];
|
||||
+} GENERAL_LOOKASIDE;
|
||||
+
|
||||
+typedef struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST
|
||||
+{
|
||||
+ GENERAL_LOOKASIDE L;
|
||||
+#if defined(__i386__)
|
||||
+ KSPIN_LOCK Lock__ObsoleteButDoNotDelete;
|
||||
+#endif
|
||||
+} NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
|
||||
+
|
||||
typedef NTSTATUS (NTAPI EX_CALLBACK_FUNCTION)(void *CallbackContext, void *Argument1, void *Argument2);
|
||||
typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION;
|
||||
|
||||
@@ -1384,8 +1452,10 @@ PVOID WINAPI ExAllocatePool(POOL_TYPE,SIZE_T);
|
||||
PVOID WINAPI ExAllocatePoolWithQuota(POOL_TYPE,SIZE_T);
|
||||
PVOID WINAPI ExAllocatePoolWithTag(POOL_TYPE,SIZE_T,ULONG);
|
||||
PVOID WINAPI ExAllocatePoolWithQuotaTag(POOL_TYPE,SIZE_T,ULONG);
|
||||
+void WINAPI ExDeleteNPagedLookasideList(PNPAGED_LOOKASIDE_LIST);
|
||||
void WINAPI ExFreePool(PVOID);
|
||||
void WINAPI ExFreePoolWithTag(PVOID,ULONG);
|
||||
+void WINAPI ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST,PALLOCATE_FUNCTION,PFREE_FUNCTION,ULONG,SIZE_T,ULONG,USHORT);
|
||||
PSLIST_ENTRY WINAPI ExInterlockedPopEntrySList(PSLIST_HEADER,PKSPIN_LOCK);
|
||||
PSLIST_ENTRY WINAPI ExInterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY,PKSPIN_LOCK);
|
||||
LIST_ENTRY * WINAPI ExInterlockedRemoveHeadList(LIST_ENTRY*,KSPIN_LOCK*);
|
||||
diff --git a/include/winnt.h b/include/winnt.h
|
||||
index 75dfcd8..1b840bd 100644
|
||||
--- a/include/winnt.h
|
||||
+++ b/include/winnt.h
|
||||
@@ -757,6 +757,8 @@ typedef struct _MEMORY_BASIC_INFORMATION
|
||||
#define UNICODE_STRING_MAX_CHARS 32767
|
||||
|
||||
#define FIELD_OFFSET(type, field) ((LONG)offsetof(type, field))
|
||||
+#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
|
||||
+#define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define CONTAINING_RECORD(address, type, field) ({ \
|
||||
--
|
||||
1.9.1
|
||||
|
@@ -1,6 +1,3 @@
|
||||
Fixes: Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
|
||||
Fixes: Add stub for ntoskrnl.IoGetDeviceAttachmentBaseRef
|
||||
Fixes: Implement ntoskrnl.NtBuildNumber
|
||||
Fixes: Implement ntoskrnl.ExInitializeNPagedLookasideList
|
||||
# ExInitializeNPagedLookasideList() is wanted by sfvfs02.sys, used by World Racing.
|
||||
Depends: Compiler_Warnings
|
||||
|
Reference in New Issue
Block a user