Piotr Caban : ntoskrnl.exe: Add IoDetachDevice implementation.

Alexandre Julliard julliard at winehq.org
Mon May 27 14:50:21 CDT 2019


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Mon May 27 14:37:46 2019 +0200

ntoskrnl.exe: Add IoDetachDevice implementation.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c        | 4 ++++
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
 include/ddk/wdm.h                   | 1 +
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index c26e411..08353b2 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -1222,6 +1222,10 @@ void WINAPI IoQueueWorkItem( PIO_WORKITEM work_item, PIO_WORKITEM_ROUTINE worker
     TrySubmitThreadpoolCallback( run_work_item_worker, work_item, NULL );
 }
 
+void WINAPI IoDetachDevice( DEVICE_OBJECT *device )
+{
+    device->AttachedDevice = NULL;
+}
 
 /***********************************************************************
  *           IoAttachDeviceToDeviceStack  (NTOSKRNL.EXE.@)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 202e919..72ebdc1 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -369,7 +369,7 @@
 @ stdcall IoDeleteDevice(ptr)
 @ stdcall IoDeleteDriver(ptr)
 @ stdcall IoDeleteSymbolicLink(ptr)
-@ stub IoDetachDevice
+@ stdcall IoDetachDevice(ptr)
 @ stub IoDeviceHandlerObjectSize
 @ stub IoDeviceHandlerObjectType
 @ extern IoDeviceObjectType
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 90a8bae..cd46f91 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1561,6 +1561,7 @@ PVOID     WINAPI IoAllocateErrorLogEntry(PVOID,UCHAR);
 PIRP      WINAPI IoAllocateIrp(CCHAR,BOOLEAN);
 PMDL      WINAPI IoAllocateMdl(PVOID,ULONG,BOOLEAN,BOOLEAN,IRP*);
 PIO_WORKITEM WINAPI IoAllocateWorkItem(PDEVICE_OBJECT);
+void      WINAPI IoDetachDevice(PDEVICE_OBJECT);
 PDEVICE_OBJECT WINAPI IoAttachDeviceToDeviceStack(PDEVICE_OBJECT,PDEVICE_OBJECT);
 PIRP      WINAPI IoBuildAsynchronousFsdRequest(ULONG,DEVICE_OBJECT*,void*,ULONG,LARGE_INTEGER*,IO_STATUS_BLOCK*);
 PIRP      WINAPI IoBuildDeviceIoControlRequest(ULONG,DEVICE_OBJECT*,PVOID,ULONG,PVOID,ULONG,BOOLEAN,PKEVENT,IO_STATUS_BLOCK*);




More information about the wine-cvs mailing list