- Update to r53061
[reactos.git] / drivers / filesystems / cdfs / fsctl.c
index dd0e065..a8543db 100644 (file)
@@ -46,7 +46,7 @@ CdfsGetPVDData(PUCHAR Buffer,
                PCDINFO CdInfo)
 {
     PPVD Pvd;
-    ULONG i;
+    USHORT i;
     PUCHAR pc;
     PWCHAR pw;
 
@@ -63,10 +63,10 @@ CdfsGetPVDData(PUCHAR Buffer,
     for (i = 0; i < 2048; i += 4)
     {
         /* DON'T optimize this to ULONG!!! (breaks overflow) */
-        Serial.Part[0] += Buffer[i+3];
-        Serial.Part[1] += Buffer[i+2];
-        Serial.Part[2] += Buffer[i+1];
         Serial.Part[3] += Buffer[i+0];
+        Serial.Part[2] += Buffer[i+1];
+        Serial.Part[1] += Buffer[i+2];
+        Serial.Part[0] += Buffer[i+3];
     }
     CdInfo->SerialNumber = Serial.Value;
 
@@ -359,7 +359,7 @@ CdfsMountVolume(PDEVICE_OBJECT DeviceObject,
 
     Vpb->SerialNumber = CdInfo.SerialNumber;
     Vpb->VolumeLabelLength = CdInfo.VolumeLabelLength;
-    RtlCopyMemory(Vpb->VolumeLabel, CdInfo.VolumeLabel, CdInfo.VolumeLabelLength * sizeof(WCHAR));
+    RtlCopyMemory(Vpb->VolumeLabel, CdInfo.VolumeLabel, CdInfo.VolumeLabelLength);
     RtlCopyMemory(&DeviceExt->CdInfo, &CdInfo, sizeof(CDINFO));
 
     NewDeviceObject->Vpb = DeviceToMount->Vpb;
@@ -566,6 +566,7 @@ CdfsFileSystemControl(PDEVICE_OBJECT DeviceObject,
 
     switch (Stack->MinorFunction)
     {
+    case IRP_MN_KERNEL_CALL:
     case IRP_MN_USER_FS_REQUEST:
         switch (Stack->Parameters.DeviceIoControl.IoControlCode)
         {