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
Added patch to initialize irp.Tail.Overlay.OriginalFileObject with stub file object.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
From b8a93a6c879b8bd2d49cb43755cf8180d5372525 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 10 Nov 2014 23:48:14 +0100
|
||||
Subject: ntoskrnl: Initialize irp.Tail.Overlay.OriginalFileObject with stub
|
||||
file object.
|
||||
|
||||
---
|
||||
dlls/ntoskrnl.exe/ntoskrnl.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
index 1d87110..aee68b3 100644
|
||||
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
|
||||
@@ -142,6 +142,7 @@ static NTSTATUS process_ioctl( DEVICE_OBJECT *device, ULONG code, void *in_buff,
|
||||
IRP irp;
|
||||
MDL mdl;
|
||||
IO_STACK_LOCATION irpsp;
|
||||
+ FILE_OBJECT file;
|
||||
PDRIVER_DISPATCH dispatch = device->DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL];
|
||||
NTSTATUS status;
|
||||
LARGE_INTEGER count;
|
||||
@@ -152,6 +153,7 @@ static NTSTATUS process_ioctl( DEVICE_OBJECT *device, ULONG code, void *in_buff,
|
||||
memset( &irp, 0x55, sizeof(irp) );
|
||||
memset( &irpsp, 0x66, sizeof(irpsp) );
|
||||
memset( &mdl, 0x77, sizeof(mdl) );
|
||||
+ memset( &file, 0x88, sizeof(file) );
|
||||
|
||||
irp.RequestorMode = UserMode;
|
||||
if ((code & 3) == METHOD_BUFFERED)
|
||||
@@ -166,6 +168,7 @@ static NTSTATUS process_ioctl( DEVICE_OBJECT *device, ULONG code, void *in_buff,
|
||||
irp.UserBuffer = out_buff;
|
||||
irp.MdlAddress = &mdl;
|
||||
irp.Tail.Overlay.s.u2.CurrentStackLocation = &irpsp;
|
||||
+ irp.Tail.Overlay.OriginalFileObject = &file;
|
||||
irp.UserIosb = NULL;
|
||||
|
||||
irpsp.MajorFunction = IRP_MJ_DEVICE_CONTROL;
|
||||
@@ -182,6 +185,9 @@ static NTSTATUS process_ioctl( DEVICE_OBJECT *device, ULONG code, void *in_buff,
|
||||
mdl.ByteCount = *out_size;
|
||||
mdl.ByteOffset = 0;
|
||||
|
||||
+ file.FsContext = NULL;
|
||||
+ file.FsContext2 = NULL;
|
||||
+
|
||||
device->CurrentIrp = &irp;
|
||||
|
||||
KeQueryTickCount( &count ); /* update the global KeTickCount */
|
||||
--
|
||||
2.1.3
|
||||
|
||||
3
patches/ntoskrnl-Stub_FileObject/definition
Normal file
3
patches/ntoskrnl-Stub_FileObject/definition
Normal file
@@ -0,0 +1,3 @@
|
||||
Author: Sebastian Lackner
|
||||
Subject: Initialize irp.Tail.Overlay.OriginalFileObject with stub file object.
|
||||
Revision: 1
|
||||
Reference in New Issue
Block a user