[2/2] mountmgr: frame device service functions with IoGetCurrentIrpStackLocation and IoCompleteRequest (with patch)
Damjan Jovanovic
damjan.jov at gmail.com
Tue Mar 23 11:08:03 CDT 2010
Changelog:
* mountmgr: frame device service functions with
IoGetCurrentIrpStackLocation and IoCompleteRequest
Damjan Jovanovic
-------------- next part --------------
diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c
index bf2bcee..ba5a02b 100644
--- a/dlls/mountmgr.sys/device.c
+++ b/dlls/mountmgr.sys/device.c
@@ -858,7 +858,7 @@ NTSTATUS query_dos_device( int letter, enum device_type *type, char **device, ch
/* handler for ioctls on the harddisk device */
static NTSTATUS WINAPI harddisk_ioctl( DEVICE_OBJECT *device, IRP *irp )
{
- IO_STACK_LOCATION *irpsp = irp->Tail.Overlay.s.u2.CurrentStackLocation;
+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
struct disk_device *dev = device->DeviceExtension;
TRACE( "ioctl %x insize %u outsize %u\n",
@@ -904,6 +904,7 @@ static NTSTATUS WINAPI harddisk_ioctl( DEVICE_OBJECT *device, IRP *irp )
}
LeaveCriticalSection( &device_section );
+ IoCompleteRequest( irp, IO_NO_INCREMENT );
return irp->IoStatus.u.Status;
}
diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c
index c92e4a4..87d9007 100644
--- a/dlls/mountmgr.sys/mountmgr.c
+++ b/dlls/mountmgr.sys/mountmgr.c
@@ -351,7 +351,7 @@ done:
/* handler for ioctls on the mount manager device */
static NTSTATUS WINAPI mountmgr_ioctl( DEVICE_OBJECT *device, IRP *irp )
{
- IO_STACK_LOCATION *irpsp = irp->Tail.Overlay.s.u2.CurrentStackLocation;
+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
TRACE( "ioctl %x insize %u outsize %u\n",
irpsp->Parameters.DeviceIoControl.IoControlCode,
@@ -390,6 +390,7 @@ static NTSTATUS WINAPI mountmgr_ioctl( DEVICE_OBJECT *device, IRP *irp )
irp->IoStatus.u.Status = STATUS_NOT_SUPPORTED;
break;
}
+ IoCompleteRequest( irp, IO_NO_INCREMENT );
return irp->IoStatus.u.Status;
}
More information about the wine-patches
mailing list