- Move atsmedia.h to PSDK, introduce pragma once and remove the comments block and...
[reactos.git] / include / ddk / wdm.h
index 014dc82..860ccb0 100644 (file)
@@ -505,10 +505,12 @@ typedef BOOLEAN
 (*PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(
   IN ULONG Version);
 
+
 /******************************************************************************
  *                              Kernel Types                                  *
  ******************************************************************************/
 
+
 typedef UCHAR KIRQL, *PKIRQL;
 typedef CCHAR KPROCESSOR_MODE;
 typedef LONG KPRIORITY;
@@ -1502,6 +1504,7 @@ extern NTSYSAPI CCHAR KeNumberProcessors;
 extern PCCHAR KeNumberProcessors;
 #endif
 
+
 /******************************************************************************
  *                         Memory manager Types                               *
  ******************************************************************************/
@@ -1645,7 +1648,6 @@ typedef enum _MM_SYSTEM_SIZE {
   MmLargeSystem
 } MM_SYSTEMSIZE;
 
-
 /******************************************************************************
  *                            Executive Types                                 *
  ******************************************************************************/
@@ -2214,7 +2216,6 @@ typedef struct _SE_ADT_PARAMETER_ARRAY {
 #endif /* !_NTLSA_AUDIT_ */
 #endif /* !_NTLSA_IFS_ */
 
-
 /******************************************************************************
  *                            Power Management Support Types                  *
  ******************************************************************************/
@@ -3689,47 +3690,6 @@ typedef enum _CM_ERROR_CONTROL_TYPE {
 #define IO_RESOURCE_DEFAULT               0x02
 #define IO_RESOURCE_ALTERNATIVE           0x08
 
-/* DEVICE_OBJECT.Flags */
-#define DO_VERIFY_VOLUME                  0x00000002
-#define DO_BUFFERED_IO                    0x00000004
-#define DO_EXCLUSIVE                      0x00000008
-#define DO_DIRECT_IO                      0x00000010
-#define DO_MAP_IO_BUFFER                  0x00000020
-#define DO_DEVICE_INITIALIZING            0x00000080
-#define DO_SHUTDOWN_REGISTERED            0x00000800
-#define DO_BUS_ENUMERATED_DEVICE          0x00001000
-#define DO_POWER_PAGABLE                  0x00002000
-#define DO_POWER_INRUSH                   0x00004000
-
-/* DEVICE_OBJECT.Characteristics */
-#define FILE_REMOVABLE_MEDIA              0x00000001
-#define FILE_READ_ONLY_DEVICE             0x00000002
-#define FILE_FLOPPY_DISKETTE              0x00000004
-#define FILE_WRITE_ONCE_MEDIA             0x00000008
-#define FILE_REMOTE_DEVICE                0x00000010
-#define FILE_DEVICE_IS_MOUNTED            0x00000020
-#define FILE_VIRTUAL_VOLUME               0x00000040
-#define FILE_AUTOGENERATED_DEVICE_NAME    0x00000080
-#define FILE_DEVICE_SECURE_OPEN           0x00000100
-#define FILE_CHARACTERISTIC_PNP_DEVICE    0x00000800
-#define FILE_CHARACTERISTIC_TS_DEVICE     0x00001000
-#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
-
-/* DEVICE_OBJECT.AlignmentRequirement */
-#define FILE_BYTE_ALIGNMENT             0x00000000
-#define FILE_WORD_ALIGNMENT             0x00000001
-#define FILE_LONG_ALIGNMENT             0x00000003
-#define FILE_QUAD_ALIGNMENT             0x00000007
-#define FILE_OCTA_ALIGNMENT             0x0000000f
-#define FILE_32_BYTE_ALIGNMENT          0x0000001f
-#define FILE_64_BYTE_ALIGNMENT          0x0000003f
-#define FILE_128_BYTE_ALIGNMENT         0x0000007f
-#define FILE_256_BYTE_ALIGNMENT         0x000000ff
-#define FILE_512_BYTE_ALIGNMENT         0x000001ff
-
-/* DEVICE_OBJECT.DeviceType */
-#define DEVICE_TYPE ULONG
-
 #define FILE_DEVICE_BEEP                  0x00000001
 #define FILE_DEVICE_CD_ROM                0x00000002
 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM    0x00000003
@@ -3884,6 +3844,47 @@ typedef struct _WAIT_CONTEXT_BLOCK {
   PKDPC BufferChainingDpc;
 } WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;
 
+/* DEVICE_OBJECT.Flags */
+#define DO_VERIFY_VOLUME                  0x00000002
+#define DO_BUFFERED_IO                    0x00000004
+#define DO_EXCLUSIVE                      0x00000008
+#define DO_DIRECT_IO                      0x00000010
+#define DO_MAP_IO_BUFFER                  0x00000020
+#define DO_DEVICE_INITIALIZING            0x00000080
+#define DO_SHUTDOWN_REGISTERED            0x00000800
+#define DO_BUS_ENUMERATED_DEVICE          0x00001000
+#define DO_POWER_PAGABLE                  0x00002000
+#define DO_POWER_INRUSH                   0x00004000
+
+/* DEVICE_OBJECT.Characteristics */
+#define FILE_REMOVABLE_MEDIA              0x00000001
+#define FILE_READ_ONLY_DEVICE             0x00000002
+#define FILE_FLOPPY_DISKETTE              0x00000004
+#define FILE_WRITE_ONCE_MEDIA             0x00000008
+#define FILE_REMOTE_DEVICE                0x00000010
+#define FILE_DEVICE_IS_MOUNTED            0x00000020
+#define FILE_VIRTUAL_VOLUME               0x00000040
+#define FILE_AUTOGENERATED_DEVICE_NAME    0x00000080
+#define FILE_DEVICE_SECURE_OPEN           0x00000100
+#define FILE_CHARACTERISTIC_PNP_DEVICE    0x00000800
+#define FILE_CHARACTERISTIC_TS_DEVICE     0x00001000
+#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
+
+/* DEVICE_OBJECT.AlignmentRequirement */
+#define FILE_BYTE_ALIGNMENT             0x00000000
+#define FILE_WORD_ALIGNMENT             0x00000001
+#define FILE_LONG_ALIGNMENT             0x00000003
+#define FILE_QUAD_ALIGNMENT             0x00000007
+#define FILE_OCTA_ALIGNMENT             0x0000000f
+#define FILE_32_BYTE_ALIGNMENT          0x0000001f
+#define FILE_64_BYTE_ALIGNMENT          0x0000003f
+#define FILE_128_BYTE_ALIGNMENT         0x0000007f
+#define FILE_256_BYTE_ALIGNMENT         0x000000ff
+#define FILE_512_BYTE_ALIGNMENT         0x000001ff
+
+/* DEVICE_OBJECT.DeviceType */
+#define DEVICE_TYPE ULONG
+
 typedef struct _DEVICE_OBJECT {
   CSHORT Type;
   USHORT Size;
@@ -6195,7 +6196,7 @@ typedef NTSTATUS
   ULONG GpeNumber,
   KINTERRUPT_MODE Mode,
   BOOLEAN Shareable,
-  PGPE_SERVICE_ROUTINE2 ServiceRoutine,
+  PGPE_SERVICE_ROUTINE ServiceRoutine,
   PVOID ServiceContext,
   PVOID *ObjectContext);
 
@@ -7489,6 +7490,7 @@ extern POBJECT_TYPE NTSYSAPI PsProcessType;
  *                           Process Manager Types                            *
  ******************************************************************************/
 
+
 #define QUOTA_LIMITS_HARDWS_MIN_ENABLE  0x00000001
 #define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
 #define QUOTA_LIMITS_HARDWS_MAX_ENABLE  0x00000004
@@ -8291,6 +8293,8 @@ RtlStringFromGUID(
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
+
+
 NTSYSAPI
 BOOLEAN
 NTAPI
@@ -8861,7 +8865,9 @@ RtlWriteRegistryValue(
   IN PVOID ValueData,
   IN ULONG ValueLength);
 
-#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
 
 #if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
 NTSYSAPI
@@ -8872,8 +8878,11 @@ RtlPrefetchMemoryNonTemporal(
   IN SIZE_T Length);
 #endif
 
+
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
+
+
 NTSYSAPI
 VOID
 NTAPI
@@ -8910,10 +8919,13 @@ RtlHashUnicodeString(
   IN ULONG HashAlgorithm,
   OUT PULONG HashValue);
 
-#endif // (NTDDI_VERSION >= NTDDI_WINXP)
+
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 
+
+
 NTSYSAPI
 ULONG
 NTAPI
@@ -8963,10 +8975,13 @@ RtlCmEncodeMemIoResource(
   IN ULONGLONG Length,
   IN ULONGLONG Start);
 
+
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
+
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -8993,8 +9008,10 @@ NTAPI
 RtlGetEnabledExtendedFeatures(
   IN ULONG64 FeatureMask);
 
+
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
+
 #if !defined(MIDL_PASS)
 /* inline funftions */
 //DECLSPEC_DEPRECATED_DDK_WINXP
@@ -9141,6 +9158,8 @@ RtlInitEmptyUnicodeString(
 }
 
 #if defined(_AMD64_) || defined(_IA64_)
+
+
 static __inline
 LARGE_INTEGER
 NTAPI_INLINE
@@ -9167,7 +9186,11 @@ RtlExtendedLargeIntegerDivide(
     *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
   return ret;
 }
-#endif
+
+
+
+#endif /* defined(_AMD64_) || defined(_IA64_) */
+
 
 #if defined(_AMD64_)
 
@@ -9556,6 +9579,8 @@ KeClearEvent(
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
+
+
 #if defined(_NTDDK_) || defined(_NTIFS_)
 NTKERNELAPI
 VOID
@@ -9574,7 +9599,9 @@ ProbeForWrite(
   IN SIZE_T Length,
   IN ULONG Alignment);
 
+
 #if defined(SINGLE_GROUP_LEGACY_API)
+
 NTKERNELAPI
 VOID
 NTAPI
@@ -9597,7 +9624,9 @@ NTKERNELAPI
 KAFFINITY
 NTAPI
 KeQueryActiveProcessors(VOID);
-#endif
+
+
+#endif /* defined(SINGLE_GROUP_LEGACY_API) */
 
 #if !defined(_M_AMD64)
 
@@ -10121,7 +10150,6 @@ KeTryToAcquireGuardedMutex(
 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
-
 NTKERNELAPI
 VOID
 FASTCALL
@@ -10142,6 +10170,7 @@ KeQueryDpcWatchdogInformation(
   OUT PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
 
 #if defined(SINGLE_GROUP_LEGACY_API)
+
 NTKERNELAPI
 KAFFINITY
 NTAPI
@@ -10184,6 +10213,7 @@ KeDeregisterProcessorChangeCallback(
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
+
 ULONG64
 NTAPI
 KeQueryTotalCycleTimeProcess(
@@ -10364,7 +10394,6 @@ KeFlushWriteBuffer(VOID);
 /******************************************************************************
  *                       Memory manager Functions                             *
  ******************************************************************************/
-
 /* Alignment Macros */
 #define ALIGN_DOWN_BY(size, align) \
     ((ULONG_PTR)(size) & ~((ULONG_PTR)(align) - 1))
@@ -10418,7 +10447,7 @@ KeFlushWriteBuffer(VOID);
  *   IN ULONG Size)
  */
 #define BYTES_TO_PAGES(Size) \
-  (((Size) >> PAGE_SHIFT) + (((Size) & (PAGE_SIZE - 1)) != 0))
+  (((Size) + PAGE_SIZE - 1) >> PAGE_SHIFT)
 
 /* PVOID
  * PAGE_ALIGN(
@@ -10810,6 +10839,7 @@ MmAllocatePagesForMdlEx(
 #endif
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
+
 NTKERNELAPI
 LOGICAL
 NTAPI
@@ -10949,7 +10979,6 @@ SeGetWorldRights(
 #endif /* SE_NTFS_WORLD_CACHE */
 
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
 /******************************************************************************
  *                         Configuration Manager Functions                    *
  ******************************************************************************/
@@ -11022,6 +11051,40 @@ CmGetBoundTransaction(
  *                         I/O Manager Functions                              *
  ******************************************************************************/
 
+
+/*
+ * NTSTATUS
+ * IoAcquireRemoveLock(
+ *   IN PIO_REMOVE_LOCK  RemoveLock,
+ *   IN OPTIONAL PVOID  Tag)
+ */
+#if DBG
+#define IoAcquireRemoveLock(RemoveLock, Tag) \
+  IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK))
+#else
+#define IoAcquireRemoveLock(RemoveLock, Tag) \
+  IoAcquireRemoveLockEx(RemoveLock, Tag, "", 1, sizeof (IO_REMOVE_LOCK))
+#endif
+
+/*
+ * VOID
+ * IoAdjustPagingPathCount(
+ *   IN PLONG  Count,
+ *   IN BOOLEAN  Increment)
+ */
+#define IoAdjustPagingPathCount(_Count, \
+                                _Increment) \
+{ \
+  if (_Increment) \
+    { \
+      InterlockedIncrement(_Count); \
+    } \
+  else \
+    { \
+      InterlockedDecrement(_Count); \
+    } \
+}
+
 #if !defined(_M_AMD64)
 NTHALAPI
 VOID
@@ -11548,44 +11611,6 @@ IoAcquireRemoveLockEx(
   IN PCSTR File,
   IN ULONG Line,
   IN ULONG RemlockSize);
-
-#endif
-
-/*
- * NTSTATUS
- * IoAcquireRemoveLock(
- *   IN PIO_REMOVE_LOCK  RemoveLock,
- *   IN OPTIONAL PVOID  Tag)
- */
-#if DBG
-#define IoAcquireRemoveLock(RemoveLock, Tag) \
-  IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK))
-#else
-#define IoAcquireRemoveLock(RemoveLock, Tag) \
-  IoAcquireRemoveLockEx(RemoveLock, Tag, "", 1, sizeof (IO_REMOVE_LOCK))
-#endif
-
-/*
- * VOID
- * IoAdjustPagingPathCount(
- *   IN PLONG  Count,
- *   IN BOOLEAN  Increment)
- */
-#define IoAdjustPagingPathCount(_Count, \
-                                _Increment) \
-{ \
-  if (_Increment) \
-    { \
-      InterlockedIncrement(_Count); \
-    } \
-  else \
-    { \
-      InterlockedDecrement(_Count); \
-    } \
-}
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -12221,6 +12246,7 @@ IoSetTopLevelIrp(
 
 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
+
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 NTKERNELAPI
@@ -12380,7 +12406,6 @@ IoWMISetSingleItem(
   IN ULONG Version,
   IN ULONG ValueBufferSize,
   IN PVOID ValueBuffer);
-
 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 #if (NTDDI_VERSION >= NTDDI_WINXPSP1)
@@ -12414,8 +12439,8 @@ IoCsqInsertIrpEx(
   IN PIRP Irp,
   IN PIO_CSQ_IRP_CONTEXT Context OPTIONAL,
   IN PVOID InsertContext OPTIONAL);
+#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
 
-#endif
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 
@@ -14059,7 +14084,6 @@ ObDereferenceObjectDeferDeleteWithTag(
 #define PsGetCurrentProcess IoGetCurrentProcess
 
 #if !defined(_PSGETCURRENTTHREAD_)
-
 #define _PSGETCURRENTTHREAD_
 
 FORCEINLINE
@@ -14074,6 +14098,7 @@ PsGetCurrentThread(VOID)
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
+
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -14094,6 +14119,7 @@ PsTerminateSystemThread(
 
 #endif
 
+
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -14109,7 +14135,7 @@ PsWrapApcWow64Thread(
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 NTKERNELAPI
 NTSTATUS
-DDKCDECLAPI
+__cdecl
 WmiTraceMessage(
   IN TRACEHANDLE LoggerHandle,
   IN ULONG MessageFlags,
@@ -14135,7 +14161,7 @@ WmiQueryTraceInformation(
 /* FIXME: Get va_list from where? */
 NTKERNELAPI
 NTSTATUS
-DDKCDECLAPI
+__cdecl
 WmiTraceMessageVa(
   IN TRACEHANDLE LoggerHandle,
   IN ULONG MessageFlags,
@@ -14260,7 +14286,7 @@ EtwWriteEx(
 #ifndef _DBGNT_
 
 ULONG
-DDKCDECLAPI
+__cdecl
 DbgPrint(
   IN PCSTR Format,
   IN ...);
@@ -14268,7 +14294,7 @@ DbgPrint(
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTSYSAPI
 ULONG
-DDKCDECLAPI
+__cdecl
 DbgPrintReturnControlC(
   IN PCCH Format,
   IN ...);
@@ -14278,7 +14304,7 @@ DbgPrintReturnControlC(
 
 NTSYSAPI
 ULONG
-DDKCDECLAPI
+__cdecl
 DbgPrintEx(
   IN ULONG ComponentId,
   IN ULONG Level,
@@ -14434,8 +14460,11 @@ KdChangeOption(
   OUT PVOID OutBuffer,
   OUT PULONG OutBufferNeeded OPTIONAL);
 #endif
+/* Hardware Abstraction Layer Functions */
 
 #if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
+
+
 FORCEINLINE
 PVOID
 NTAPI
@@ -14500,6 +14529,8 @@ HalGetDmaAlignment(
   return alignment;
 }
 
+
+
 #endif
 
 #ifndef _NTTMAPI_
@@ -15156,14 +15187,19 @@ NtPropagationFailed(
  *                            ZwXxx Functions                                 *
  ******************************************************************************/
 
+
 /* Constants */
 #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
 #define ZwCurrentProcess() NtCurrentProcess()
 #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
 #define ZwCurrentThread() NtCurrentThread()
 
+
+
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
+
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -15429,9 +15465,11 @@ ZwQueryFullAttributesFile(
   IN POBJECT_ATTRIBUTES ObjectAttributes,
   OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation);
 
+
 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
-#if (NTDDI_VERSION >= NTDDI_WIN2003)
+
+#if (NTDDI_VERSION >= NTDDI_WS03)
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
@@ -15767,8 +15805,11 @@ ZwSinglePhaseReject(
 
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
+
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
+
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -15832,8 +15873,10 @@ ZwSetInformationKey(
   IN PVOID KeySetInformation,
   IN ULONG KeySetInformationLength);
 
+
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
+
 /******************************************************************************
  *                          Unsorted                                          *
  ******************************************************************************/