Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntddk.template.h
Go to the documentation of this file.
00001 /* 00002 * ntddk.h 00003 * 00004 * Windows NT Device Driver Kit 00005 * 00006 * This file is part of the ReactOS DDK package. 00007 * 00008 * Contributors: 00009 * Amine Khaldi 00010 * Timo Kreuzer (timo.kreuzer@reactos.org) 00011 * 00012 * THIS SOFTWARE IS NOT COPYRIGHTED 00013 * 00014 * This source code is offered for use in the public domain. You may 00015 * use, modify or distribute it freely. 00016 * 00017 * This code is distributed in the hope that it will be useful but 00018 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00019 * DISCLAIMED. This includes but is not limited to warranties of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00021 * 00022 */ 00023 00024 #pragma once 00025 00026 #define _NTDDK_ 00027 00028 #if !defined(_NTHAL_) && !defined(_NTIFS_) 00029 #define _NTDDK_INCLUDED_ 00030 #define _DDK_DRIVER_ 00031 #endif 00032 00033 /* Dependencies */ 00034 00035 #define NT_INCLUDED 00036 #define _CTYPE_DISABLE_MACROS 00037 00038 #include <wdm.h> 00039 #include <excpt.h> 00040 #include <ntdef.h> 00041 #include <ntstatus.h> 00042 #include <mce.h> 00043 #include <bugcodes.h> 00044 #include <ntiologc.h> 00045 00046 #include <stdarg.h> // FIXME 00047 #include <basetyps.h> // FIXME 00048 00049 00050 #ifdef __cplusplus 00051 extern "C" { 00052 #endif 00053 00054 /* GUID and UUID */ 00055 #ifndef _NTLSA_IFS_ 00056 #ifndef _NTLSA_AUDIT_ 00057 #define _NTLSA_AUDIT_ 00058 00059 #ifndef GUID_DEFINED 00060 #include <guiddef.h> 00061 #endif 00062 00063 #endif /* _NTLSA_AUDIT_ */ 00064 #endif /* _NTLSA_IFS_ */ 00065 00066 typedef GUID UUID; 00067 00068 struct _LOADER_PARAMETER_BLOCK; 00069 struct _CREATE_DISK; 00070 struct _DRIVE_LAYOUT_INFORMATION_EX; 00071 struct _SET_PARTITION_INFORMATION_EX; 00072 00073 typedef struct _BUS_HANDLER *PBUS_HANDLER; 00074 typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT; 00075 #if defined(_NTHAL_INCLUDED_) 00076 typedef struct _KAFFINITY_EX *PKAFFINITY_EX; 00077 #endif 00078 typedef struct _PEB *PPEB; 00079 00080 #ifndef _NTIMAGE_ 00081 00082 typedef struct _IMAGE_NT_HEADERS *PIMAGE_NT_HEADERS32; 00083 typedef struct _IMAGE_NT_HEADERS64 *PIMAGE_NT_HEADERS64; 00084 00085 #ifdef _WIN64 00086 typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS; 00087 #else 00088 typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; 00089 #endif 00090 00091 #endif /* _NTIMAGE_ */ 00092 00093 $define (_NTDDK_) 00094 $include (extypes.h) 00095 $include (iotypes.h) 00096 $include (haltypes.h) 00097 $include (ketypes.h) 00098 $include (kdtypes.h) 00099 $include (mmtypes.h) 00100 $include (pstypes.h) 00101 $include (rtltypes.h) 00102 $include (setypes.h) 00103 00104 #if defined(_M_IX86) 00105 $include(x86/ke.h) 00106 $include(x86/mm.h) 00107 #elif defined(_M_AMD64) 00108 $include(amd64/ke.h) 00109 $include(amd64/mm.h) 00110 #elif defined(_M_IA64) 00111 $include(ia64/ke.h) 00112 #elif defined(_M_PPC) 00113 $include(ppc/ke.h) 00114 #elif defined(_M_MIPS) 00115 $include(mips/ke.h) 00116 #elif defined(_M_ARM) 00117 $include(arm/ke.h) 00118 #else 00119 #error Unknown Architecture 00120 #endif 00121 00122 $include (exfuncs.h) 00123 $include (halfuncs.h) 00124 $include (iofuncs.h) 00125 $include (kdfuncs.h) 00126 $include (kefuncs.h) 00127 $include (mmfuncs.h) 00128 $include (psfuncs.h) 00129 $include (rtlfuncs.h) 00130 $include (sefuncs.h) 00131 $include (zwfuncs.h) 00132 00133 00134 /* UNSORTED */ 00135 00136 #define VER_SET_CONDITION(ConditionMask, TypeBitMask, ComparisonType) \ 00137 ((ConditionMask) = VerSetConditionMask((ConditionMask), \ 00138 (TypeBitMask), (ComparisonType))) 00139 00140 #if (NTDDI_VERSION >= NTDDI_WIN2K) 00141 NTSYSAPI 00142 ULONGLONG 00143 NTAPI 00144 VerSetConditionMask( 00145 IN ULONGLONG ConditionMask, 00146 IN ULONG TypeMask, 00147 IN UCHAR Condition); 00148 #endif 00149 00150 typedef struct _KERNEL_USER_TIMES { 00151 LARGE_INTEGER CreateTime; 00152 LARGE_INTEGER ExitTime; 00153 LARGE_INTEGER KernelTime; 00154 LARGE_INTEGER UserTime; 00155 } KERNEL_USER_TIMES, *PKERNEL_USER_TIMES; 00156 00157 /* NtXxx Functions */ 00158 00159 typedef enum _SYSTEM_FIRMWARE_TABLE_ACTION { 00160 SystemFirmwareTable_Enumerate, 00161 SystemFirmwareTable_Get 00162 } SYSTEM_FIRMWARE_TABLE_ACTION; 00163 00164 typedef struct _SYSTEM_FIRMWARE_TABLE_INFORMATION { 00165 ULONG ProviderSignature; 00166 SYSTEM_FIRMWARE_TABLE_ACTION Action; 00167 ULONG TableID; 00168 ULONG TableBufferLength; 00169 UCHAR TableBuffer[ANYSIZE_ARRAY]; 00170 } SYSTEM_FIRMWARE_TABLE_INFORMATION, *PSYSTEM_FIRMWARE_TABLE_INFORMATION; 00171 00172 typedef NTSTATUS 00173 (__cdecl *PFNFTH)( 00174 _Inout_ PSYSTEM_FIRMWARE_TABLE_INFORMATION SystemFirmwareTableInfo); 00175 00176 typedef struct _SYSTEM_FIRMWARE_TABLE_HANDLER { 00177 ULONG ProviderSignature; 00178 BOOLEAN Register; 00179 PFNFTH FirmwareTableHandler; 00180 PVOID DriverObject; 00181 } SYSTEM_FIRMWARE_TABLE_HANDLER, *PSYSTEM_FIRMWARE_TABLE_HANDLER; 00182 00183 typedef ULONG_PTR 00184 (NTAPI *PDRIVER_VERIFIER_THUNK_ROUTINE)( 00185 _In_ PVOID Context); 00186 00187 typedef struct _DRIVER_VERIFIER_THUNK_PAIRS { 00188 PDRIVER_VERIFIER_THUNK_ROUTINE PristineRoutine; 00189 PDRIVER_VERIFIER_THUNK_ROUTINE NewRoutine; 00190 } DRIVER_VERIFIER_THUNK_PAIRS, *PDRIVER_VERIFIER_THUNK_PAIRS; 00191 00192 #define DRIVER_VERIFIER_SPECIAL_POOLING 0x0001 00193 #define DRIVER_VERIFIER_FORCE_IRQL_CHECKING 0x0002 00194 #define DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES 0x0004 00195 #define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS 0x0008 00196 #define DRIVER_VERIFIER_IO_CHECKING 0x0010 00197 00198 #define SHARED_GLOBAL_FLAGS_ERROR_PORT_V 0x0 00199 #define SHARED_GLOBAL_FLAGS_ERROR_PORT (1UL << SHARED_GLOBAL_FLAGS_ERROR_PORT_V) 00200 00201 #define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V 0x1 00202 #define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED (1UL << SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V) 00203 00204 #define SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V 0x2 00205 #define SHARED_GLOBAL_FLAGS_VIRT_ENABLED (1UL << SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V) 00206 00207 #define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V 0x3 00208 #define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED \ 00209 (1UL << SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V) 00210 00211 #define SHARED_GLOBAL_FLAGS_SPARE_V 0x4 00212 #define SHARED_GLOBAL_FLAGS_SPARE \ 00213 (1UL << SHARED_GLOBAL_FLAGS_SPARE_V) 00214 00215 #define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V 0x5 00216 #define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED \ 00217 (1UL << SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V) 00218 00219 #define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V 0x6 00220 #define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED \ 00221 (1UL << SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V) 00222 00223 #define EX_INIT_BITS(Flags, Bit) \ 00224 *((Flags)) |= (Bit) // Safe to use before concurrently accessible 00225 00226 #define EX_TEST_SET_BIT(Flags, Bit) \ 00227 InterlockedBitTestAndSet ((PLONG)(Flags), (Bit)) 00228 00229 #define EX_TEST_CLEAR_BIT(Flags, Bit) \ 00230 InterlockedBitTestAndReset ((PLONG)(Flags), (Bit)) 00231 00232 #define PCCARD_MAP_ERROR 0x01 00233 #define PCCARD_DEVICE_PCI 0x10 00234 00235 #define PCCARD_SCAN_DISABLED 0x01 00236 #define PCCARD_MAP_ZERO 0x02 00237 #define PCCARD_NO_TIMER 0x03 00238 #define PCCARD_NO_PIC 0x04 00239 #define PCCARD_NO_LEGACY_BASE 0x05 00240 #define PCCARD_DUP_LEGACY_BASE 0x06 00241 #define PCCARD_NO_CONTROLLERS 0x07 00242 00243 #define MAXIMUM_EXPANSION_SIZE (KERNEL_LARGE_STACK_SIZE - (PAGE_SIZE / 2)) 00244 00245 /* Filesystem runtime library routines */ 00246 00247 #if (NTDDI_VERSION >= NTDDI_WIN2K) 00248 _Must_inspect_result_ 00249 NTKERNELAPI 00250 BOOLEAN 00251 NTAPI 00252 FsRtlIsTotalDeviceFailure( 00253 _In_ NTSTATUS Status); 00254 #endif 00255 00256 #ifdef __cplusplus 00257 } 00258 #endif Generated on Sun May 27 2012 04:33:23 for ReactOS by
1.7.6.1
|