Fix IRP_MJ_QUERY_INFORMATION/FileStandardInformation (current code was trying to dereference NULL pointer) Replace MmGetSystemAddressForMdl by MmGetSystemAddressForMdlSafe Modified: trunk/reactos/drivers/dd/serial/devctrl.c Modified: trunk/reactos/drivers/dd/serial/info.c Modified: trunk/reactos/drivers/dd/serial/pnp.c _____
Modified: trunk/reactos/drivers/dd/serial/devctrl.c --- trunk/reactos/drivers/dd/serial/devctrl.c 2005-08-24 15:33:58 UTC (rev 17513) +++ trunk/reactos/drivers/dd/serial/devctrl.c 2005-08-24 15:37:04 UTC (rev 17514) @@ -31,7 +31,7 @@
case METHOD_IN_DIRECT: case METHOD_OUT_DIRECT: *BufferIn = Irp->AssociatedIrp.SystemBuffer; - *BufferOut = MmGetSystemAddressForMdl(Irp->MdlAddress); + *BufferOut = MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority); break; case METHOD_NEITHER: *BufferIn = IoGetCurrentIrpStackLocation(Irp)->Parameters.DeviceIoControl.Type3Input Buffer; _____
Modified: trunk/reactos/drivers/dd/serial/info.c --- trunk/reactos/drivers/dd/serial/info.c 2005-08-24 15:33:58 UTC (rev 17513) +++ trunk/reactos/drivers/dd/serial/info.c 2005-08-24 15:37:04 UTC (rev 17514) @@ -38,6 +38,7 @@
Status = STATUS_BUFFER_OVERFLOW; else if (!StandardInfo) Status = STATUS_INVALID_PARAMETER; + else { StandardInfo->AllocationSize.QuadPart = 0; StandardInfo->EndOfFile.QuadPart = 0; _____
Modified: trunk/reactos/drivers/dd/serial/pnp.c --- trunk/reactos/drivers/dd/serial/pnp.c 2005-08-24 15:33:58 UTC (rev 17513) +++ trunk/reactos/drivers/dd/serial/pnp.c 2005-08-24 15:37:04 UTC (rev 17514) @@ -274,7 +274,7 @@
if (NT_SUCCESS(Status)) { /* Key = \Device\Serialx, Value = COMx */ - ZwSetValueKey(hKey, &DeviceName, 0, REG_SZ, &ComPortBuffer, ComPort.Length + sizeof(WCHAR)); + ZwSetValueKey(hKey, &DeviceName, 0, REG_SZ, ComPortBuffer, ComPort.Length + sizeof(WCHAR)); ZwClose(hKey); }