Commit in reactos/include/ddk on MAIN
iotypes.h+175-3101.71 -> 1.72
Merge EXTENDED_IO_STACK_LOCATION into IO_STACK_LOCATION and fix the resulting errors.

reactos/include/ddk
iotypes.h 1.71 -> 1.72
diff -u -r1.71 -r1.72
--- iotypes.h	22 Dec 2004 05:06:59 -0000	1.71
+++ iotypes.h	23 Dec 2004 12:28:31 -0000	1.72
@@ -1,4 +1,4 @@
-/* $Id: iotypes.h,v 1.71 2004/12/22 05:06:59 royce Exp $
+/* $Id: iotypes.h,v 1.72 2004/12/23 12:28:31 ekohl Exp $
  *
  */
 
@@ -287,15 +287,13 @@
 /*
  * PURPOSE: IRP stack location
  */
-
-/*
 typedef struct _IO_STACK_LOCATION
 {
   UCHAR MajorFunction;
   UCHAR MinorFunction;
   UCHAR Flags;
   UCHAR Control;
-  
+
   union
     {
       struct
@@ -306,57 +304,59 @@
 	  USHORT ShareAccess;
 	  ULONG EaLength;
 	} Create;
+
+      struct
+	{
+	  PIO_SECURITY_CONTEXT SecurityContext;
+	  ULONG Options;
+	  USHORT Reserved;
+	  USHORT ShareAccess;
+	  struct _NAMED_PIPE_CREATE_PARAMETERS *Parameters;
+	} CreatePipe;
+
+      struct
+	{
+	  PIO_SECURITY_CONTEXT SecurityContext;
+	  ULONG Options;
+	  USHORT Reserved;
+	  USHORT ShareAccess;
+	  struct _MAILSLOT_CREATE_PARAMETERS *Parameters;
+	} CreateMailslot;
+
       struct
 	{
 	  ULONG Length;
 	  ULONG Key;
 	  LARGE_INTEGER ByteOffset;
 	} Read;
+
       struct
 	{
 	  ULONG Length;
 	  ULONG Key;
 	  LARGE_INTEGER ByteOffset;
 	} Write;
-      struct
-	{
-	  ULONG OutputBufferLength;
-	  ULONG InputBufferLength;
-	  ULONG IoControlCode;
-	  PVOID Type3InputBuffer;
-	} DeviceIoControl;
-      struct
-	{
-	  ULONG OutputBufferLength;
-	  ULONG InputBufferLength;
-	  ULONG IoControlCode;
-	  PVOID Type3InputBuffer;
-	} FileSystemControl;
-      struct
-	{
-	  struct _VPB* Vpb;
-	  struct _DEVICE_OBJECT* DeviceObject;
-	} MountVolume;
-      struct
-	{
-	  struct _VPB* Vpb;
-	  struct _DEVICE_OBJECT* DeviceObject;
-	} VerifyVolume;
+
       struct
 	{
 	  ULONG Length;
+	  PUNICODE_STRING FileName;
 	  FILE_INFORMATION_CLASS FileInformationClass;
-	} QueryFile;
+	  ULONG FileIndex;
+	} QueryDirectory;
+
       struct
 	{
 	  ULONG Length;
-	  FS_INFORMATION_CLASS FsInformationClass;
-	} QueryVolume;
+	  ULONG CompletionFilter;
+	} NotifyDirectory;
+
       struct
 	{
 	  ULONG Length;
-	  FS_INFORMATION_CLASS FsInformationClass;
-	} SetVolume;
+	  FILE_INFORMATION_CLASS FileInformationClass;
+	} QueryFile;
+
       struct
 	{
 	  ULONG Length;
@@ -373,21 +373,106 @@
 	      HANDLE DeleteHandle;
 	    } u;
 	} SetFile;
+
       struct
 	{
 	  ULONG Length;
-	  PUNICODE_STRING FileName;
-	  FILE_INFORMATION_CLASS FileInformationClass;
-	  ULONG FileIndex;
-	} QueryDirectory;
+	  PVOID EaList;
+	  ULONG EaListLength;
+	  ULONG EaIndex;
+	} QueryEa;
+
+      struct
+	{
+	  ULONG Length;
+	} SetEa;
+
+      struct
+	{
+	  ULONG Length;
+	  FS_INFORMATION_CLASS FsInformationClass;
+	} QueryVolume;
+
+      struct
+	{
+	  ULONG Length;
+	  FS_INFORMATION_CLASS FsInformationClass;
+	} SetVolume;
+
+      struct
+	{
+	  ULONG OutputBufferLength;
+	  ULONG InputBufferLength;
+	  ULONG FsControlCode;
+	  PVOID Type3InputBuffer;
+	} FileSystemControl;
+
+      /* byte range file locking */
+      struct
+	{
+	  PLARGE_INTEGER Length;
+	  ULONG Key;
+	  LARGE_INTEGER ByteOffset;
+	} LockControl;
+
+      struct
+	{
+	  ULONG OutputBufferLength;
+	  ULONG InputBufferLength;
+	  ULONG IoControlCode;
+	  PVOID Type3InputBuffer;
+	} DeviceIoControl;
+
+      struct
+	{
+	  SECURITY_INFORMATION SecurityInformation;
+	  ULONG POINTER_ALIGNMENT Length;
+	} QuerySecurity;
+
+      struct
+	{
+	  SECURITY_INFORMATION SecurityInformation;
+	  PSECURITY_DESCRIPTOR SecurityDescriptor;
+	} SetSecurity;
+
+      struct
+	{
+	  struct _VPB* Vpb;
+	  struct _DEVICE_OBJECT* DeviceObject;
+	} MountVolume;
+
+      struct
+	{
+	  struct _VPB* Vpb;
+	  struct _DEVICE_OBJECT* DeviceObject;
+	} VerifyVolume;
+
+      /* Parameters for IRP_MN_SCSI_CLASS */
+      struct
+	{
+	  struct _SCSI_REQUEST_BLOCK *Srb;
+	} Scsi;
+
+      struct
+	{
+	  ULONG Length;
+	  PSID StartSid;
+	  struct _FILE_GET_QUOTA_INFORMATION *SidList;
+	  ULONG SidListLength;
+	} QueryQuota;
+
+      struct
+	{
+	  ULONG Length;
+	} SetQuota;
 
