- get mpu401, parallel and ramdrv to work on msvc.
[reactos.git] / reactos / drivers / dd / ramdrv / ramdrv.c
index b3304be..57f1b7a 100644 (file)
@@ -1,10 +1,10 @@
 #include <ntddk.h>
+#include <ntdddisk.h>
 #include "ramdrv.h"
 #include <debug.h>
-#include <rosrtl/string.h>
 #include "../../lib/bzip2/bzlib.h"
 
-NTSTATUS STDCALL RamdrvDispatchDeviceControl(PDEVICE_OBJECT DeviceObject,
+static NTSTATUS STDCALL RamdrvDispatchDeviceControl(PDEVICE_OBJECT DeviceObject,
                                             PIRP Irp)
 {
    PIO_STACK_LOCATION IrpStack;
@@ -41,11 +41,11 @@ NTSTATUS STDCALL RamdrvDispatchDeviceControl(PDEVICE_OBJECT DeviceObject,
         Status = STATUS_INVALID_DEVICE_REQUEST;
    }
    Irp->IoStatus.Status = Status;
-   IoCompleteRequest(Irp, NT_SUCCESS(Status) ? IO_DISK_INCREMENT : IO_NO_INCREMENT);   
+   IoCompleteRequest(Irp, NT_SUCCESS(Status) ? IO_DISK_INCREMENT : IO_NO_INCREMENT);
    return Status;
 }
 
-NTSTATUS STDCALL RamdrvDispatchReadWrite(PDEVICE_OBJECT DeviceObject,
+static NTSTATUS STDCALL RamdrvDispatchReadWrite(PDEVICE_OBJECT DeviceObject,
                                         PIRP Irp)
 {
   PRAMDRV_DEVICE_EXTENSION devext = (PRAMDRV_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
@@ -63,9 +63,9 @@ NTSTATUS STDCALL RamdrvDispatchReadWrite(PDEVICE_OBJECT DeviceObject,
     Stk->Parameters.Read.Length = devext->Size - Stk->Parameters.Read.ByteOffset.u.LowPart;
   if( Stk->MajorFunction == IRP_MJ_READ )
     RtlCopyMemory( MmGetSystemAddressForMdl( Irp->MdlAddress ),
-                  devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart,
+                  (PVOID)((ULONG_PTR)devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart),
                   Stk->Parameters.Read.Length );
-  else RtlCopyMemory( devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart,
+  else RtlCopyMemory( (PVOID)((ULONG_PTR)devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart),
                      MmGetSystemAddressForMdl( Irp->MdlAddress ),
                      Stk->Parameters.Read.Length );
   Irp->IoStatus.Status = STATUS_SUCCESS;
@@ -74,7 +74,7 @@ NTSTATUS STDCALL RamdrvDispatchReadWrite(PDEVICE_OBJECT DeviceObject,
   return STATUS_SUCCESS;
 }
 
-NTSTATUS STDCALL RamdrvDispatchOpenClose(PDEVICE_OBJECT DeviceObject,
+static NTSTATUS STDCALL RamdrvDispatchOpenClose(PDEVICE_OBJECT DeviceObject,
                                         PIRP Irp)
 {
    DPRINT("RamdrvDispatchOpenClose\n");
@@ -84,11 +84,12 @@ NTSTATUS STDCALL RamdrvDispatchOpenClose(PDEVICE_OBJECT DeviceObject,
 NTSTATUS STDCALL DriverEntry(IN PDRIVER_OBJECT DriverObject,
                             IN PUNICODE_STRING RegistryPath)
 {
-  UNICODE_STRING DeviceName = ROS_STRING_INITIALIZER(L"\\Device\\Ramdisk");
+  UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\Ramdisk");
   NTSTATUS Status;
   PDEVICE_OBJECT DeviceObject;
   PRAMDRV_DEVICE_EXTENSION devext;
-  UNICODE_STRING LinkName;
+  UNICODE_STRING LinkName = RTL_CONSTANT_STRING(L"\\??\\Z:");
+  UNICODE_STRING ImageName = RTL_CONSTANT_STRING(L"\\Device\\Floppy0\\ramdisk.bz2");  
   HANDLE file;
   OBJECT_ATTRIBUTES objattr;
   IO_STATUS_BLOCK iosb;
@@ -97,18 +98,18 @@ NTSTATUS STDCALL DriverEntry(IN PDRIVER_OBJECT DriverObject,
   void *tbuff;
   unsigned int dstlen = 1024 * 1440;
   FILE_STANDARD_INFORMATION finfo;
-  DWORD err;
-  
+  ULONG err;
+
   DPRINT("Ramdisk driver\n");
-  
+
   /* Export other driver entry points... */
   DriverObject->MajorFunction[IRP_MJ_CREATE] = RamdrvDispatchOpenClose;
   DriverObject->MajorFunction[IRP_MJ_CLOSE] = RamdrvDispatchOpenClose;
   DriverObject->MajorFunction[IRP_MJ_READ] = RamdrvDispatchReadWrite;
   DriverObject->MajorFunction[IRP_MJ_WRITE] = RamdrvDispatchReadWrite;
   DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = RamdrvDispatchDeviceControl;
-  
-  
+
+
   // create device and symbolic link
   Status = IoCreateDevice( DriverObject,
                           sizeof( RAMDRV_DEVICE_EXTENSION ),
@@ -128,12 +129,10 @@ NTSTATUS STDCALL DriverEntry(IN PDRIVER_OBJECT DriverObject,
       Status = STATUS_INSUFFICIENT_RESOURCES;
       goto cleandevice;
     }
-  RtlRosInitUnicodeStringFromLiteral( &LinkName, L"\\??\\Z:" );
   IoCreateSymbolicLink( &LinkName, &DeviceName );
 
-  RtlRosInitUnicodeStringFromLiteral( &LinkName, L"\\Device\\Floppy0\\ramdisk.bz2" );
   InitializeObjectAttributes( &objattr,
-                             &LinkName,
+                             &ImageName,
                              0,
                              0,
                              0 );