mountmgr: Frame device service functions with IoGetCurrentIrpStackLocation and IoCompleteRequest.
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 @@ /* 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 @@ } 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 @@ /* 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 @@ irp->IoStatus.u.Status = STATUS_NOT_SUPPORTED; break; } + IoCompleteRequest( irp, IO_NO_INCREMENT ); return irp->IoStatus.u.Status; }