Manually applying Gunnars patch became it's easier this way - and a good chance to...
[reactos.git] / reactos / include / ddk / iotypes.h
index 8b31481..1426a4e 100644 (file)
@@ -1,5 +1,5 @@
-/* $Id: iotypes.h,v 1.35 2002/03/25 21:53:27 ekohl Exp $
- * 
+/* $Id: iotypes.h,v 1.44 2002/11/07 02:44:49 robd Exp $
+ *
  */
 
 #ifndef __INCLUDE_DDK_IOTYPES_H
@@ -238,7 +238,7 @@ typedef struct
    USHORT Revision;
    ULONG Count;
    CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
-} __attribute__((packed))CM_PARTIAL_RESOURCE_LIST;
+} __attribute__((packed))CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
 
 typedef struct
 {
@@ -304,7 +304,7 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION
        {
          struct _VPB* Vpb;
          struct _DEVICE_OBJECT* DeviceObject;
-       } Mount;
+       } MountVolume;
       struct
        {
          struct _VPB* Vpb;
@@ -371,6 +371,12 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION
          PDEVICE_CAPABILITIES Capabilities;
        } DeviceCapabilities;
 
+      // Parameters for IRP_MN_FILTER_RESOURCE_REQUIREMENTS
+      struct
+       {
+      PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList;
+    } FilterResourceRequirements;
+
       // Parameters for IRP_MN_QUERY_ID
       struct
        {
@@ -426,6 +432,14 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION
          struct _SCSI_REQUEST_BLOCK *Srb;
        } Scsi;
 
+         //byte range file locking
+         struct 
+       {
+      PLARGE_INTEGER Length;
+      ULONG Key;
+      LARGE_INTEGER ByteOffset;
+    } LockControl;
+
       /* Paramters for other calls */
       struct
        {
@@ -438,10 +452,10 @@ typedef struct __attribute__((packed)) _IO_STACK_LOCATION
   
   struct _DEVICE_OBJECT* DeviceObject;
   struct _FILE_OBJECT* FileObject;
-  
+
   PIO_COMPLETION_ROUTINE CompletionRoutine;
   PVOID CompletionContext;
-  
+
 } __attribute__((packed)) IO_STACK_LOCATION, *PIO_STACK_LOCATION;
 
 
@@ -669,13 +683,6 @@ typedef struct _DEVICE_OBJECT
    PVOID Reserved;
 } DEVICE_OBJECT, *PDEVICE_OBJECT;
 
-/*
- * Dispatch routine type declaration
- */
-typedef NTSTATUS STDCALL
-(*PDRIVER_DISPATCH)(struct _DEVICE_OBJECT*,
-                   IRP*);
-
 
 /*
  * Fast i/o routine type declaration
@@ -726,16 +733,26 @@ typedef struct _FAST_IO_DISPATCH {
 /*
  * Dispatch routine type declaration
  */
+typedef NTSTATUS STDCALL
+(*PDRIVER_DISPATCH)(IN struct _DEVICE_OBJECT *DeviceObject,
+                  IN struct _IRP *Irp);
+
+/*
+ * StartIo routine type declaration
+ */
 typedef VOID STDCALL
 (*PDRIVER_STARTIO)(IN PDEVICE_OBJECT DeviceObject,
                   IN PIRP Irp);
 
 /*
- * Dispatch routine type declaration
+ * Unload routine type declaration
  */
-typedef NTSTATUS STDCALL
-(*PDRIVER_UNLOAD)(struct _DRIVER_OBJECT*);
+typedef VOID STDCALL
+(*PDRIVER_UNLOAD)(IN struct _DRIVER_OBJECT *DriverObject);
 
+/*
+ * AddDevice routine type declaration
+ */
 typedef NTSTATUS STDCALL
 (*PDRIVER_ADD_DEVICE)(IN struct _DRIVER_OBJECT *DriverObject,
                      IN struct _DEVICE_OBJECT *PhysicalDeviceObject);
@@ -755,7 +772,7 @@ struct _FAST_IO_DISPATCH_TABLE
 {
        ULONG                   Count;
        PFAST_IO_DISPATCH       Dispatch;
-       
+
 } FAST_IO_DISPATCH_TABLE, * PFAST_IO_DISPATCH_TABLE;
 #endif
 
@@ -806,6 +823,9 @@ typedef VOID STDCALL
 (*PIO_TIMER_ROUTINE)(PDEVICE_OBJECT DeviceObject,
                     PVOID Context);
 
+typedef struct _IO_WORKITEM *PIO_WORKITEM;
+typedef VOID (*PIO_WORKITEM_ROUTINE)(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context);
+
 #if WINDOWS_STRUCTS_DOESNT_ALREADY_DEFINE_THIS
 typedef struct _PARTITION_INFORMATION
 {