Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenextypes.h
Go to the documentation of this file.
00001 $if (_WDMDDK_ || _NTDDK_) 00002 /****************************************************************************** 00003 * Executive Types * 00004 ******************************************************************************/ 00005 $endif (_WDMDDK_ || _NTDDK_) 00006 $if (_WDMDDK_) 00007 #define EX_RUNDOWN_ACTIVE 0x1 00008 #define EX_RUNDOWN_COUNT_SHIFT 0x1 00009 #define EX_RUNDOWN_COUNT_INC (1 << EX_RUNDOWN_COUNT_SHIFT) 00010 00011 typedef struct _FAST_MUTEX { 00012 volatile LONG Count; 00013 PKTHREAD Owner; 00014 ULONG Contention; 00015 KEVENT Event; 00016 ULONG OldIrql; 00017 } FAST_MUTEX, *PFAST_MUTEX; 00018 00019 typedef enum _SUITE_TYPE { 00020 SmallBusiness, 00021 Enterprise, 00022 BackOffice, 00023 CommunicationServer, 00024 TerminalServer, 00025 SmallBusinessRestricted, 00026 EmbeddedNT, 00027 DataCenter, 00028 SingleUserTS, 00029 Personal, 00030 Blade, 00031 EmbeddedRestricted, 00032 SecurityAppliance, 00033 StorageServer, 00034 ComputeServer, 00035 WHServer, 00036 MaxSuiteType 00037 } SUITE_TYPE; 00038 00039 typedef enum _EX_POOL_PRIORITY { 00040 LowPoolPriority, 00041 LowPoolPrioritySpecialPoolOverrun = 8, 00042 LowPoolPrioritySpecialPoolUnderrun = 9, 00043 NormalPoolPriority = 16, 00044 NormalPoolPrioritySpecialPoolOverrun = 24, 00045 NormalPoolPrioritySpecialPoolUnderrun = 25, 00046 HighPoolPriority = 32, 00047 HighPoolPrioritySpecialPoolOverrun = 40, 00048 HighPoolPrioritySpecialPoolUnderrun = 41 00049 } EX_POOL_PRIORITY; 00050 00051 #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_)) 00052 #define LOOKASIDE_ALIGN 00053 #else 00054 #define LOOKASIDE_ALIGN /* FIXME: DECLSPEC_CACHEALIGN */ 00055 #endif 00056 00057 typedef struct _LOOKASIDE_LIST_EX *PLOOKASIDE_LIST_EX; 00058 00059 _IRQL_requires_same_ 00060 _Function_class_(ALLOCATE_FUNCTION) 00061 typedef PVOID 00062 (NTAPI *PALLOCATE_FUNCTION)( 00063 _In_ POOL_TYPE PoolType, 00064 _In_ SIZE_T NumberOfBytes, 00065 _In_ ULONG Tag); 00066 00067 _IRQL_requires_same_ 00068 _Function_class_(ALLOCATE_FUNCTION_EX) 00069 typedef PVOID 00070 (NTAPI *PALLOCATE_FUNCTION_EX)( 00071 _In_ POOL_TYPE PoolType, 00072 _In_ SIZE_T NumberOfBytes, 00073 _In_ ULONG Tag, 00074 _Inout_ PLOOKASIDE_LIST_EX Lookaside); 00075 00076 _IRQL_requires_same_ 00077 _Function_class_(FREE_FUNCTION) 00078 typedef VOID 00079 (NTAPI *PFREE_FUNCTION)( 00080 _In_ PVOID Buffer); 00081 00082 _IRQL_requires_same_ 00083 _Function_class_(FREE_FUNCTION_EX) 00084 typedef VOID 00085 (NTAPI *PFREE_FUNCTION_EX)( 00086 _In_ PVOID Buffer, 00087 _Inout_ PLOOKASIDE_LIST_EX Lookaside); 00088 00089 _IRQL_requires_same_ 00090 _Function_class_(CALLBACK_FUNCTION) 00091 typedef VOID 00092 (NTAPI CALLBACK_FUNCTION)( 00093 _In_opt_ PVOID CallbackContext, 00094 _In_opt_ PVOID Argument1, 00095 _In_opt_ PVOID Argument2); 00096 typedef CALLBACK_FUNCTION *PCALLBACK_FUNCTION; 00097 00098 #define GENERAL_LOOKASIDE_LAYOUT \ 00099 _ANONYMOUS_UNION union { \ 00100 SLIST_HEADER ListHead; \ 00101 SINGLE_LIST_ENTRY SingleListHead; \ 00102 } DUMMYUNIONNAME; \ 00103 USHORT Depth; \ 00104 USHORT MaximumDepth; \ 00105 ULONG TotalAllocates; \ 00106 _ANONYMOUS_UNION union { \ 00107 ULONG AllocateMisses; \ 00108 ULONG AllocateHits; \ 00109 } DUMMYUNIONNAME2; \ 00110 ULONG TotalFrees; \ 00111 _ANONYMOUS_UNION union { \ 00112 ULONG FreeMisses; \ 00113 ULONG FreeHits; \ 00114 } DUMMYUNIONNAME3; \ 00115 POOL_TYPE Type; \ 00116 ULONG Tag; \ 00117 ULONG Size; \ 00118 _ANONYMOUS_UNION union { \ 00119 PALLOCATE_FUNCTION_EX AllocateEx; \ 00120 PALLOCATE_FUNCTION Allocate; \ 00121 } DUMMYUNIONNAME4; \ 00122 _ANONYMOUS_UNION union { \ 00123 PFREE_FUNCTION_EX FreeEx; \ 00124 PFREE_FUNCTION Free; \ 00125 } DUMMYUNIONNAME5; \ 00126 LIST_ENTRY ListEntry; \ 00127 ULONG LastTotalAllocates; \ 00128 _ANONYMOUS_UNION union { \ 00129 ULONG LastAllocateMisses; \ 00130 ULONG LastAllocateHits; \ 00131 } DUMMYUNIONNAME6; \ 00132 ULONG Future[2]; 00133 00134 typedef struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE { 00135 GENERAL_LOOKASIDE_LAYOUT 00136 } GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE; 00137 00138 typedef struct _GENERAL_LOOKASIDE_POOL { 00139 GENERAL_LOOKASIDE_LAYOUT 00140 } GENERAL_LOOKASIDE_POOL, *PGENERAL_LOOKASIDE_POOL; 00141 00142 #define LOOKASIDE_CHECK(f) \ 00143 C_ASSERT(FIELD_OFFSET(GENERAL_LOOKASIDE,f) == FIELD_OFFSET(GENERAL_LOOKASIDE_POOL,f)) 00144 00145 LOOKASIDE_CHECK(TotalFrees); 00146 LOOKASIDE_CHECK(Tag); 00147 LOOKASIDE_CHECK(Future); 00148 00149 typedef struct LOOKASIDE_ALIGN _PAGED_LOOKASIDE_LIST { 00150 GENERAL_LOOKASIDE L; 00151 #if !defined(_AMD64_) && !defined(_IA64_) 00152 FAST_MUTEX Lock__ObsoleteButDoNotDelete; 00153 #endif 00154 } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST; 00155 00156 typedef struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST { 00157 GENERAL_LOOKASIDE L; 00158 #if !defined(_AMD64_) && !defined(_IA64_) 00159 KSPIN_LOCK Lock__ObsoleteButDoNotDelete; 00160 #endif 00161 } NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST; 00162 00163 #define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD (SLIST_ENTRY, Next)) 00164 00165 typedef struct _LOOKASIDE_LIST_EX { 00166 GENERAL_LOOKASIDE_POOL L; 00167 } LOOKASIDE_LIST_EX; 00168 00169 #if (NTDDI_VERSION >= NTDDI_VISTA) 00170 00171 #define EX_LOOKASIDE_LIST_EX_FLAGS_RAISE_ON_FAIL 0x00000001UL 00172 #define EX_LOOKASIDE_LIST_EX_FLAGS_FAIL_NO_RAISE 0x00000002UL 00173 00174 #define EX_MAXIMUM_LOOKASIDE_DEPTH_BASE 256 00175 #define EX_MAXIMUM_LOOKASIDE_DEPTH_LIMIT 1024 00176 00177 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ 00178 00179 typedef struct _EX_RUNDOWN_REF { 00180 _ANONYMOUS_UNION union { 00181 volatile ULONG_PTR Count; 00182 volatile PVOID Ptr; 00183 } DUMMYUNIONNAME; 00184 } EX_RUNDOWN_REF, *PEX_RUNDOWN_REF; 00185 00186 typedef struct _EX_RUNDOWN_REF_CACHE_AWARE *PEX_RUNDOWN_REF_CACHE_AWARE; 00187 00188 typedef enum _WORK_QUEUE_TYPE { 00189 CriticalWorkQueue, 00190 DelayedWorkQueue, 00191 HyperCriticalWorkQueue, 00192 MaximumWorkQueue 00193 } WORK_QUEUE_TYPE; 00194 00195 _IRQL_requires_same_ 00196 _Function_class_(WORKER_THREAD_ROUTINE) 00197 typedef VOID 00198 (NTAPI WORKER_THREAD_ROUTINE)( 00199 _In_ PVOID Parameter); 00200 typedef WORKER_THREAD_ROUTINE *PWORKER_THREAD_ROUTINE; 00201 00202 typedef struct _WORK_QUEUE_ITEM { 00203 LIST_ENTRY List; 00204 PWORKER_THREAD_ROUTINE WorkerRoutine; 00205 volatile PVOID Parameter; 00206 } WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM; 00207 00208 typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD; 00209 00210 typedef struct _OWNER_ENTRY { 00211 ERESOURCE_THREAD OwnerThread; 00212 _ANONYMOUS_UNION union { 00213 _ANONYMOUS_STRUCT struct { 00214 ULONG IoPriorityBoosted:1; 00215 ULONG OwnerReferenced:1; 00216 ULONG OwnerCount:30; 00217 } DUMMYSTRUCTNAME; 00218 ULONG TableSize; 00219 } DUMMYUNIONNAME; 00220 } OWNER_ENTRY, *POWNER_ENTRY; 00221 00222 typedef struct _ERESOURCE { 00223 LIST_ENTRY SystemResourcesList; 00224 POWNER_ENTRY OwnerTable; 00225 SHORT ActiveCount; 00226 USHORT Flag; 00227 volatile PKSEMAPHORE SharedWaiters; 00228 volatile PKEVENT ExclusiveWaiters; 00229 OWNER_ENTRY OwnerEntry; 00230 ULONG ActiveEntries; 00231 ULONG ContentionCount; 00232 ULONG NumberOfSharedWaiters; 00233 ULONG NumberOfExclusiveWaiters; 00234 #if defined(_WIN64) 00235 PVOID Reserved2; 00236 #endif 00237 _ANONYMOUS_UNION union { 00238 PVOID Address; 00239 ULONG_PTR CreatorBackTraceIndex; 00240 } DUMMYUNIONNAME; 00241 KSPIN_LOCK SpinLock; 00242 } ERESOURCE, *PERESOURCE; 00243 00244 /* ERESOURCE.Flag */ 00245 #define ResourceNeverExclusive 0x0010 00246 #define ResourceReleaseByOtherThread 0x0020 00247 #define ResourceOwnedExclusive 0x0080 00248 00249 #define RESOURCE_HASH_TABLE_SIZE 64 00250 00251 typedef struct _RESOURCE_HASH_ENTRY { 00252 LIST_ENTRY ListEntry; 00253 PVOID Address; 00254 ULONG ContentionCount; 00255 ULONG Number; 00256 } RESOURCE_HASH_ENTRY, *PRESOURCE_HASH_ENTRY; 00257 00258 typedef struct _RESOURCE_PERFORMANCE_DATA { 00259 ULONG ActiveResourceCount; 00260 ULONG TotalResourceCount; 00261 ULONG ExclusiveAcquire; 00262 ULONG SharedFirstLevel; 00263 ULONG SharedSecondLevel; 00264 ULONG StarveFirstLevel; 00265 ULONG StarveSecondLevel; 00266 ULONG WaitForExclusive; 00267 ULONG OwnerTableExpands; 00268 ULONG MaximumTableExpand; 00269 LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE]; 00270 } RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA; 00271 00272 /* Global debug flag */ 00273 #if DEVL 00274 extern ULONG NtGlobalFlag; 00275 #define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName)) 00276 #else 00277 #define IF_NTOS_DEBUG(FlagName) if(FALSE) 00278 #endif 00279 00280 $endif (_WDMDDK_) 00281 $if (_NTDDK_) 00282 typedef struct _ZONE_SEGMENT_HEADER { 00283 SINGLE_LIST_ENTRY SegmentList; 00284 PVOID Reserved; 00285 } ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER; 00286 00287 typedef struct _ZONE_HEADER { 00288 SINGLE_LIST_ENTRY FreeList; 00289 SINGLE_LIST_ENTRY SegmentList; 00290 ULONG BlockSize; 00291 ULONG TotalSegmentSize; 00292 } ZONE_HEADER, *PZONE_HEADER; 00293 00294 #define PROTECTED_POOL 0x80000000 00295 00296 $endif (_NTDDK_) 00297 $if (_NTIFS_) 00298 #define INVALID_PROCESSOR_INDEX 0xffffffff 00299 00300 #define EX_PUSH_LOCK ULONG_PTR 00301 #define PEX_PUSH_LOCK PULONG_PTR 00302 $endif (_NTIFS_) Generated on Sun May 27 2012 04:30:50 for ReactOS by
1.7.6.1
|