Define FILE_WRITE_TO_END_OF_FILE.
[reactos.git] / reactos / include / ddk / iodef.h
index 59b4c51..85eabc1 100644 (file)
@@ -11,40 +11,104 @@ typedef enum _IO_QUERY_DEVICE_DESCRIPTION
 
 typedef enum _CONFIGURATION_TYPE
 {
+   ArcSystem,
+   CentralProcessor,
+   FloatingPointProcessor,
+   PrimaryIcache,
+   PrimaryDcache,
+   SecondaryIcache,
+   SecondaryDcache,
+   SecondaryCache,
+   EisaAdapter,
+   TcAdapter,
+   ScsiAdapter,
+   DtiAdapter,
+   MultiFunctionAdapter,
    DiskController,
+   TapeController,
+   CdromController,
+   WorkController,
+   SerialController,
+   NetworkController,
+   DisplayController,
    ParallelController,
-   MaximumType,
+   PointerController,
+   KeyboardController,
+   AudioController,
+   OtherController,
+   DiskPeripheral,
+   FloppyDiskPeripheral,
+   TapePeripheral,
+   ModemPeripheral,
+   MonitorPeripheral,
+   PrinterPeripheral,
+   PointerPeripheral,
+   KeyboardPeripheral,
+   TerminalPeripheral,
+   OtherPeripheral,
+   LinePeripheral,
+   NetworkPeripheral,
+   SystemMemory,
+   DockingInformation,
+   RealModeIrqRoutingTable,
+   RealModePCIEnumeration,
+   MaximumType
 } CONFIGURATION_TYPE, *PCONFIGURATION_TYPE;
 
-typedef enum _CM_RESOURCE_TYPE
-{
-   CmResourceTypePort = 1,
-   CmResourceTypeInterrupt,
-   CmResourceTypeMemory,
-   CmResourceTypeDma,
-   CmResourceTypeDeviceSpecific,
-   CmResourceTypeMaximum,
-} CM_RESOURCE_TYPE;
+
+typedef int CM_RESOURCE_TYPE;
+
+#define CmResourceTypeNull           0
+#define CmResourceTypePort           1
+#define CmResourceTypeInterrupt      2
+#define CmResourceTypeMemory         3
+#define CmResourceTypeDma            4
+#define CmResourceTypeDeviceSpecific 5
+#define CmResourceTypeBusNumber      6
+#define CmResourceTypeMaximum        7
+
 
 typedef enum _CM_SHARE_DISPOSITION
 {
-   CmResourceShareDeviceExclusive = 1,
-   CmResourceShareDriverExclusive,
-   CmResourceShareShared,
-   CmResourceShareMaximum,
+  CmResourceShareUndetermined = 0,
+  CmResourceShareDeviceExclusive,
+  CmResourceShareDriverExclusive,
+  CmResourceShareShared,
 } CM_SHARE_DISPOSITION;
 
-enum
-{
-   CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE,
-   CM_RESOURCE_INTERRUPT_LATCHED,
-};
 
