[0.4.14] Sledgehammer-revert of the work towards MountMgr
[reactos.git] / drivers / storage / class / disk / disk.c
index 535de1f..580c899 100644 (file)
@@ -1068,129 +1068,6 @@ CreateDiskDeviceObjectsExit:
 } // end CreateDiskDeviceObjects()
 
 \f
-VOID
-NTAPI
-ReportToMountMgr(
-    IN PDEVICE_OBJECT DiskDeviceObject
-    )
-
-/*++
-
-Routine Description:
-
-    This routine reports the creation of a disk device object to the
-    MountMgr to fake PnP.
-
-Arguments:
-
-    DiskDeviceObject - Pointer to the created disk device.
-
-Return Value:
-
-    VOID
-
---*/
-{
-    NTSTATUS              status;
-    UNICODE_STRING        mountMgrDevice;
-    PDEVICE_OBJECT        deviceObject;
-    PFILE_OBJECT          fileObject;
-    PMOUNTMGR_TARGET_NAME mountTarget;
-    ULONG                 diskLen;
-    PDEVICE_EXTENSION     deviceExtension;
-    PIRP                  irp;
-    KEVENT                event;
-    IO_STATUS_BLOCK       ioStatus;
-
-    //
-    // First, get MountMgr DeviceObject.
-    //
-
-    RtlInitUnicodeString(&mountMgrDevice, MOUNTMGR_DEVICE_NAME);
-    status = IoGetDeviceObjectPointer(&mountMgrDevice, FILE_READ_ATTRIBUTES,
-                                      &fileObject, &deviceObject);
-
-    if (!NT_SUCCESS(status)) {
-
-        DebugPrint((1,
-                   "ReportToMountMgr: Can't get MountMgr pointers %lx\n",
-                   status));
-
-        return;
-    }
-
-    deviceExtension = DiskDeviceObject->DeviceExtension;
-    diskLen = deviceExtension->DeviceName.Length;
-
-    //
-    // Allocate input buffer to report our partition device.
-    //
-
-    mountTarget = ExAllocatePool(NonPagedPool,
-                                 sizeof(MOUNTMGR_TARGET_NAME) + diskLen);
-
-    if (!mountTarget) {
-
-        DebugPrint((1,
-                   "ReportToMountMgr: Allocation of mountTarget failed\n"));
-
-        ObDereferenceObject(fileObject);
-        return;
-    }
-
-    mountTarget->DeviceNameLength = diskLen;
-    RtlCopyMemory(mountTarget->DeviceName, deviceExtension->DeviceName.Buffer, diskLen);
-
-    KeInitializeEvent(&event, NotificationEvent, FALSE);
-
-    //
-    // Build the IRP used to communicate with the MountMgr.
-    //
-
-    irp = IoBuildDeviceIoControlRequest(IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION,
-                                        deviceObject,
-                                        mountTarget,
-                                        sizeof(MOUNTMGR_TARGET_NAME) + diskLen,
-                                        NULL,
-                                        0,
-                                        FALSE,
-                                        &event,
-                                        &ioStatus);
-
-    if (!irp) {
-
-        DebugPrint((1,
-                    "ReportToMountMgr: Allocation of irp failed\n"));
-
-        ExFreePool(mountTarget);
-        ObDereferenceObject(fileObject);
-        return;
-    }
-
-    //
-    // Call the MountMgr.
-    //
-
-    status = IoCallDriver(deviceObject, irp);
-
-    if (status == STATUS_PENDING) {
-        KeWaitForSingleObject(&event, Suspended, KernelMode, FALSE, NULL);
-        status = ioStatus.Status;
-    }
-
-    //
-    // We're done.
-    //
-
-    DPRINT1("Reported to the MountMgr: %lx\n", status);
-
-    ExFreePool(mountTarget);
-    ObDereferenceObject(fileObject);
-
-    return;
-}
-
-\f
 NTSTATUS
 NTAPI
 CreatePartitionDeviceObjects(
@@ -1583,14 +1460,6 @@ CreatePartitionDeviceObjects(
             deviceExtension->DeviceObject = deviceObject;
             deviceExtension->DeviceFlags |= physicalDeviceExtension->DeviceFlags;
 
-            //
-            // Now we're done, report to the MountMgr.
-            // This is a HACK required to have the driver
-            // handle the associated DosDevices.
-            //
-
-            ReportToMountMgr(deviceObject);
-
         } // end for (partitionNumber) ...
 
         //