Added .Type and .Size attributes to the IRP object: so far nothing
[reactos.git] / reactos / include / ddk / iotypes.h
index f899bc2..d60145f 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* $Id: iotypes.h,v 1.12 2000/03/06 01:02:30 ea Exp $
  * 
  */
 
@@ -22,6 +22,15 @@ enum
    KeepObject,
 };
 
+
+typedef enum _CREATE_FILE_TYPE
+{
+       CreateFileTypeNone,
+       CreateFileTypeNamedPipe,
+       CreateFileTypeMailslot
+} CREATE_FILE_TYPE;
+
+
 typedef ULONG INTERFACE_TYPE;
 typedef INTERFACE_TYPE* PINTERFACE_TYPE;
 
@@ -142,7 +151,7 @@ typedef struct _IO_STACK_LOCATION
         struct {
             ULONG Length;
             FILE_INFORMATION_CLASS FileInformationClass;
-            struct FILE_OBJECT* FileObject;
+            struct _FILE_OBJECT* FileObject;
             union {
                 struct {
                     BOOLEAN ReplaceIfExists;
@@ -152,10 +161,6 @@ typedef struct _IO_STACK_LOCATION
                 HANDLE DeleteHandle;
             } u;
         } SetFile;
-       
-       /*
-        * This is a guess
-        */
        struct
          {
             ULONG Length;
@@ -175,14 +180,7 @@ typedef struct _IO_STACK_LOCATION
 
 typedef struct _IO_STATUS_BLOCK
 {
-   /*
-    * Is the completion status
-    */
    NTSTATUS Status;
-   
-   /*
-    * Is a request dependant value
-    */
    ULONG Information;
 } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
 
@@ -195,8 +193,8 @@ typedef NTSTATUS (*PDRIVER_INITIALIZE)(struct _DRIVER_OBJECT* DriverObject,
 /*
  * Driver cancel declaration
  */
-typedef NTSTATUS (*PDRIVER_CANCEL)(struct _DRIVER_OBJECT* DriverObject,
-                                  PUNICODE_STRING RegistryPath);
+typedef NTSTATUS (*PDRIVER_CANCEL)(struct _DEVICE_OBJECT* DeviceObject,
+                                  struct _IRP* RegistryPath);
 
 
 typedef struct _SECTION_OBJECT_POINTERS
@@ -267,6 +265,8 @@ typedef struct _FILE_OBJECT
 
 typedef struct _IRP
 {
+   CSHORT Type;
+   USHORT Size;
    PMDL MdlAddress;
    ULONG Flags;
    union
@@ -395,6 +395,16 @@ typedef struct _DRIVER_EXTENSION
    UNICODE_STRING ServiceKeyName;
 } DRIVER_EXTENSION, *PDRIVER_EXTENSION;
 
+#if 0
+typedef
+struct _FAST_IO_DISPATCH_TABLE
+{
+       ULONG                   Count;
+       PFAST_IO_DISPATCH       Dispatch;
+       
+} FAST_IO_DISPATCH_TABLE, * PFAST_IO_DISPATCH_TABLE;
+#endif
+
 typedef struct _DRIVER_OBJECT
 {
    CSHORT Type;
@@ -407,7 +417,11 @@ typedef struct _DRIVER_OBJECT
    PDRIVER_EXTENSION DriverExtension;
    UNICODE_STRING DriverName;
    PUNICODE_STRING HardwareDatabase;
+#if 0
+   PFAST_IO_DISPATCH_TABLE FastIoDispatch;
+#else
    PFAST_IO_DISPATCH FastIoDispatch;
+#endif
    PDRIVER_INITIALIZE DriverInit;
    PDRIVER_STARTIO DriverStartIo;
    PDRIVER_UNLOAD DriverUnload;