-enum
-{
-   CM_RESOURCE_PORT_MEMORY,
-   CM_RESOURCE_PORT_IO,
-};
+#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0
+#define CM_RESOURCE_INTERRUPT_LATCHED         1
+
+
+#define CM_RESOURCE_MEMORY_READ_WRITE    0x0000
+#define CM_RESOURCE_MEMORY_READ_ONLY     0x0001
+#define CM_RESOURCE_MEMORY_WRITE_ONLY    0x0002
+#define CM_RESOURCE_MEMORY_PREFETCHABLE  0x0004
+#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008
+#define CM_RESOURCE_MEMORY_24            0x0010
+
+
+#define CM_RESOURCE_PORT_MEMORY                         0x0000
+#define CM_RESOURCE_PORT_IO                             0x0001
+#define CM_RESOURCE_PORT_FORWARD_FIRST_256_OF_EACH_1024 0x0002
+#define CM_RESOURCE_PORT_10_BIT_DECODE                  0x0004
+#define CM_RESOURCE_PORT_12_BIT_DECODE                  0x0008
+#define CM_RESOURCE_PORT_16_BIT_DECODE                  0x0010
+#define CM_RESOURCE_PORT_POSITIVE_DECODE                0x0020
+#define CM_RESOURCE_PORT_PASSIVE_DECODE                 0x0040
+#define CM_RESOURCE_PORT_WINDOW_DECODE                  0x0080
+
+
+#define CM_RESOURCE_DMA_8          0x0000
+#define CM_RESOURCE_DMA_16         0x0001
+#define CM_RESOURCE_DMA_32         0x0002
+#define CM_RESOURCE_DMA_8_AND_16   0x0004
+#define CM_RESOURCE_DMA_BUS_MASTER 0x0008
+#define CM_RESOURCE_DMA_TYPE_A     0x0010
+#define CM_RESOURCE_DMA_TYPE_B     0x0020
+#define CM_RESOURCE_DMA_TYPE_F     0x0040
+
 
 /*
  * PURPOSE: Irp flags
@@ -248,6 +312,14 @@ enum
 
 #define IRP_MJ_SCSI  IRP_MJ_INTERNAL_DEVICE_CONTROL
 
+/*
+ * Minor function numbers for IRP_MJ_LOCK_CONTROL
+ */
+#define IRP_MN_LOCK                     0x01
+#define IRP_MN_UNLOCK_SINGLE            0x02
+#define IRP_MN_UNLOCK_ALL               0x03
+#define IRP_MN_UNLOCK_ALL_BY_KEY        0x04
+
 /*
  * Minor function numbers for IRP_MJ_FILE_SYSTEM_CONTROL
  */
@@ -354,7 +426,7 @@ enum
 
 #define FILE_COMPLETE_IF_OPLOCKED               0x00000100
 #define FILE_NO_EA_KNOWLEDGE                    0x00000200
-
+#define FILE_OPEN_FOR_RECOVERY                  0x00000400
 #define FILE_RANDOM_ACCESS                      0x00000800
 
 #define FILE_DELETE_ON_CLOSE                    0x00001000
@@ -371,8 +443,15 @@ enum
 #define FILE_VALID_MAILSLOT_OPTION_FLAGS        0x00000032
 #define FILE_VALID_SET_FLAGS                    0x00001036
 
+#define FILE_OPEN_REPARSE_POINT                 0x00200000
+
+/*
+ * special ByteOffset values
+ */
+#define FILE_WRITE_TO_END_OF_FILE               0xffffffff
+#define FILE_USE_FILE_POINTER_POSITION          0xfffffffe
 
-typedef ULONG FS_INFORMATION_CLASS;
+typedef ULONG FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
 
 /*
  * file system information class values
@@ -390,4 +469,41 @@ typedef ULONG FS_INFORMATION_CLASS;
 #define IRP_MN_QUERY_DIRECTORY          0x01
 #define IRP_MN_NOTIFY_CHANGE_DIRECTORY  0x02
 
+
+typedef struct _FILE_QUOTA_INFORMATION {
+    ULONG NextEntryOffset;
+    ULONG SidLength;
+    LARGE_INTEGER ChangeTime;
+    LARGE_INTEGER QuotaUsed;
+    LARGE_INTEGER QuotaThreshold;
+    LARGE_INTEGER QuotaLimit;
+    LARGE_INTEGER Sid;
+} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
+
+/*
+ * Floppy device data type
+ */
+typedef struct _CM_FLOPPY_DEVICE_DATA
+{
+   USHORT Version;
+   USHORT Revision;
+   CHAR Size[8];
+   ULONG MaxDensity;
+   ULONG MountDensity;
+   UCHAR StepRateHeadUnloadTime;
+   UCHAR HeadLoadTime;
+   UCHAR MotorOffTime;
+   UCHAR SectorLengthCode;
+   UCHAR SectorPerTrack;
+   UCHAR ReadWriteGapLength;
+   UCHAR DataTransferLength;
+   UCHAR FormatGapLength;
+   UCHAR FormatFillCharacter;
+   UCHAR HeadSettleTime;
+   UCHAR MotorSettleTime;
+   UCHAR MaximumTrackValue;
+   UCHAR DataTransferRate;
+} CM_FLOPPY_DEVICE_DATA, *PCM_FLOPPY_DEVICE_DATA;
+
 #endif
+