Marcus Meissner : ntoskrnl.exe: Added IoBuildSynchronousFsdRequest and IoGetAttachedDevice stubs.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Dec 2 13:40:21 CST 2014


Module: wine
Branch: master
Commit: c0816eabff42724de0091613bd3a304c7c497a24
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c0816eabff42724de0091613bd3a304c7c497a24

Author: Marcus Meissner <marcus at jet.franken.de>
Date:   Tue Dec  2 09:22:10 2014 +0100

ntoskrnl.exe: Added IoBuildSynchronousFsdRequest and IoGetAttachedDevice stubs.

---

 dlls/ntoskrnl.exe/ntoskrnl.c        | 51 ++++++++++++++++++++++++++++++++++++-
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec |  4 +--
 2 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index a31b186..78df9f1 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -532,6 +532,43 @@ PIRP WINAPI IoBuildDeviceIoControlRequest( ULONG IoControlCode,
 }
 
 
+/**********************************************************
+ *           IoBuildSynchronousFsdRequest  (NTOSKRNL.EXE.@)
+ */
+PIRP WINAPI IoBuildSynchronousFsdRequest(ULONG majorfunc, PDEVICE_OBJECT device,
+                                         PVOID buffer, ULONG length, PLARGE_INTEGER startoffset,
+                                         PKEVENT event, PIO_STATUS_BLOCK iosb)
+{
+    PIRP irp;
+    struct IrpInstance *instance;
+    PIO_STACK_LOCATION irpsp;
+
+    FIXME("(%d %p %p %d %p %p %p) stub\n", majorfunc, device, buffer, length, startoffset, event, iosb);
+
+    irp = IoAllocateIrp( device->StackSize, FALSE );
+    if (irp == NULL)
+        return NULL;
+
+    instance = HeapAlloc( GetProcessHeap(), 0, sizeof(struct IrpInstance) );
+    if (instance == NULL)
+    {
+        IoFreeIrp( irp );
+        return NULL;
+    }
+    instance->irp = irp;
+    list_add_tail( &Irps, &instance->entry );
+
+    irpsp = IoGetNextIrpStackLocation( irp );
+    irpsp->MajorFunction = majorfunc;
+    /*irpsp->Parameters.DeviceIoControl.IoControlCode = IoControlCode;*/
+
+    irp->UserIosb = iosb;
+    irp->UserEvent = event;
+    irp->UserBuffer = buffer;
+    return irp;
+}
+
+
 /***********************************************************************
  *           IoCreateDriver   (NTOSKRNL.EXE.@)
  */
@@ -731,9 +768,21 @@ NTSTATUS  WINAPI IoGetDeviceObjectPointer( UNICODE_STRING *name, ACCESS_MASK acc
 {
     FIXME( "stub: %s %x %p %p\n", debugstr_us(name), access, file, device );
 
-    return STATUS_NOT_IMPLEMENTED;
+    *file  = NULL;
+    *device  = NULL;
+
+    return STATUS_SUCCESS;
 }
 
+/***********************************************************************
+ *           IoGetAttachedDevice   (NTOSKRNL.EXE.@)
+ */
+PDEVICE_OBJECT WINAPI IoGetAttachedDevice( PDEVICE_OBJECT device )
+{
+    FIXME( "stub: %p\n", device );
+
+    return device;
+}
 
 /***********************************************************************
  *           IoGetDeviceProperty   (NTOSKRNL.EXE.@)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 4ead907..3bcf21c 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -322,7 +322,7 @@
 @ stub IoBuildAsynchronousFsdRequest
 @ stdcall IoBuildDeviceIoControlRequest(long ptr ptr long ptr long long ptr ptr)
 @ stub IoBuildPartialMdl
-@ stub IoBuildSynchronousFsdRequest
+@ stdcall IoBuildSynchronousFsdRequest(long ptr ptr long ptr ptr ptr)
 @ stdcall IoCallDriver(ptr ptr)
 @ stub IoCancelFileOpen
 @ stub IoCancelIrp
@@ -373,7 +373,7 @@
 @ stdcall IoFreeIrp(ptr)
 @ stdcall IoFreeMdl(ptr)
 @ stub IoFreeWorkItem
-@ stub IoGetAttachedDevice
+@ stdcall IoGetAttachedDevice(ptr)
 @ stub IoGetAttachedDeviceReference
 @ stub IoGetBaseFileSystemDeviceObject
 @ stub IoGetBootDiskInformation




More information about the wine-cvs mailing list