00047 :
00048
00049 This function performs
the mount and driver reload
functions for this mini-
00050
file system recognizer driver.
00051
00052 Arguments:
00053
00054 DeviceObject - Pointer to
this driver's device object.
00055
00056
Irp - Pointer to
the I/O
Request Packet (
IRP) representing the function to
00057 be performed.
00058
00059 Return Value:
00060
00061 The function value is the final status of the operation.
00062
00063
00064 -*/
00065
00066 {
00067
NTSTATUS status;
00068
PIO_STACK_LOCATION irpSp;
00069
PDEVICE_EXTENSION deviceExtension;
00070
00071
PAGED_CODE();
00072
00073
00074
00075
00076
00077 deviceExtension = (
PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
00078 irpSp =
IoGetCurrentIrpStackLocation( Irp );
00079
00080
switch ( irpSp->
MinorFunction ) {
00081
00082
case IRP_MN_MOUNT_VOLUME:
00083
00084
00085
00086
00087
00088 status = STATUS_FS_DRIVER_REQUIRED;
00089
break;
00090
00091
case IRP_MN_LOAD_FILE_SYSTEM:
00092
00093 status =
FsRecLoadFileSystem( DeviceObject,
00094 L
"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\Cdfs" );
00095
break;
00096
00097
default:
00098
00099 status = STATUS_INVALID_DEVICE_REQUEST;
00100
break;
00101 }
00102
00103
00104
00105
00106
00107
00108
Irp->
IoStatus.Status = status;
00109
IoCompleteRequest( Irp, IO_NO_INCREMENT );
00110
00111
return status;
00112 }
}