Module: wine Branch: master Commit: e0e795cfe9760bb0775f874fc1d32a752dced537 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e0e795cfe9760bb0775f874fc...
Author: Piotr Caban piotr@codeweavers.com Date: Mon May 27 14:37:46 2019 +0200
ntoskrnl.exe: Add IoDetachDevice implementation.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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*);