[FLOPPY]
authorCameron Gutman <aicommander@gmail.com>
Wed, 15 Jun 2011 17:07:07 +0000 (17:07 +0000)
committerCameron Gutman <aicommander@gmail.com>
Wed, 15 Jun 2011 17:07:07 +0000 (17:07 +0000)
- Validate the handle type
- Fix a bug that broke file system remounting after a media change

svn path=/trunk/; revision=52247

reactos/drivers/storage/floppy/floppy.c
reactos/drivers/storage/floppy/ioctl.c
reactos/drivers/storage/floppy/readwrite.c

index 24e7440..dd4bc70 100644 (file)
@@ -1189,7 +1189,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
         return STATUS_INSUFFICIENT_RESOURCES;
     }
 
-    if(ObReferenceObjectByHandle(ThreadHandle, STANDARD_RIGHTS_ALL, NULL, KernelMode, &QueueThreadObject, NULL) != STATUS_SUCCESS)
+    if(ObReferenceObjectByHandle(ThreadHandle, STANDARD_RIGHTS_ALL, PsThreadType, KernelMode, &QueueThreadObject, NULL) != STATUS_SUCCESS)
     {
         WARN_(FLOPPY, "Unable to reference returned thread handle; failing init\n");
         return STATUS_UNSUCCESSFUL;
index d172a4d..7c1615c 100644 (file)
@@ -126,7 +126,7 @@ DeviceIoctlPassive(PDRIVE_INFO DriveInfo, PIRP Irp)
      * Therefore if we see one below in the switch, we can return STATUS_SUCCESS
      * immediately.
      */
-    if(DriveInfo->DeviceObject->Flags & DO_VERIFY_VOLUME && !(DriveInfo->DeviceObject->Flags & SL_OVERRIDE_VERIFY_VOLUME))
+    if(DriveInfo->DeviceObject->Flags & DO_VERIFY_VOLUME && !(Stack->Flags & SL_OVERRIDE_VERIFY_VOLUME))
     {
         INFO_(FLOPPY, "DeviceIoctl(): completing with STATUS_VERIFY_REQUIRED\n");
         Irp->IoStatus.Status = STATUS_VERIFY_REQUIRED;
index 49030d3..e29d325 100644 (file)
@@ -454,7 +454,7 @@ ReadWritePassive(PDRIVE_INFO DriveInfo, PIRP Irp)
      * Check to see if the volume needs to be verified.  If so,
      * we can get out of here quickly.
      */
-    if(DeviceObject->Flags & DO_VERIFY_VOLUME && !(DeviceObject->Flags & SL_OVERRIDE_VERIFY_VOLUME))
+    if(DeviceObject->Flags & DO_VERIFY_VOLUME && !(Stack->Flags & SL_OVERRIDE_VERIFY_VOLUME))
     {
         INFO_(FLOPPY, "ReadWritePassive(): DO_VERIFY_VOLUME set; Completing with  STATUS_VERIFY_REQUIRED\n");
         Irp->IoStatus.Status = STATUS_VERIFY_REQUIRED;