-      // Parameters for IRP_MN_QUERY_DEVICE_RELATIONS
+      /* Parameters for IRP_MN_QUERY_DEVICE_RELATIONS */
       struct
 	{
 	  DEVICE_RELATION_TYPE Type;
 	} QueryDeviceRelations;
 
-      // Parameters for IRP_MN_QUERY_INTERFACE
+      /* Parameters for IRP_MN_QUERY_INTERFACE */
       struct
 	{
 	  CONST GUID *InterfaceType;
@@ -397,32 +482,45 @@
 	  PVOID InterfaceSpecificData;
 	} QueryInterface;
 
-      // Parameters for IRP_MN_QUERY_CAPABILITIES
+      /* Parameters for IRP_MN_QUERY_CAPABILITIES */
       struct
 	{
 	  PDEVICE_CAPABILITIES Capabilities;
 	} DeviceCapabilities;
 
-      // Parameters for IRP_MN_FILTER_RESOURCE_REQUIREMENTS
+      /* Parameters for IRP_MN_FILTER_RESOURCE_REQUIREMENTS */
       struct
 	{
-      PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList;
-    } FilterResourceRequirements;
+	  PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList;
+	} FilterResourceRequirements;
 
-      // Parameters for IRP_MN_QUERY_ID
+      struct
+	{
+	  ULONG WhichSpace;
+	  PVOID Buffer;
+	  ULONG Offset;
+	  ULONG POINTER_ALIGNMENT Length;
+	} ReadWriteConfig;
+
+      struct
+	{
+	  BOOLEAN Lock;
+	} SetLock;
+
+      /* Parameters for IRP_MN_QUERY_ID */
       struct
 	{
 	  BUS_QUERY_ID_TYPE IdType;
 	} QueryId;
 
-      // Parameters for IRP_MN_QUERY_DEVICE_TEXT
+      /* Parameters for IRP_MN_QUERY_DEVICE_TEXT */
       struct
 	{
 	  DEVICE_TEXT_TYPE DeviceTextType;
 	  LCID LocaleId;
 	} QueryDeviceText;
 
