1 #ifndef _NTOS_EXFUNCS_H
2 #define _NTOS_EXFUNCS_H
4 /* EXECUTIVE ROUTINES ******************************************************/
6 VOID
ExReleaseResourceLite(PERESOURCE Resource
);
7 VOID
ExAcquireFastMutex (PFAST_MUTEX FastMutex
);
8 VOID
ExAcquireFastMutexUnsafe (PFAST_MUTEX FastMutex
);
9 BOOLEAN
ExAcquireResourceExclusive (PERESOURCE Resource
, BOOLEAN Wait
);
10 BOOLEAN
ExAcquireResourceExclusiveLite (PERESOURCE Resource
, BOOLEAN Wait
);
11 BOOLEAN
ExAcquireResourceSharedLite (
16 ExAcquireSharedStarveExclusive (
21 ExAcquireSharedWaitForExclusive (
26 ExAllocateFromNPagedLookasideList (
27 PNPAGED_LOOKASIDE_LIST LookSide
30 ExAllocateFromPagedLookasideList (
31 PPAGED_LOOKASIDE_LIST LookSide
39 * FUNCTION: Allocates memory from the nonpaged pool
41 * size = minimum size of the block to be allocated
42 * PoolType = the type of memory to use for the block (ignored)
44 * the address of the block if it succeeds
53 ExAllocatePoolWithQuota (
58 ExAllocatePoolWithQuotaTag (
64 ExAllocatePoolWithTag (
70 ExConvertExclusiveToSharedLite (
74 ExDeleteNPagedLookasideList (
75 PNPAGED_LOOKASIDE_LIST Lookaside
78 ExDeletePagedLookasideList (
79 PPAGED_LOOKASIDE_LIST Lookaside
86 ExDeleteResourceLite (
97 * FUNCTION: Releases previously allocated memory
99 * block = block to free
107 ExFreeToNPagedLookasideList (
108 PNPAGED_LOOKASIDE_LIST Lookaside
,
112 ExFreeToPagedLookasideList (
113 PPAGED_LOOKASIDE_LIST Lookaside
,
122 ExGetCurrentResourceThread (
126 ExGetExclusiveWaiterCount (
130 ExGetSharedWaiterCount (
134 ExInitializeFastMutex (
135 PFAST_MUTEX FastMutex
138 ExInitializeNPagedLookasideList (
139 PNPAGED_LOOKASIDE_LIST Lookaside
,
140 PALLOCATE_FUNCTION Allocate
,
148 ExInitializePagedLookasideList (
149 PPAGED_LOOKASIDE_LIST Lookaside
,
150 PALLOCATE_FUNCTION Allocate
,
158 ExInitializeResource (
162 ExInitializeResourceLite (
166 ExInitializeSListHead (
167 PSLIST_HEADER SListHead
170 ExInitializeWorkItem (
171 PWORK_QUEUE_ITEM Item
,
172 PWORKER_THREAD_ROUTINE Routine
,
179 PVOID InitialSegment
,
180 ULONG InitialSegmentSize
183 ExInterlockedAddLargeInteger (
184 PLARGE_INTEGER Addend
,
185 LARGE_INTEGER Increment
,
189 ExInterlockedAddUlong (
196 ExInterlockedRemoveEntryList (
197 PLIST_ENTRY ListHead
,
202 RemoveEntryFromList (
203 PLIST_ENTRY ListHead
,
207 ExInterlockedRemoveHeadList (
212 ExInterlockedInsertTailList (
213 PLIST_ENTRY ListHead
,
214 PLIST_ENTRY ListEntry
,
218 ExInterlockedInsertHeadList (
219 PLIST_ENTRY ListHead
,
220 PLIST_ENTRY ListEntry
,
225 PWORK_QUEUE_ITEM WorkItem
,
226 WORK_QUEUE_TYPE QueueType
233 ExReinitializeResourceLite (
241 ExReleaseFastMutexUnsafe (
249 ExReleaseResourceForThread (
251 ERESOURCE_THREAD ResourceThreadId
254 ExReleaseResourceForThreadLite (
256 ERESOURCE_THREAD ResourceThreadId
259 ExSystemTimeToLocalTime (
260 PLARGE_INTEGER SystemTime
,
261 PLARGE_INTEGER LocalTime
264 ExTryToAcquireFastMutex (
265 PFAST_MUTEX FastMutex
268 ExTryToAcquireResourceExclusiveLite (
274 InterlockedCompareExchange (
282 InterlockedCompareExchange (
287 #ifdef _GNU_H_WINDOWS_H
288 #ifdef InterlockedDecrement
289 #undef InterlockedDecrement
290 #undef InterlockedExchange
291 #undef InterlockedExchangeAdd
292 #undef InterlockedIncrement
293 #endif /* def InterlockedDecrement */
294 #endif /* def _GNU_H_WINDOWS_H */
297 InterlockedDecrement (
302 InterlockedExchange (
308 InterlockedExchangeAdd (
314 InterlockedIncrement (
319 ExInterlockedAllocateFromZone (
324 ExInterlockedFreeToZone (
330 ExInterlockedExtendZone (
337 ExInterlockedPopEntryList (
338 PSINGLE_LIST_ENTRY ListHead
,
342 ExInterlockedPushEntryList (
343 PSINGLE_LIST_ENTRY ListHead
,
344 PSINGLE_LIST_ENTRY ListEntry
,
348 ExInterlockedPushEntrySList (
349 PSLIST_HEADER ListHead
,
350 PSINGLE_LIST_ENTRY ListEntry
,
354 ExInterlockedPopEntrySList (
355 PSLIST_HEADER ListHead
,
363 ExIsObjectInFirstZoneSegment (
368 ExLocalTimeToSystemTime (
369 PLARGE_INTEGER LocalTime
,
370 PLARGE_INTEGER SystemTime
385 ExInterlockedDecrementLong (
390 ExInterlockedExchangeUlong (
396 ExInterlockedIncrementLong (
401 ExIsResourceAcquiredExclusiveLite (
405 ExIsResourceAcquiredSharedLite (
409 ExQueryDepthSListHead (
410 PSLIST_HEADER SListHead
413 #endif /* ndef _NTOS_EXFUNCS_H */