Driver Threads, Dispatcher Objects, and Resources
- KeDelayExecutionThread
-
Puts the current thread into an alertable or nonalertable wait state for a given interval.
- ExInitializeResourceLite
-
Initializes a resource, for which the caller provides the storage, to be used for synchronization by a set of threads (shared readers, exclusive writers).
- ExReinitializeResourceLite
-
Reinitializes an existing resource variable.
- ExAcquireResourceExclusiveLite
-
Acquires an initialized resource for exclusive access by the calling thread and optionally waits for the resource to be acquired.
- ExAcquireResourceSharedLite
-
Acquires an initialized resource for shared access by the calling thread and optionally waits for the resource to be acquired.
- ExAcquireSharedStarveExclusive
-
Acquires a given resource for shared access without waiting for any pending attempts to acquire exclusive access to the same resource.
- ExAcquireSharedWaitForExclusive
-
Acquires a given resource for shared access, optionally waiting for any pending exclusive waiters to acquire and release the resource first.
- ExIsResourceAcquiredExclusiveLite
-
Returns whether the calling thread has exclusive access to a given resource.
- ExIsResourceAcquiredSharedLite
-
Returns how many times the calling thread has acquired shared access to a given resource.
- ExGetExclusiveWaiterCount
-
Returns the number of threads currently waiting to acquire a given resource for exclusive access.
- ExGetSharedWaiterCount
-
Returns the number of threads currently waiting to acquire a given resource for shared access.
- ExConvertExclusiveToSharedLite
-
Converts a given resource from acquired for exclusive access to acquired for shared access.
- ExGetCurrentResourceThread
-
Returns the thread ID of the current thread.
- ExReleaseResourceForThreadLite
-
Releases a given resource that was acquired by the given thread.
- ExDeleteResourceLite
-
Deletes a caller-initialized resource from the system's resource list.
- IoQueueWorkItem
-
Queues an initialized work queue item so the driver-supplied routine will be called when a system worker thread is given control.
- KeSetTimer
-
Sets the absolute or relative interval at which a timer object will be set to the Signaled state, and optionally supplies a timer DPC to be executed when the interval expires.
- KeSetTimerEx
-
Sets the absolute or relative interval at which a timer object will be set to the Signaled state. Optionally supplies a timer DPC to be executed when the interval expires and a recurring interval for the timer.
- KeCancelTimer
-
Cancels a timer object before the interval passed to KeSetTimer expires. Dequeues a timer DPC before the timer interval (if any) expires.
- KeReadStateTimer
-
Returns TRUE if a given timer object is set to the Signaled state.
- KeSetEvent
-
Returns the previous state of a given event object and sets the event (if not already Signaled) to the Signaled state.
- KeClearEvent
-
Resets an event to the Not-Signaled state.
- KeResetEvent
-
Returns the previous state of an event object and resets the event to the Not-Signaled state.
- KeReadStateEvent
-
Returns the current state (nonzero for Signaled or zero for Not-Signaled) of a given event object.
- ExAcquireFastMutex
-
Acquires an initialized fast mutex, possibly after putting the caller into a wait state until it is acquired, and gives the calling thread ownership with APCs disabled.
- ExTryToAcquireFastMutex
-
Acquires the given fast mutex immediately for the caller with APCs disabled, or returns FALSE.
- ExReleaseFastMutex
-
Releases ownership of a fast mutex that was acquired with ExAcquireFastMutex or ExTryToAcquireFastMutex.
- ExAcquireFastMutexUnsafe
-
Acquires an initialized fast mutex, possibly after putting the caller into a wait state until it is acquired.
- ExReleaseFastMutexUnsafe
-
Releases ownership of a fast mutex that was acquired with ExAcquireFastMutexUnsafe.
- KeReleaseMutex
-
Releases a given mutex object, specifying whether the caller will call one of the KeWaitXxx routines as soon as KeReleaseMutex returns the previous value of the mutex state (a zero for Signaled; otherwise, Not-Signaled).
- KeReadStateMutex
-
Returns the current state (one for Signaled or any other value for Not-Signaled) of a given mutex object.
- KeReleaseSemaphore
-
Releases a given semaphore object. Supplies a (run-time) priority boost for waiting threads if the release sets the semaphore to the Signaled state. Augments the semaphore count by a given value and specifies whether the caller will call one of the KeWaitXxx routines as soon as KeReleaseSemaphore returns.
- KeReadStateSemaphore
-
Returns the current state (zero for Not-Signaled or a positive value for Signaled) of a given semaphore object.
- KeWaitForSingleObject
-
Puts the current thread into an alertable or nonalertable wait state until a given dispatcher object is set to the Signaled state or (optionally) until the wait times out.
- KeWaitForMutexObject
-
Puts the current thread into an alertable or nonalertable wait state until a given mutex is set to the Signaled state or (optionally) until the wait times out.
- KeWaitForMultipleObjects
-
Puts the current thread into an alertable or nonalertable wait state until any one or all of a number of dispatcher objects are set to the Signaled state or (optionally) until the wait times out.
- PsGetCurrentThread
-
Returns a pointer to the current thread.
- KeGetCurrentThread
-
Returns a pointer to the opaque thread object that represents the current thread.
- IoGetCurrentProcess
-
Returns a pointer to the process of the current thread.
- PsGetCurrentProcess
-
Returns a pointer to the process of the current thread.
- KeEnterCriticalRegion
-
Temporarily disables the delivery of normal kernel APCs while a highest-level driver is running in the context of the user-mode thread that requested the current I/O operation. Special kernel-mode APCs are still delivered.
- KeLeaveCriticalRegion
-
Reenables, as soon as possible, the delivery of normal kernel-mode APCs that were disabled by a preceding call to KeEnterCriticalRegion.
- KeAreApcsDisabled
-
Returns TRUE if normal kernel-mode APCs are disabled.
- KeSaveFloatingPointState
-
Saves the current thread's nonvolatile floating-point context so that the caller can carry out its own floating-point operations.
- KeRestoreFloatingPointState
-
Restores the previous nonvolatile floating-point context that was saved with KeSaveFloatingPointState.
- ZwSetInformationThread
-
Sets the priority of a given thread for which the caller has a handle.
- PsGetCurrentProcessId
-
Returns the system-assigned identifier of the current process.
- PsGetCurrentThreadId
-
Returns the system-assigned identifier of the current thread.
- PsSetCreateProcessNotifyRoutine
-
Registers a highest level driver's callback routine that is subsequently executed whenever a new process is created or existing process deleted.
- PsSetCreateThreadNotifyRoutine
-
Registers a highest level driver's callback routine that is subsequently executed whenever a new thread is created or an existing thread is deleted.
- PsSetLoadImageNotifyRoutine
-
Registers a callback routine for a highest level system-profiling driver. The callback routine is subsequently executed whenever a new image is loaded for execution.
Send comments about this topic to Microsoft
Build date: 4/2/2012