-      // Parameters for IRP_MN_DEVICE_USAGE_NOTIFICATION
+      /* Parameters for IRP_MN_DEVICE_USAGE_NOTIFICATION */
       struct
 	{
 	  BOOLEAN InPath;
@@ -430,19 +528,19 @@
 	  DEVICE_USAGE_NOTIFICATION_TYPE Type;
 	} UsageNotification;
 
-      // Parameters for IRP_MN_WAIT_WAKE
+      /* Parameters for IRP_MN_WAIT_WAKE */
       struct
 	{
 	  SYSTEM_POWER_STATE PowerState;
 	} WaitWake;
 
-      // Parameter for IRP_MN_POWER_SEQUENCE
+      /* Parameter for IRP_MN_POWER_SEQUENCE */
       struct
 	{
 	  PPOWER_SEQUENCE PowerSequence;
 	} PowerSequence;
 
-      // Parameters for IRP_MN_SET_POWER and IRP_MN_QUERY_POWER
+      /* Parameters for IRP_MN_SET_POWER and IRP_MN_QUERY_POWER */
       struct
 	{
 	  ULONG SystemContext;
@@ -451,29 +549,23 @@
 	  POWER_ACTION ShutdownType;
 	} Power;
 
-      // Parameters for IRP_MN_START_DEVICE
+      /* Parameters for IRP_MN_START_DEVICE */
       struct
 	{
 	  PCM_RESOURCE_LIST AllocatedResources;
 	  PCM_RESOURCE_LIST AllocatedResourcesTranslated;
 	} StartDevice;
-*/
-      /* Parameters for IRP_MN_SCSI_CLASS */
-/*      struct
-	{
-	  struct _SCSI_REQUEST_BLOCK *Srb;
-	} Scsi;
 
-	  //byte range file locking
-	  struct 
+      struct
 	{
-      PLARGE_INTEGER Length;
-      ULONG Key;
-      LARGE_INTEGER ByteOffset;
-    } LockControl;
-*/
+	  ULONG_PTR ProviderId;
+	  PVOID DataPath;
+	  ULONG BufferSize;
+	  PVOID Buffer;
+	} WMI;
+
       /* Paramters for other calls */
-/*      struct
+      struct
 	{
 	  PVOID Argument1;
 	  PVOID Argument2;
@@ -481,245 +573,15 @@
 	  PVOID Argument4;
 	} Others;
     } Parameters;
-  
+
   struct _DEVICE_OBJECT* DeviceObject;
   struct _FILE_OBJECT* FileObject;
 
   PIO_COMPLETION_ROUTINE CompletionRoutine;
-  PVOID CompletionContext;
-
-} IO_STACK_LOCATION, *PIO_STACK_LOCATION;*/
+  PVOID Context;
 
