1.3.5 Driver Threads, Dispatcher Objects, and Resources
-
KeDelayExecutionThread
-
Puts the current thread into an alertable or nonalertable wait state for a
given interval.
-
ExInitializeWorkItem
-
Initializes a work queue item with a caller-supplied context and callback
routine to be queued for execution when a system worker thread is given
control.
-
ExQueueWorkItem
-
Queues an initialized work queue item so the driver-supplied routine will be
called when a system worker thread is given control.
-
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.
-
ExTryToAcquireResourceExclusiveLite
-
Either acquires a given resource for exclusive access immediately or returns
FALSE.
-
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.
-
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 optionally supplies 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 was set,
expires.
-
KeReadStateTimer
-
Returns whether a given timer object is set to the Signaled state.
-
KeSetEvent
-
Returns the previous state of a given event object and sets the event to the
Signaled state if not already Signaled.
-
KeClearEvent
-
Resets the event to the Not-Signaled state.
-
KeResetEvent
-
Returns the previous state of a given 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 acqired, and gives the calling thread ownership with
APCs disabled.
-
ExTryToAcquireFastMutex
-
Either 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, supplying a (runtime) priority boost for
waiting threads if the release sets the semaphore to the Signaled state,
augmenting the semaphore count by a given value, and specifying 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 altertable 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.
-
IoGetCurrentProcess
-
Returns a handle for the process of the current thread.
-
PsGetCurrentProcess
-
Returns a pointer to the process of the current thread.
-
KeEnterCriticalRegion
-
Temporarily disables the delivery of special kernel APCs while a highest-level
driver is running in the context of the user-mode thread that requested the
current I/O operation.
-
KeLeaveCriticalRegion
-
Re-enables the delivery of special kernel APCs again as soon as possible.
-
ZwSetInformationThread
-
Sets the priority of a given thread for which the caller has a handle.