-typedef struct _IO_STACK_LOCATION {
-  UCHAR  MajorFunction;
-  UCHAR  MinorFunction;
-  UCHAR  Flags;
-  UCHAR  Control;
-  union {
-    struct {
-      PIO_SECURITY_CONTEXT  SecurityContext;
-      ULONG  Options;
-      USHORT POINTER_ALIGNMENT  FileAttributes;
-      USHORT  ShareAccess;
-      ULONG POINTER_ALIGNMENT  EaLength;
-    } Create;
-    struct {
-      ULONG  Length;
-      ULONG POINTER_ALIGNMENT  Key;
-      LARGE_INTEGER  ByteOffset;
-    } Read;
-    struct {
-      ULONG  Length;
-      ULONG POINTER_ALIGNMENT  Key;
-      LARGE_INTEGER  ByteOffset;
-    } Write;
-    struct {
-      ULONG  Length;
-      FILE_INFORMATION_CLASS POINTER_ALIGNMENT  FileInformationClass;
-    } QueryFile;
-    struct {
-      ULONG  Length;
-      FILE_INFORMATION_CLASS POINTER_ALIGNMENT  FileInformationClass;
-      struct _FILE_OBJECT*  FileObject;
-      union {
-        struct {
-          BOOLEAN  ReplaceIfExists;
-          BOOLEAN  AdvanceOnly;
-        };
-        ULONG  ClusterCount;
-        HANDLE  DeleteHandle;
-      };
-    } SetFile;
-    struct {
-      ULONG  Length;
-      FS_INFORMATION_CLASS POINTER_ALIGNMENT  FsInformationClass;
-    } QueryVolume;
-    struct {
-      ULONG  OutputBufferLength;
-      ULONG POINTER_ALIGNMENT  InputBufferLength;
-      ULONG POINTER_ALIGNMENT  IoControlCode;
-      PVOID  Type3InputBuffer;
-    } DeviceIoControl;
-    struct {
-      SECURITY_INFORMATION  SecurityInformation;
-      ULONG POINTER_ALIGNMENT  Length;
-    } QuerySecurity;
-    struct {
-      SECURITY_INFORMATION  SecurityInformation;
-      PSECURITY_DESCRIPTOR  SecurityDescriptor;
-    } SetSecurity;
-    struct {
-      struct _VPB*  Vpb;
-      struct _DEVICE_OBJECT*  DeviceObject;
-    } MountVolume;
-    struct {
-      struct _VPB*  Vpb;
-      struct _DEVICE_OBJECT*  DeviceObject;
-    } VerifyVolume;
-    struct {
-      struct _SCSI_REQUEST_BLOCK  *Srb;
-    } Scsi;
-    struct {
-      DEVICE_RELATION_TYPE  Type;
-    } QueryDeviceRelations;
-    struct {
-      CONST GUID  *InterfaceType;
-      USHORT  Size;
-      USHORT  Version;
-      PINTERFACE  Interface;
-      PVOID  InterfaceSpecificData;
-    } QueryInterface;
-    struct {
-      PDEVICE_CAPABILITIES  Capabilities;
-    } DeviceCapabilities;
-    struct {
-      PIO_RESOURCE_REQUIREMENTS_LIST  IoResourceRequirementList;
-    } FilterResourceRequirements;
-    struct {
-      ULONG  WhichSpace;
-      PVOID  Buffer;
-      ULONG  Offset;
-      ULONG POINTER_ALIGNMENT  Length;
-    } ReadWriteConfig;
-    struct {
-      BOOLEAN  Lock;
-    } SetLock;
-    struct {
-      BUS_QUERY_ID_TYPE  IdType;
-    } QueryId;
-    struct {
-      DEVICE_TEXT_TYPE  DeviceTextType;
-      LCID POINTER_ALIGNMENT  LocaleId;
-    } QueryDeviceText;
-    struct {
-      BOOLEAN  InPath;
-      BOOLEAN  Reserved[3];
-      DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT  Type;
-    } UsageNotification;
-    struct {
-      SYSTEM_POWER_STATE  PowerState;
-    } WaitWake;
-    struct {
-      PPOWER_SEQUENCE  PowerSequence;
-    } PowerSequence;
-    struct {
-      ULONG  SystemContext;
-      POWER_STATE_TYPE POINTER_ALIGNMENT  Type;
-      POWER_STATE POINTER_ALIGNMENT  State;
-      POWER_ACTION POINTER_ALIGNMENT  ShutdownType;
-    } Power;
-    struct {
-      PCM_RESOURCE_LIST  AllocatedResources;
-      PCM_RESOURCE_LIST  AllocatedResourcesTranslated;
-    } StartDevice;
-    struct {
-      ULONG_PTR  ProviderId;
-      PVOID  DataPath;
-      ULONG  BufferSize;
-      PVOID  Buffer;
-    } WMI;
-    struct {
-      PVOID  Argument1;
-      PVOID  Argument2;
-      PVOID  Argument3;
-      PVOID  Argument4;
-    } Others;
-  } Parameters;
-  struct _DEVICE_OBJECT*  DeviceObject;
-  struct _FILE_OBJECT*  FileObject;
-  PIO_COMPLETION_ROUTINE  CompletionRoutine;
-  PVOID  Context;
 } IO_STACK_LOCATION, *PIO_STACK_LOCATION;
 
-// AG: The commented lines in this structure are due to PMAILSLOT_CREATE_PARAMETERS
-// and PNAMED_PIPE_CREATE_PARAMETERS and PFILE_GET_QUOTA_INFORMATION not being
-// defined.
-
-typedef struct _EXTENDED_IO_STACK_LOCATION {
-
-    /* Included for padding */
-    UCHAR MajorFunction;
-    UCHAR MinorFunction;
-    UCHAR Flags;
-    UCHAR Control;
-
-    union {
-
-//       struct {
-//          PIO_SECURITY_CONTEXT              SecurityContext;
-//          ULONG                             Options;
-//          USHORT                            Reserved;
-//          USHORT                            ShareAccess;
-//          PMAILSLOT_CREATE_PARAMETERS       Parameters;
-//       } CreateMailslot;
-
-//        struct {
-//            PIO_SECURITY_CONTEXT            SecurityContext;
-//            ULONG                           Options;
-//            USHORT                          Reserved;
-//            USHORT                          ShareAccess;
-//            PNAMED_PIPE_CREATE_PARAMETERS   Parameters;
-//        } CreatePipe;
-
-        struct {
-            ULONG                           OutputBufferLength;
-            ULONG                           InputBufferLength;
-            ULONG                           FsControlCode;
-            PVOID                           Type3InputBuffer;
-        } FileSystemControl;
-
-        struct {
-            PLARGE_INTEGER                  Length;
-            ULONG                           Key;
-            LARGE_INTEGER                   ByteOffset;
-        } LockControl;
-
-        struct {
-            ULONG                           Length;
-            ULONG                           CompletionFilter;
-        } NotifyDirectory;
-
-        struct {
-            ULONG                           Length;
-            PUNICODE_STRING                 FileName;
-            FILE_INFORMATION_CLASS          FileInformationClass;
-            ULONG                           FileIndex;
-        } QueryDirectory;
-
-        struct {
-            ULONG                           Length;
-            PVOID                           EaList;
-            ULONG                           EaListLength;
-            ULONG                           EaIndex;
-        } QueryEa;
-
-//        struct {
-//            ULONG                           Length;
-//            PSID                            StartSid;
-//            PFILE_GET_QUOTA_INFORMATION     SidList;
-//            ULONG                           SidListLength;
-//        } QueryQuota;
-
-        struct {
-            ULONG                           Length;
-        } SetEa;
-
-        struct {
-            ULONG                           Length;
-        } SetQuota;
-
-        struct {
-            ULONG                           Length;
-            FS_INFORMATION_CLASS            FsInformationClass;
-        } SetVolume;
-
-    } Parameters;
-    struct _DEVICE_OBJECT*  DeviceObject;
-    struct _FILE_OBJECT*  FileObject;
-    PIO_COMPLETION_ROUTINE  CompletionRoutine;
-    PVOID  Context;
-
-} EXTENDED_IO_STACK_LOCATION, *PEXTENDED_IO_STACK_LOCATION;
 
 typedef struct _IO_STATUS_BLOCK
 {
@@ -1242,24 +1104,27 @@
 #endif // (_WIN32_WINNT >= 0x0400)
 
 
-typedef struct _NAMED_PIPE_CREATE_PARAMETERS {
-    ULONG           NamedPipeType;
-    ULONG           ReadMode;
-    ULONG           CompletionMode;
-    ULONG           MaximumInstances;
-    ULONG           InboundQuota;
-    ULONG           OutboundQuota;
-    LARGE_INTEGER   DefaultTimeout;
-    BOOLEAN         TimeoutSpecified;
+typedef struct _NAMED_PIPE_CREATE_PARAMETERS
+{
+  ULONG NamedPipeType;
+  ULONG ReadMode;
+  ULONG CompletionMode;
+  ULONG MaximumInstances;
+  ULONG InboundQuota;
+  ULONG OutboundQuota;
+  LARGE_INTEGER DefaultTimeout;
+  BOOLEAN TimeoutSpecified;
 } NAMED_PIPE_CREATE_PARAMETERS, *PNAMED_PIPE_CREATE_PARAMETERS;
 
-typedef struct _MAILSLOT_CREATE_PARAMETERS {
-    ULONG           MailslotQuota;
-    ULONG           MaximumMessageSize;
-    LARGE_INTEGER   ReadTimeout;
-    BOOLEAN         TimeoutSpecified;
+typedef struct _MAILSLOT_CREATE_PARAMETERS
+{
+  ULONG MailslotQuota;
+  ULONG MaximumMessageSize;
+  LARGE_INTEGER ReadTimeout;
+  BOOLEAN TimeoutSpecified;
 } MAILSLOT_CREATE_PARAMETERS, *PMAILSLOT_CREATE_PARAMETERS;
 
+
 /* error logging */
 
 typedef struct _IO_ERROR_LOG_PACKET
CVSspam 0.2.8