wdm.h header

This header contains reference material that includes specific details about the routines, structures, and data types that you will need to use to write kernel-mode drivers.

For more information, see:

wdm.h contains the following programming interfaces:

Functions

 
_BitTest64

The _BitTest64 function...
_BitTestAndComplement64

The _BitTestAndComplement64 function...
_BitTestAndReset64

The _BitTestAndReset64 function...
_BitTestAndSet64

The _BitTestAndSet64 function...
_ReadWriteBarrier

Describes the ReadWriteBarrier~r2 function (wdm.h).
ADDRESS_AND_SIZE_TO_SPAN_PAGES

Learn more about: ADDRESS_AND_SIZE_TO_SPAN_PAGES
AppendTailList

The AppendTailList routine appends a doubly linked list of LIST_ENTRY structures to the tail of another doubly linked list of LIST_ENTRY structures.
ARM64_SYSREG_CRM

Returns the CRn field for a given ARM system register.
ARM64_SYSREG_CRN

Learn how the method returns the CRn field for a given ARM system register.
ARM64_SYSREG_OP1

Returns the op1 field for a given ARM system register.
ARM64_SYSREG_OP2

Returns the op2 field for a given ARM system register.
ASSERTMSG

ASSERTMSG tests an expression. If the expression is false, it breaks into the kernel debugger and sends it the specified message.
BarrierAfterRead

Describes the BarrierAfterRead function (wdm.h).
BarrierAfterRead

Describes the BarrierAfterRead~r1 function (wdm.h).
BarrierAfterRead

Describes the BarrierAfterRead~r2 function (wdm.h).
BYTE_OFFSET

Learn more about: BYTE_OFFSET
BYTES_TO_PAGES

Learn more about: BYTES_TO_PAGES
ClfsAddLogContainer

The ClfsAddLogContainer routine adds a container to a CLFS log.
ClfsAddLogContainerSet

The ClfsAddLogContainerSet routine atomically adds a set of containers to a CLFS log.
ClfsAdvanceLogBase

The ClfsAdvanceLogBase routine sets the base LSN of a CLFS stream.
ClfsAlignReservedLog

The ClfsAlignReservedLog routine calculates the size of the space that must be reserved for a specified set of records. The size calculation includes the space required for headers and the space required for sector alignment.
ClfsAllocReservedLog

The ClfsAllocReservedLog routine reserves space in a marshalling area for a set of records.
ClfsCloseAndResetLogFile

The ClfsCloseAndResetLogFile routine releases all references to a specified log file object and marks its associated stream for reset.
ClfsCloseLogFileObject

The ClfsCloseLogFileObject routine releases all references to a log file object.
ClfsCreateLogFile

The ClfsCreateLogFile routine creates or opens a CLFS stream. If necessary, ClfsCreateLogFile also creates the underlying physical log that holds the stream's records.
ClfsCreateMarshallingArea

The ClfsCreateMarshallingArea routine creates a marshalling area for a CLFS stream and returns a pointer to an opaque context that represents the new marshalling area.
ClfsCreateMarshallingAreaEx

Initalizes a marshalling area for a physical or client log file stream.
ClfsCreateScanContext

The ClfsCreateScanContext routine creates a scan context that can be used to iterate over the containers of a specified CLFS log.
ClfsDeleteLogByPointer

The ClfsDeleteLogByPointer routine marks a CLFS stream for deletion.
ClfsDeleteLogFile

The ClfsDeleteLogFile routine marks a CLFS stream for deletion.
ClfsDeleteMarshallingArea

The ClfsDeleteMarshallingArea routine deletes a marshalling area.
ClfsFlushBuffers

The ClfsFlushBuffers routine forces all log I/O blocks in a specified marshalling area to stable storage.
ClfsFlushToLsn

The ClfsFlushToLsn routine forces, to stable storage, all records that have an LSN less than or equal to a specified LSN.
ClfsGetContainerName

The ClfsGetContainerName routine returns the path name of a specified container.
ClfsGetIoStatistics

The ClfsGetIoStatistics routine returns I/O statistics for a specified CLFS log.
ClfsLsnBlockOffset

The ClfsLsnBlockOffset routine returns the sector-aligned block offset contained in a specified LSN.
ClfsLsnContainer

The ClfsLsnContainer routine returns the logical container identifier contained in a specified LSN.
ClfsLsnCreate

The ClfsLsnCreate routine creates a log sequence number (LSN), given a container identifier, a block offset, and a record sequence number.
ClfsLsnEqual

The ClfsLsnEqual routine determines whether two LSNs from the same stream are equal.
ClfsLsnGreater

The ClfsLsnGreater routine determines whether one LSN is greater than another LSN. The two LSNs must be from the same stream.
ClfsLsnLess

The ClfsLsnLess routine determines whether one LSN is less than another LSN. The two LSNs must be from the same stream.
ClfsLsnNull

The ClfsLsnNull routine determines whether a specified LSN is equal to the smallest possible LSN, CLFS_LSN_NULL.
ClfsLsnRecordSequence

The ClfsLsnRecordSequence routine returns the record sequence number contained in a specified LSN.
ClfsMgmtDeregisterManagedClient

The ClfsMgmtDeregisterManagedClient routine removes the connection between a client and a log, so that the client no longer manages the log.
ClfsMgmtHandleLogFileFull

The ClfsMgmtHandleLogFileFull routine attempts to make more space available in a log. It might make more space available by adding containers to the log, or it might ask clients to move their log tails.
ClfsMgmtInstallPolicy

The ClfsMgmtInstallPolicy routine adds a CLFS_MGMT_POLICY structure to a physical log.
ClfsMgmtQueryPolicy

The ClfsMgmtQueryPolicy routine retrieves a specific CLFS_MGMT_POLICY structure for a log.
ClfsMgmtRegisterManagedClient

The ClfsMgmtRegisterManagedClient routine creates a client that will manage a CLFS log.
ClfsMgmtRemovePolicy

The ClfsMgmtRemovePolicy routine resets a log's CLFS_MGMT_POLICY structure to its default value.
ClfsMgmtSetLogFileSize

The ClfsMgmtSetLogFileSize routine adds containers to a log or deletes containers from a log.
ClfsMgmtSetLogFileSizeAsClient

The ClfsMgmtSetLogFileSizeAsClient routine sets the log file size by adding containers to a client log or deleting containers from a client log.
ClfsMgmtTailAdvanceFailure

The ClfsMgmtTailAdvanceFailure routine notifies CLFS management that the client could not advance the log's tail.
ClfsQueryLogFileInformation

The ClfsQueryLogFileInformation routine returns metadata and state information for a specified CLFS stream or its underlying physical log or both.
ClfsReadLogRecord

The ClfsReadLogRecord routine reads a target record in a CLFS stream and returns a read context that the caller can use to read the records preceding or following it in the stream.
ClfsReadNextLogRecord

The ClfsReadNextLogRecord routine reads the next record in a sequence, relative to the current record in a read context.
ClfsReadPreviousRestartArea

The ClfsReadPreviousRestartArea routine reads the previous restart record relative to the current record in a read context.
ClfsReadRestartArea

The ClfsReadRestartArea routine reads the restart record that was most recently written to a specified CLFS stream.
ClfsRemoveLogContainer

The ClfsRemoveLogContainer routine removes a container from a CLFS log.
ClfsRemoveLogContainerSet

The ClfsRemoveLogContainerSet routine atomically removes a set of containers from a CLFS log.
ClfsReserveAndAppendLog

The ClfsReserveAndAppendLog routine reserves space in a marshalling area or appends a record to a marshalling area or does both atomically.
ClfsReserveAndAppendLogAligned

The ClfsReserveAndAppendLogAligned routine reserves space in a marshalling area or appends a record to a marshalling area or does both atomically. The record's data is aligned on specified boundaries.
ClfsScanLogContainers

The ClfsScanLogContainers routine retrieves descriptive information for a sequence of containers that belong to a particular CLFS log.
ClfsSetArchiveTail

The ClfsSetArchiveTail routine sets the archive tail of a CLFS log to a specified LSN.
ClfsSetEndOfLog

The ClfsSetEndOfLog routine truncates a CLFS stream.
ClfsSetLogFileInformation

The ClfsSetLogFileInformation routine sets metadata and state information for a specified stream and its underlying physical log.
ClfsTerminateReadLog

The ClfsTerminateReadLog routine invalidates a specified read context after freeing resources associated with the context.
ClfsWriteRestartArea

The ClfsWriteRestartArea routine atomically appends a new restart record to a CLFS stream, flushes the restart record to stable storage, and optionally updates the base LSN of the stream.
CmCallbackGetKeyObjectID

The CmCallbackGetKeyObjectID routine retrieves the unique identifier and object name that are associated with a specified registry key object.
CmCallbackGetKeyObjectIDEx

The CmCallbackGetKeyObjectIDEx routine retrieves the unique identifier and object name that are associated with a specified registry key object.
CmCallbackReleaseKeyObjectIDEx

The CmCallbackReleaseKeyObjectIDEx routine frees an object name string obtained from the CmCallbackGetKeyObjectIDEx routine.
CmGetBoundTransaction

The CmGetBoundTransaction routine returns a pointer to the transaction object that represents the transaction, if any, that is associated with a specified registry key object.
CmGetCallbackVersion

The CmGetCallbackVersion routine retrieves the major and minor version numbers for the current version of the configuration manager's registry callback feature.
CmRegisterCallback

The CmRegisterCallback routine is obsolete for Windows Vista and later operating system versions. Use CmRegisterCallbackEx instead.The CmRegisterCallback routine registers a RegistryCallback routine.
CmRegisterCallbackEx

The CmRegisterCallbackEx routine registers a RegistryCallback routine.
CmSetCallbackObjectContext

The CmSetCallbackObjectContext routine associates specified context information with a specified registry object.
CmUnRegisterCallback

The CmUnRegisterCallback routine unregisters a RegistryCallback routine that a CmRegisterCallback or CmRegisterCallbackEx routine previously registered.
DbgBreakPoint

The DbgBreakPoint routine breaks into the kernel debugger.
DbgBreakPointWithStatus

The DbgBreakPointWithStatus routine breaks into the kernel debugger and sends the value of Status to the debugger.
DbgPrint

The DbgPrint routine sends a message to the kernel debugger.
DbgPrintEx

The DbgPrintEx routine sends a string to the kernel debugger if the conditions you specify are met.
EtwActivityIdControl

The EtwActivityIdControl function creates, queries, and sets the current activity identifier.
EtwEventEnabled

The EtwEventEnabled function verifies whether an event is enabled.
EtwProviderEnabled

The EtwProviderEnabled function verifies that a provider is enabled for event logging at a specified level and keyword.
EtwRegister

The EtwRegister function registers the event provider and must be called before a provider can start tracing.
EtwSetInformation

The EtwSetInformation provides special-purpose information to modify a kernel-mode ETW provider registration.
EtwUnregister

The EtwUnregister function unregisters the event provider and must be called before the provider exits.
EtwWrite

The EtwWrite function is a tracing function for publishing events in your kernel-mode driver code.
EtwWriteEx

The EtwWriteEx function is a tracing function for publishing events that support filtering in your kernel-mode driver code.
EtwWriteString

The EventWriteString function is a tracing function that you can use when no sophisticated data is required. This function is similar to a debug print statement.
EtwWriteTransfer

The EtwWriteTransfer function marks an event that links two activities together; this type of event is referred to as a transfer event.
ExAcquireFastMutex

Learn more about the ExAcquireFastMutex routine.
ExAcquireFastMutexUnsafe

Learn more about the ExAcquireFastMutexUnsafe routine.
ExAcquirePushLockExclusive

Acquires the given push lock for exclusive access by the calling thread.
ExAcquirePushLockShared

Acquires the given push lock for shared access by the calling thread.
ExAcquireResourceExclusiveLite

The ExAcquireResourceExclusiveLite routine acquires the given resource for exclusive access by the calling thread.
ExAcquireResourceSharedLite

The ExAcquireResourceSharedLite routine acquires the given resource for shared access by the calling thread.
ExAcquireRundownProtection

The ExAcquireRundownProtection routine tries to acquire run-down protection on a shared object so the caller can safely access the object.
ExAcquireRundownProtectionCacheAware

This topic describes the ExAcquireRundownProtectionCacheAware function.
ExAcquireRundownProtectionCacheAwareEx

This topic describes the ExAcquireRundownProtectionCacheAwareEx function.
ExAcquireRundownProtectionEx

The ExAcquireRundownProtectionEx routine tries to acquire run-down protection on a shared object so the caller can safely access the object.
ExAcquireSharedStarveExclusive

The ExAcquireSharedStarveExclusive routine acquires a given resource for shared access without waiting for any pending attempts to acquire exclusive access to the same resource.
ExAcquireSharedWaitForExclusive

The ExAcquireSharedWaitForExclusive routine acquires the given resource for shared access if shared access can be granted and there are no exclusive waiters.
ExAcquireSpinLockExclusive

The ExAcquireSpinLockExclusive routine acquires a spin lock for exclusive access by the caller, and raises the IRQL to DISPATCH_LEVEL.
ExAcquireSpinLockExclusiveAtDpcLevel

Learn more about the ExAcquireSpinLockExclusiveAtDpcLevel routine.
ExAcquireSpinLockShared

The ExAcquireSpinLockShared routine acquires a spin lock for shared access by the caller, and raises the IRQL to DISPATCH_LEVEL.
ExAcquireSpinLockSharedAtDpcLevel

Learn more about the ExAcquireSpinLockSharedAtDpcLevel routine.
ExAllocateCacheAwareRundownProtection

This topic describes the ExAllocateCacheAwareRundownProtection function.
ExAllocateFromLookasideListEx

The ExAllocateFromLookasideListEx routine removes the first entry from the specified lookaside list, or, if the list is empty, dynamically allocates the storage for a new entry.
ExAllocateFromNPagedLookasideList

The ExAllocateFromNPagedLookasideList routine returns a pointer to a nonpaged entry from the given lookaside list, or it returns a pointer to a newly allocated nonpaged entry.
ExAllocateFromPagedLookasideList

The ExAllocateFromPagedLookasideList routine returns a pointer to a paged entry from the given lookaside list, or it returns a pointer to a newly allocated paged entry.
ExAllocatePool

The ExAllocatePool routine is obsolete, and is exported only for existing binaries. Use ExAllocatePoolWithTag instead. ExAllocatePool allocates pool memory.
ExAllocatePool2

Learn more about: ExAllocatePool2
ExAllocatePool3

Learn more about: ExAllocatePool3
ExAllocatePoolPriorityUninitialized

ExAllocatePoolPriorityUninitialized allocates pool memory of the specified type. This routine is a wrapper and replacement option for ExAllocatePoolWithTagPriority.
ExAllocatePoolPriorityZero

Learn more about: ExAllocatePoolPriorityZero
ExAllocatePoolQuotaUninitialized

The ExAllocatePoolQuotaUninitialized routine allocates pool memory, charging the quota against the current process.
ExAllocatePoolQuotaZero

Learn more about: ExAllocatePoolQuotaZero
ExAllocatePoolUninitialized

This routine is a wrapper and replacement option for ExAllocatePoolWithTag.
ExAllocatePoolWithQuota

Obsolete. Use ExAllocatePoolWithQuotaTag instead. ExAllocatePoolWithQuota allocates pool memory. It is exported only for existing driver binaries.
ExAllocatePoolWithQuotaTag

The ExAllocatePoolWithQuotaTag routine allocates pool memory, charging the quota against the current process.
ExAllocatePoolWithTag

Obsolete. Use ExAllocatePool2 instead. The ExAllocatePoolWithTag routine allocates pool memory of the specified type and returns a pointer to the allocated block.
ExAllocatePoolWithTagPriority

The ExAllocatePoolWithTagPriority routine allocates pool memory of the specified type.
ExAllocatePoolZero

Learn more about: ExAllocatePoolZero
ExAllocateTimer

The ExAllocateTimer routine allocates and initializes a timer object.
ExCancelTimer

The ExCancelTimer routine cancels a timer that was set by a previous call to the ExSetTimer routine.
ExConvertExclusiveToSharedLite

The ExConvertExclusiveToSharedLite routine converts a given resource from acquired for exclusive access to acquired for shared access.
ExCreateCallback

The ExCreateCallback routine either creates a new callback object or opens an existing callback object on behalf of the caller.
ExCreatePool

Defines the ExCreatePool function.
ExDeleteLookasideListEx

The ExDeleteLookasideListEx routine deletes a lookaside list.
ExDeleteNPagedLookasideList

The ExDeleteNPagedLookasideList routine destroys a nonpaged lookaside list.
ExDeletePagedLookasideList

The ExDeletePagedLookasideList routine destroys a paged lookaside list.
ExDeleteResourceLite

The ExDeleteResourceLite routine deletes a given resource from the system's resource list.
ExDeleteTimer

The ExDeleteTimer routine deletes a timer object that was previously allocated by the ExAllocateTimer routine.
ExDestroyPool

Defines the ExDestroyPool function.
ExEnterCriticalRegionAndAcquireResourceExclusive

Learn more about the ExEnterCriticalRegionAndAcquireResourceExclusive routine.
ExFlushLookasideListEx

The ExFlushLookasideListEx routine flushes all entries from the specified lookaside list and frees the allocated storage for each entry.
ExFreeCacheAwareRundownProtection

This topic describes the ExFreeCacheAwareRundownProtection function.
ExFreePool

The ExFreePool function (wdm.h) deallocates a specified block of pool memory that was previously allocated.
ExFreePool2

Defines the ExFreePool2 function.
ExFreePoolWithTag

The ExFreePoolWithTag routine deallocates a block of pool memory allocated with the specified tag.
ExFreeToLookasideListEx

The ExFreeToLookasideListEx routine inserts an entry into a lookaside list, or, if the list is full, frees the allocated storage for the entry.
ExFreeToNPagedLookasideList

The ExFreeToNPagedLookasideList routine returns a nonpaged entry to the given lookaside list or to nonpaged pool.
ExFreeToPagedLookasideList

The ExFreeToPagedLookasideList routine returns a pageable entry to the given lookaside list or to paged pool.
ExGetExclusiveWaiterCount

The ExGetExclusiveWaiterCount routine returns the number of waiters on exclusive access to a given resource.
ExGetFirmwareEnvironmentVariable

The ExGetFirmwareEnvironmentVariable routine gets the value of the specified system firmware environment variable.
ExGetFirmwareType

Returns the system firmware type.
ExGetPreviousMode

The ExGetPreviousMode routine returns the previous processor mode for the current thread.
ExGetSharedWaiterCount

The ExGetSharedWaiterCount routine returns the number of waiters on shared access to a given resource.
ExInitializeDeleteTimerParameters

The ExInitializeDeleteTimerParameters routine initializes an EXT_DELETE_PARAMETERS structure.
ExInitializeDeviceAts

Describes the ExInitializeDeviceAts function.
ExInitializeDriverRuntime

Learn more about: ExInitializeDriverRuntime
ExInitializeFastMutex

The ExInitializeFastMutex routine initializes a fast mutex variable, used to synchronize mutually exclusive access by a set of threads to a shared resource.
ExInitializeLookasideListEx

The ExInitializeLookasideListEx routine initializes a lookaside list.
ExInitializeNPagedLookasideList

The ExInitializeNPagedLookasideList routine initializes a lookaside list for nonpaged entries of the specified size.
ExInitializePagedLookasideList

The ExInitializePagedLookasideList routine initializes a lookaside list for pageable entries of the specified size.
ExInitializePushLock

Initializes a push lock variable.
ExInitializeResourceLite

The ExInitializeResourceLite routine initializes a resource variable.
ExInitializeRundownProtection

The ExInitializeRundownProtection routine initializes run-down protection on a shared object.
ExInitializeRundownProtectionCacheAware

This topic describes the ExInitializeRundownProtectionCacheAware function.
ExInitializeSetTimerParameters

The ExInitializeSetTimerParameters routine initializes an EXT_SET_PARAMETERS structure.
ExInitializeWorkItem

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.
ExInterlockedAddLargeInteger

The ExInterlockedAddLargeInteger routine adds a large integer value to the specified variable as an atomic operation.
ExInterlockedAddLargeStatistic

The ExInterlockedAddLargeStatistic routine performs an interlocked addition of a ULONG increment value to a LARGE_INTEGER variable.
ExInterlockedAddUlong

The ExInterlockedAddUlong routine adds an unsigned long value to a given unsigned integer as an atomic operation.
ExInterlockedCompareExchange64

The ExInterlockedCompareExchange64 routine compares one integer variable to another and, if they are equal, sets the first variable to a caller-supplied value.
ExInterlockedFlushSList

The ExInterlockedFlushSList routine atomically removes all entries from a sequenced singly linked list.
ExInterlockedInsertHeadList

The ExInterlockedInsertHeadList routine atomically inserts an entry at the beginning of a doubly linked list of LIST_ENTRY structures.
ExInterlockedInsertTailList

The ExInterlockedInsertTailList routine atomically inserts an entry at the end of a doubly linked list of LIST_ENTRY structures.
ExInterlockedPopEntryList

The ExInterlockedPopEntryList routine atomically removes an entry from the beginning of a singly linked list of SINGLE_LIST_ENTRY structures.
ExInterlockedPopEntrySList

The ExInterlockedPopEntrySList routine atomically removes the first entry from a sequenced singly linked list.
ExInterlockedPushEntryList

The ExInterlockedPushEntryList routine atomically inserts an entry at the beginning of a singly linked list of SINGLE_LIST_ENTRY structures.
ExInterlockedPushEntrySList

The ExInterlockedPushEntrySList routine atomically inserts an entry at the beginning of a sequenced singly linked list.
ExInterlockedRemoveHeadList

The ExInterlockedRemoveHeadList routine removes an entry from the beginning of a doubly linked list of LIST_ENTRY structures.
ExIsProcessorFeaturePresent

The ExIsProcessorFeaturePresent routine queries for the existence of a specified processor feature.
ExIsResourceAcquiredExclusiveLite

The ExIsResourceAcquiredExclusiveLite routine returns whether the current thread has exclusive access to a given resource.
ExIsResourceAcquiredSharedLite

The ExIsResourceAcquiredSharedLite routine returns whether the current thread has access (either shared or exclusive) to a given resource.
ExIsSoftBoot

Determines whether the system has gone through a soft restart.
ExLocalTimeToSystemTime

The ExLocalTimeToSystemTime routine converts a system time value for the current time zone to an unbiased, GreenGMT value.
ExNotifyCallback

The ExNotifyCallback routine causes all callback routines registered for the given object to be called.
ExpInterlockedPopEntrySList

Describes the ExpInterlockedPopEntrySList function.
ExpInterlockedPushEntrySList

Describes the ExpInterlockedPushEntrySList function.
ExQueryDepthSList

The ExQueryDepthSList routine returns the number of entries currently in a given sequenced singly linked list.
ExQueryTimerResolution

The ExQueryTimerResolution routine reports the range of timer resolutions that are supported by the system clock.
ExQueueWorkItem

ExQueueWorkItem inserts a given work item into a queue from which a system worker thread removes the item and gives control to the routine that the caller supplied to ExInitializeWorkItem.
ExRaiseStatus

The ExRaiseStatus routine is called by drivers that supply structured exception handlers to handle particular errors that occur while they are processing I/O requests.
ExRegisterCallback

The ExRegisterCallback routine registers a given callback routine with a given callback object.
ExReinitializeResourceLite

The ExReinitializeResourceLite routine reinitializes an existing resource variable.
ExReInitializeRundownProtection

The ExReInitializeRundownProtection routine reinitializes an EX_RUNDOWN_REF structure after the associated object is run down.
ExReInitializeRundownProtectionCacheAware

This topic describes the ExReInitializeRundownProtectionCacheAware function.
ExReleaseFastMutex

Learn more about the ExReleaseFastMutex routine.
ExReleaseFastMutexUnsafe

Learn more about the ExReleaseFastMutexUnsafe routine.
ExReleasePushLockExclusive

Releases a specified push lock for exclusive access owned by the current thread.
ExReleasePushLockShared

Releases a specified push lock for shared access owned by the current thread.
ExReleaseResourceAndLeaveCriticalRegion

Learn more about the ExReleaseResourceAndLeaveCriticalRegion routine.
ExReleaseResourceForThreadLite

The ExReleaseResourceForThreadLite routine releases the input resource of the indicated thread.
ExReleaseResourceLite

The ExReleaseResourceLite routine releases a specified executive resource owned by the current thread.
ExReleaseRundownProtection

The ExReleaseRundownProtection routine releases run-down protection that the caller previously acquired by calling the ExAcquireRundownProtection routine.
ExReleaseRundownProtectionCacheAware

This topic describes the ExReleaseRundownProtectionCacheAware function.
ExReleaseRundownProtectionCacheAwareEx

This topic describes the ExReleaseRundownProtectionCacheAwareEx function.
ExReleaseRundownProtectionEx

The ExReleaseRundownProtectionEx routine releases run-down protection that the caller previously acquired by calling the ExAcquireRundownProtectionEx routine.
ExReleaseSpinLockExclusive

The ExReleaseSpinLockExclusive routine releases a spin lock that the caller previously acquired for exclusive access, and restores the IRQL to its original value.
ExReleaseSpinLockExclusiveFromDpcLevel

Learn more about the ExReleaseSpinLockExclusiveFromDpcLevel routine.
ExReleaseSpinLockShared

The ExReleaseSpinLockShared routine releases ownership of a spin lock that the caller previously acquired for shared access, and restores the IRQL to its original value.
ExReleaseSpinLockSharedFromDpcLevel

Learn more about the ExReleaseSpinLockSharedFromDpcLevel routine.
ExRundownCompleted

The ExRundownCompleted routine updates the run-down status of a shared object to indicate that the run down of the object has completed.
ExRundownCompletedCacheAware

This topic describes the ExRundownCompletedCacheAware function.
ExSecurePoolUpdate

The ExSecurePoolUpdate function updates the contents of the secure pool allocation.
ExSecurePoolValidate

The ExSecurePoolValidate function validates that the secure pool provided is indeed the one previously created.
ExSetFirmwareEnvironmentVariable

The ExSetFirmwareEnvironmentVariable routine sets the value of the specified system firmware environment variable.
ExSetResourceOwnerPointer

The ExSetResourceOwnerPointer routine sets the owner thread pointer for an executive resource.
ExSetResourceOwnerPointerEx

The ExSetResourceOwnerPointerEx routine transfers the ownership of an executive resource from the calling thread to an owner pointer, which is a system address that identifies the resource owner.
ExSetTimer

The ExSetTimer routine starts a timer operation and sets the timer to expire at the specified due time.
ExSetTimerResolution

The ExSetTimerResolution routine modifies the frequency at which the system clock interrupts. Use this routine with extreme caution (see the following Remarks section).
ExSizeOfRundownProtectionCacheAware

This topic describes the ExSizeOfRundownProtectionCacheAware function.
ExSystemTimeToLocalTime

The ExSystemTimeToLocalTime routine converts a GMT system time value to the local system time for the current time zone.
ExTryConvertSharedSpinLockExclusive

The ExTryConvertSharedSpinLockExclusive routine attempts to convert the access state of a spin lock from acquired for shared access to exclusive access.
ExTryToAcquireFastMutex

Learn more about the ExTryToAcquireFastMutex routine.
ExUnregisterCallback

The ExUnregisterCallback routine removes a callback routine previously registered with a callback object from the list of routines to be called during the notification process.
ExWaitForRundownProtectionRelease

The ExWaitForRundownProtectionRelease routine waits until all drivers that have already been granted run-down protection complete their accesses of the shared object.
ExWaitForRundownProtectionReleaseCacheAware

This topic describes the ExWaitForRundownProtectionReleaseCacheAware function.
FIELD_OFFSET

The FIELD_OFFSET macro (wdm.h) returns the byte offset of the specified field in the specified known structure type.
FirstEntrySList

The FirstEntrySList routine returns the first entry in a sequenced singly linked list.
IMAGE_POLICY_OVERRIDE

Reserved for the IMAGE_POLICY_OVERRIDE macro.
InitializeListHead

The InitializeListHead routine initializes a LIST_ENTRY structure that represents the head of a doubly linked list.
InitializeSListHead

The InitializeSListHead routine (or ExInitializeSListHead) initializes an SLIST_HEADER structure that represents the head of a sequenced singly linked list.
InsertHeadList

The InsertHeadList routine inserts an entry at the head of a doubly linked list of LIST_ENTRY structures.
InsertTailList

The InsertTailList routine inserts an entry at the tail of a doubly linked list of LIST_ENTRY structures.
InterlockedAnd

The InterlockedAnd (wdm.h) macro atomically computes a bitwise AND operation with the specified variable and specified value.
InterlockedCompareExchange

The InterlockedCompareExchange routine performs an atomic operation that compares the input value pointed to by Destination with the value of Comperand.
InterlockedCompareExchangePointer

The InterlockedCompareExchangePointer routine performs an atomic operation that compares the input pointer value pointed to by Destination with the pointer value Comperand.
InterlockedDecrement

The InterlockedDecrement function (wdm.h) decrements a caller-supplied variable of type LONG as an atomic operation.
InterlockedExchange

The InterlockedExchange function (wdm.h) sets an integer variable to a given value as an atomic operation.
InterlockedExchangeAdd

The InterlockedExchangeAdd function (wdm.h) adds a value to a given integer as an atomic operation and returns the original value of the given integer.
InterlockedExchangePointer

The InterlockedExchangePointer function (wdm.h) performs an atomic operation that sets a pointer to a new value.
InterlockedIncrement

The InterlockedIncrement function (wdm.h) increments a caller-supplied variable as an atomic operation.
InterlockedOr

The InterlockedOr function (wdm.h) atomically computes a bitwise OR operation with the specified variable and specified value.
InterlockedXor

The InterlockedXor function (wdm.h) atomically computes a bitwise exclusive OR operation with the specified variable and specified value.
IoAcquireCancelSpinLock

Learn more about the IoAcquireCancelSpinLock routine.
IoAcquireKsrPersistentMemory

Microsoft reserves the IoAcquireKsrPersistentMemory function for internal use only. Don't use this function in your code.
IoAcquireKsrPersistentMemoryEx

Microsoft reserves the IoAcquireKsrPersistentMemoryEx function for internal use only. Don't use this function in your code.
IoAcquireRemoveLock

The IoAcquireRemoveLock routine increments the count for a remove lock, indicating that the associated device object should not be detached from the device stack or deleted.
IoAdjustPagingPathCount

The IoAdjustPagingPathCount routine increments or decrements a caller-supplied page-file counter as an atomic operation.
IoAllocateDriverObjectExtension

The IoAllocateDriverObjectExtension routine allocates a per-driver context area, called a driver object extension, and assigns a unique identifier to it.
IoAllocateErrorLogEntry

The IoAllocateErrorLogEntry routine allocates an error log entry, and returns a pointer to the packet that the caller uses to supply information about an I/O error.
IoAllocateIrp

The IoAllocateIrp routine allocates an IRP, given the number of I/O stack locations for each driver layered under the caller, and, optionally, for the caller.
IoAllocateIrpEx

IoAllocateIrpEx allocates an I/O request packet (IRP) from
IoAllocateMdl

The IoAllocateMdl routine allocates a memory descriptor list (MDL) large enough to map a buffer, given the buffer's starting address and length. Optionally, this routine associates the MDL with an IRP.
IoAllocateWorkItem

The IoAllocateWorkItem routine allocates a work item.
IoAttachDevice

The IoAttachDevice routine attaches the caller's device object to a named target device object, so that I/O requests bound for the target device are routed first to the caller.
IoAttachDeviceToDeviceStack

The IoAttachDeviceToDeviceStack routine attaches the caller's device object to the highest device object in the chain and returns a pointer to the previously highest device object.
IoBuildAsynchronousFsdRequest

The IoBuildAsynchronousFsdRequest routine allocates and sets up an IRP to be sent to lower-level drivers.
IoBuildDeviceIoControlRequest

The IoBuildDeviceIoControlRequest routine allocates and sets up an IRP for a synchronously processed device control request.
IoBuildPartialMdl

The IoBuildPartialMdl routine builds a new memory descriptor list (MDL) that represents part of a buffer that is described by an existing MDL.
IoBuildSynchronousFsdRequest

The IoBuildSynchronousFsdRequest routine allocates and sets up an IRP for a synchronously processed I/O request.
IoCallDriver

The IoCallDriver routine sends an IRP to the driver associated with a specified device object.
IoCancelIrp

The IoCancelIrp routine sets the cancel bit in a given IRP and calls the cancel routine for the IRP if there is one.
IoCheckLinkShareAccess

The IoCheckLinkShareAccess routine is called by file system drivers (FSDs) or other highest-level drivers to check whether link shared access to a file object is permitted.
IoCheckShareAccess

The IoCheckShareAccess routine is called by file system drivers (FSDs) or other highest-level drivers to check whether shared access to a file object is permitted.
IoCheckShareAccessEx

The IoCheckShareAccessEx routine is called by file system drivers (FSDs) or other highest-level drivers to check whether shared access to a file object is permitted.
IoConnectInterrupt

The IoConnectInterrupt routine registers a device driver's InterruptService routine (ISR), so that it will be called when a device interrupts on any of a specified set of processors.
IoConnectInterruptEx

For more information, see the WdmlibIoConnectInterruptEx function.#define IoConnectInterruptEx WdmlibIoConnectInterruptEx
IoCopyCurrentIrpStackLocationToNext

The IoCopyCurrentIrpStackLocationToNext routine copies the IRP stack parameters from the current I/O stack location to the stack location of the next-lower driver.
IoCreateDevice

The IoCreateDevice routine creates a device object for use by a driver.
IoCreateFile

The IoCreateFile routine either causes a new file or directory to be created, or it opens an existing file, device, directory, or volume, giving the caller a handle for the file object.
IoCreateNotificationEvent

The IoCreateNotificationEvent routine creates or opens a named notification event used to notify one or more threads of execution that an event has occurred.
IoCreateSymbolicLink

The IoCreateSymbolicLink routine sets up a symbolic link between a device object name and a user-visible name for the device.
IoCreateSynchronizationEvent

The IoCreateSynchronizationEvent routine creates or opens a named synchronization event for use in serialization of access to hardware between two otherwise unrelated drivers.
IoCreateSystemThread

The IoCreateSystemThread routine creates a system thread that executes in kernel mode, and supplies a handle for the thread.
IoCreateUnprotectedSymbolicLink

The IoCreateUnprotectedSymbolicLink routine sets up an unprotected symbolic link between a device object name and a corresponding Win32-visible name.
IoCsqInitialize

The IoCsqInitialize routine initializes the driver's cancel-safe IRP queue dispatch table.
IoCsqInitializeEx

The IoCsqInitializeEx routine initializes the dispatch table for a cancel-safe IRP queue.
IoCsqInsertIrp

The IoCsqInsertIrp routine inserts an IRP in the driver's cancel-safe IRP queue.
IoCsqInsertIrpEx

The IoCsqInsertIrpEx routine inserts an IRP into the driver's cancel-safe IRP queue.
IoCsqRemoveIrp

The IoCsqRemoveIrp routine removes a particular IRP from the queue.
IoCsqRemoveNextIrp

The IoCsqRemoveNextIrp routine removes the next matching IRP in the queue.
IoDeleteDevice

The IoDeleteDevice routine removes a device object from the system, for example, when the underlying device is removed from the system.
IoDeleteSymbolicLink

The IoDeleteSymbolicLink routine removes a symbolic link from the system.
IoDetachDevice

The IoDetachDevice routine releases an attachment between the caller's device object and a lower driver's device object.
IoDisconnectInterrupt

The IoDisconnectInterrupt routine releases a device driver's set of interrupt object(s) when the device is paused or removed, or when the driver is being unloaded.
IoDisconnectInterruptEx

For more information, see the WdmlibIoDisconnectInterruptEx function.#define IoDisconnectInterruptEx WdmlibIoDisconnectInterruptEx
IoEnumerateKsrPersistentMemoryEx

Microsoft reserves the IoEnumerateKsrPersistentMemoryEx function for internal use only. Don't use this function in your code.
IofCallDriver

Call IoCallDriver instead. Sends an IRP to the driver associated with a specified device object.
IofCompleteRequest

The IoCompleteRequest routine indicates that the caller has completed all processing for a given I/O request and is returning the given IRP to the I/O manager.
IoForwardIrpSynchronously

The IoForwardIrpSynchronously routine sends an IRP to a specified driver and waits for that driver to complete the IRP.
IoFreeErrorLogEntry

The IoFreeErrorLogEntry routine frees an unused error log entry.
IoFreeIrp

The IoFreeIrp routine releases a caller-allocated IRP from the caller's IoCompletion routine.
IoFreeKsrPersistentMemory

Microsoft reserves the IoFreeKsrPersistentMemory function for internal use only. Don't use this function in your code.
IoFreeMdl

The IoFreeMdl routine releases a caller-allocated memory descriptor list (MDL).
IoFreeWorkItem

The IoFreeWorkItem routine frees a work item that was allocated by IoAllocateWorkItem.
IoGetAffinityInterrupt

For more information, see the WdmlibIoGetAffinityInterrupt function.#define IoGetAffinityInterrupt WdmlibIoGetAffinityInterrupt
IoGetAttachedDeviceReference

The IoGetAttachedDeviceReference routine in wdm.h returns a pointer to the highest level device object in a driver stack and increments the reference count.
IoGetBootDiskInformation

The IoGetBootDiskInformation routine returns information describing the boot and system disks.
IoGetContainerInformation

The IoGetContainerInformation routine provides information about the current state of a user session.
IoGetCurrentIrpStackLocation

The IoGetCurrentIrpStackLocation routine returns a pointer to the caller's I/O stack location in the specified IRP.
IoGetCurrentProcess

The IoGetCurrentProcess routine returns a pointer to the current process.
IoGetDeviceDirectory

Returns a handle to a directory on disk specific to the specified driver object where the driver can read and write files.
IoGetDeviceInterfaceAlias

The IoGetDeviceInterfaceAlias routine returns the alias device interface of the specified device interface instance, if the alias exists.
IoGetDeviceInterfacePropertyData

The IoGetDeviceInterfacePropertyData routine retrieves the current value of a device interface property.
IoGetDeviceInterfaces

The IoGetDeviceInterfaces routine returns a list of device interface instances of a particular device interface class (such as all devices on the system that support a HID interface).
IoGetDeviceNumaNode

The IoGetDeviceNumaNode routine gets the node number of a device.
IoGetDeviceObjectPointer

The IoGetDeviceObjectPointer routine returns a pointer to the top object in the named device object's stack and a pointer to the corresponding file object, if the requested access to the objects can be granted.
IoGetDeviceProperty

The IoGetDeviceProperty routine retrieves information about a device such as configuration information and the name of its PDO.
IoGetDevicePropertyData

The IoGetDevicePropertyData routine retrieves the current setting for a device property.
IoGetDmaAdapter

The IoGetDmaAdapter routine returns a pointer to the DMA adapter structure for a physical device object.
IoGetDriverDirectory

Returns a handle to a directory on disk from which the driver can read and write files. The files in that directory apply to a specific driver object.
IoGetDriverObjectExtension

The IoGetDriverObjectExtension routine retrieves a previously allocated per-driver context area.
IoGetFunctionCodeFromCtlCode

The IoGetFunctionCodeFromCtlCode macro returns the value of the function code contained in an I/O control code.
IoGetInitialStack

The IoGetInitialStack routine returns the base address of the current thread's stack.
IoGetIommuInterface

Retrieves a pointer to the interface that contains pointers to IOMMU routines.
IoGetIommuInterfaceEx

Retrieves a pointer to the extended interface that contains a set of IOMMU routines.
IoGetIoPriorityHint

The IoGetIoPriorityHint routine gets the priority hint value from an IRP.
IoGetNextIrpStackLocation

The IoGetNextIrpStackLocation routine gives a higher level driver access to the next-lower driver's I/O stack location in an IRP so the caller can set it up for the lower driver.
IoGetRelatedDeviceObject

Given a file object, the IoGetRelatedDeviceObject routine returns a pointer to the corresponding device object.
IoGetRemainingStackSize

The IoGetRemainingStackSize routine returns the current amount of available kernel-mode stack space.
IoGetStackLimits

The IoGetStackLimits routine returns the boundaries of the current thread's stack frame.
IoGetTopLevelIrp

The IoGetTopLevelIrp routine in wdm.h returns the value of the TopLevelIrp field of the current thread.
IoInitializeDpcRequest

The IoInitializeDpcRequest routine registers a driver-supplied DpcForIsr routine.
IoInitializeIrp

The IoInitializeIrp routine initializes a given IRP that was allocated by the caller.
IoInitializeRemoveLock

The IoInitializeRemoveLock routine initializes a remove lock for a device object.
IoInitializeTimer

The IoInitializeTimer routine sets up a driver-supplied IoTimer routine associated with a given device object.
IoInitializeWorkItem

The IoInitializeWorkItem routine initializes a work item that the caller has already allocated.
IoInvalidateDeviceRelations

The IoInvalidateDeviceRelations routine notifies the PnP manager that the relations for a device (such as bus relations, ejection relations, removal relations, and the target device relation) have changed.
IoInvalidateDeviceState

The IoInvalidateDeviceState routine notifies the PnP manager that some aspect of the PnP state of a device has changed.
IoIs32bitProcess

The IoIs32bitProcess routine checks whether the originator of the current I/O request is a 32-bit user-mode application.
IoIsErrorUserInduced

The IoIsErrorUserInduced routine determines whether an I/O error encountered while processing a request to a removable-media device was caused by the user.
IoIsWdmVersionAvailable

The IoIsWdmVersionAvailable routine checks whether a given WDM version is supported by the operating system.
IoMarkIrpPending

The IoMarkIrpPending routine marks the specified IRP, indicating that a driver's dispatch routine subsequently returned STATUS_PENDING because further processing is required by other driver routines.
IoOpenDeviceInterfaceRegistryKey

The IoOpenDeviceInterfaceRegistryKey routine returns a handle to a registry key for storing information about a particular device interface instance.
IoOpenDeviceRegistryKey

The IoOpenDeviceRegistryKey routine returns a handle to a registry state location for a particular device instance.
IoOpenDriverRegistryKey

Reserved for the IoOpenDriverRegistryKey function.
IoQueryKsrPersistentMemorySize

Microsoft reserves the IoQueryKsrPersistentMemorySize function for internal use only. Don't use this function in your code.
IoQueryKsrPersistentMemorySizeEx

Microsoft reserves the IoQueryKsrPersistentMemorySizeEx function for internal use only. Don't use this function in your code.
IoQueueWorkItem

The IoQueueWorkItem routine associates a WorkItem routine with a work item, and it inserts the work item into a queue for later processing by a system worker thread.
IoQueueWorkItemEx

The IoQueueWorkItemEx routine associates a WorkItemEx routine with a work item, and it inserts the work item into a queue for later processing by a system worker thread.
IoRegisterContainerNotification

The IoRegisterContainerNotification routine registers a kernel-mode driver to receive notifications about a specified class of events.
IoRegisterDeviceInterface

The IoRegisterDeviceInterface routine registers a device interface class, if it has not been previously registered, and creates a new instance of the interface class, which a driver can subsequently enable for use by applications or other system components.
IoRegisterLastChanceShutdownNotification

The IoRegisterLastChanceShutdownNotification routine registers a driver to receive an IRP_MJ_SHUTDOWN IRP when the system is shut down, after all file systems have been flushed.
IoRegisterPlugPlayNotification

The IoRegisterPlugPlayNotification routine registers a Plug and Play (PnP) notification callback routine to be called when a PnP event of the specified category occurs.
IoRegisterShutdownNotification

The IoRegisterShutdownNotification routine registers the driver to receive an IRP_MJ_SHUTDOWN IRP when the system is shut down.
IoReleaseCancelSpinLock

Learn more about the IoReleaseCancelSpinLock routine.
IoReleaseRemoveLock

The IoReleaseRemoveLock routine releases a remove lock acquired with a previous call to IoAcquireRemoveLock.
IoReleaseRemoveLockAndWait

The IoReleaseRemoveLockAndWait routine releases a remove lock that the driver acquired in a previous call to IoAcquireRemoveLock, and waits until all acquisitions of the lock have been released.
IoRemoveLinkShareAccess

The IoRemoveLinkShareAccess routine removes the access and link share-access information for a given open instance of a file object.
IoRemoveLinkShareAccessEx

The IoRemoveLinkShareAccessEx routine removes the access and share access information in a file system Share Access structure for a given open instance.
IoRemoveShareAccess

The IoRemoveShareAccess routine removes the access and share-access information for a given open instance of a file object.
IoReportInterruptActive

The IoReportInterruptActive routine informs the operating system that a registered interrupt service routine (ISR) is active and ready to handle interrupt requests.
IoReportInterruptInactive

The IoReportInterruptInactive routine informs the operating system that a registered interrupt service routine (ISR) is inactive and is not expecting interrupt requests.
IoReportTargetDeviceChange

The IoReportTargetDeviceChange routine notifies the PnP manager that a custom event has occurred on a device.
IoReportTargetDeviceChangeAsynchronous

The IoReportTargetDeviceChangeAsynchronous routine notifies the PnP manager that a custom event has occurred on a device.
IoRequestDeviceEject

The IoRequestDeviceEject routine notifies the PnP manager that the device eject button was pressed.
IoRequestDpc

The IoRequestDpc routine queues a driver-supplied DpcForIsr routine to complete interrupt-driven I/O processing at a lower IRQL.
IoReserveKsrPersistentMemory

Microsoft reserves the IoReserveKsrPersistentMemory function for internal use only. Don't use this function in your code.
IoReserveKsrPersistentMemoryEx

Microsoft reserves the IoReserveKsrPersistentMemoryEx function for internal use only. Don't use this function in your code.
IoReuseIrp

The IoReuseIrp routine reinitializes an IRP so that it can be reused.
Iosb64ToIosb

The Iosb64ToIosb function...
IosbToIosb64

The IosbToIosb64 function...
IoSetCancelRoutine

The IoSetCancelRoutine routine sets up a driver-supplied Cancel routine to be called if a given IRP is canceled.
IoSetCompletionRoutine

The IoSetCompletionRoutine routine registers an IoCompletion routine, which will be called when the next-lower-level driver has completed the requested operation for the given IRP.
IoSetCompletionRoutineEx

The IoSetCompletionRoutineEx routine registers an IoCompletion routine, which is called when the next-lower-level driver has completed the requested operation for the given IRP.
IoSetDeviceInterfacePropertyData

The IoSetDeviceInterfacePropertyData routine modifies the current value of a device interface property.
IoSetDeviceInterfaceState

The IoSetDeviceInterfaceState routine enables or disables an instance of a previously registered device interface class.
IoSetDevicePropertyData

The IoSetDevicePropertyData routine modifies the current setting for a device property.
IoSetIoPriorityHint

The IoSetIoPriorityHint routine sets the priority hint value for an IRP.
IoSetLinkShareAccess

The IoSetLinkShareAccess routine sets the access rights for link sharing the specified file object.
IoSetNextIrpStackLocation

The IoSetNextIrpStackLocation routine sets the IRP stack location in a driver-allocated IRP to that of the caller.
IoSetShareAccess

The IoSetShareAccess routine sets the access rights for sharing the given file object.
IoSetShareAccessEx

The IoSetShareAccessEx routine sets the access rights for sharing the specified file object.
IoSetStartIoAttributes

The IoSetStartIoAttributes routine in wdm.h sets attributes for the driver's StartIo routine.
IoSetTopLevelIrp

The IoSetTopLevelIrp routine in wdm.h sets the value of the TopLevelIrp field of the current thread.
IoSizeOfIrp

The IoSizeOfIrp routine in wdm.h determines the size in bytes for an IRP, given the number of stack locations in the IRP.
IoSizeofWorkItem

The IoSizeofWorkItem routine returns the size, in bytes, of an IO_WORKITEM structure.
IoSkipCurrentIrpStackLocation

Learn more about: IoSkipCurrentIrpStackLocation
IoStartNextPacket

The IoStartNextPacket routine in wdm.h dequeues the next IRP from the given device object's associated device queue and calls the driver's StartIo routine.
IoStartNextPacketByKey

The IoStartNextPacketByKey routine in wdm.h dequeues the next I/O request packet from the specified device object's associated device queue.
IoStartPacket

The IoStartPacket routine in wdm.h calls the driver's StartIo routine with an IRP or inserts the IRP into the device queue for the given device object.
IoStartTimer

The IoStartTimer routine in wdm.h enables the timer associated with a given device object so the driver-supplied IoTimer routine is called once per second.
IoStopTimer

The IoStopTimer routine in wdm.h disables the timer for a specified device object so the driver-supplied IoTimer routine is not called.
IoUninitializeWorkItem

The IoUninitializeWorkItem routine uninitializes a work item that was initialized by IoInitializeWorkItem.
IoUnregisterContainerNotification

The IoUnregisterContainerNotification routine cancels a container notification registration that was previously created by the IoRegisterContainerNotification routine.
IoUnregisterPlugPlayNotification

This routine is obsolete in Windows 7 and later versions of Windows. The IoUnregisterPlugPlayNotification routine removes the registration of a driver's callback routine for a PnP event.
IoUnregisterPlugPlayNotificationEx

The IoUnregisterPlugPlayNotificationEx routine cancels the registration of a driver's callback routine for notifications of Plug and Play (PnP) events.
IoUnregisterShutdownNotification

The IoUnregisterShutdownNotification routine removes a registered driver from the shutdown notification queue.
IoUpdateLinkShareAccess

The IoUpdateLinkShareAccess routine updates the share access for the given file object, usually when the file is being opened.
IoUpdateLinkShareAccessEx

The IoUpdateLinkShareAccessEx routine updates the share access for the given file object, usually when the file is being opened.
IoUpdateShareAccess

The IoUpdateShareAccess routine updates the share access for the given file object, usually when the file is being opened.
IoValidateDeviceIoControlAccess

For more information, see the WdmlibIoValidateDeviceIoControlAccess function.
IoWithinStackLimits

The IoWithinStackLimits routine determines whether a region of memory is within the stack limit of the current thread.
IoWMIAllocateInstanceIds

The IoWMIAllocateInstanceIds routine allocates one or more instance IDs that are unique to the GUID.
IoWMIDeviceObjectToInstanceName

The IoWMIDeviceObjectToInstanceName routine determines the instance name for the WMI class instance implemented by the driver that is specified by a device object.
IoWMIDeviceObjectToProviderId

The IoWMIDeviceObjectToProviderId routine translates the specified device object into the corresponding WMI Provider ID.
IoWMIExecuteMethod

The IoWMIExecuteMethod routine runs a WMI class method on the specified WMI data block instance.
IoWMIHandleToInstanceName

The IoWMIHandleToInstanceName routine determines the instance name for the WMI class instance implemented by the driver that is specified by a file handle.
IoWMIOpenBlock

The IoWMIOpenBlock routine opens the WMI data block object for the specified WMI class.
IoWMIQueryAllData

The IoWMIQueryAllData routine returns all WMI data blocks that implement a given WMI class.
IoWMIQueryAllDataMultiple

The IoWMIQueryAllDataMultiple routine returns all WMI data blocks that implement one of a set of WMI classes.
IoWMIQuerySingleInstance

The IoWMIQuerySingleInstance routine returns the specified instance of a WMI data block.
IoWMIQuerySingleInstanceMultiple

The IoWMIQuerySingleInstanceMultiple routine returns all WMI data block instances that implement the specified WMI classes with the specified instance names.
IoWMIRegistrationControl

The IoWMIRegistrationControl routine registers or unregisters the caller as a WMI data provider for a specified device object.
IoWMISetNotificationCallback

The IoWMISetNotificationCallback routine registers a notification callback for a WMI event.
IoWMISetSingleInstance

The IoWMISetSingleInstance routine sets the values for properties within the data block instance that matches the specified WMI class and instance name.
IoWMISetSingleItem

The IoWMISetSingleItem routine sets a single property in the data block instance that matches the specified WMI class and instance name.
IoWMISuggestInstanceName

The IoWMISuggestInstanceName routine is used to request that WMI suggest a base name which a driver can use to build WMI instance names for the device.
IoWMIWriteEvent

The IoWMIWriteEvent routine delivers a given event to the user-mode WMI components for notification.
IoWriteErrorLogEntry

The IoWriteErrorLogEntry routine in wdm.h queues a given error log packet to the system error logging thread.
IoWriteKsrPersistentMemory

Microsoft reserves the IoWriteKsrPersistentMemory function for internal use only. Don't use this function in your code.
IsListEmpty

The IsListEmpty routine indicates whether a doubly linked list of LIST_ENTRY structures is empty.
KdBreakPointWithStatus

The KdBreakPointWithStatus macro breaks into the kernel debugger and sends the value of Status to the debugger.
KdChangeOption

The KdChangeOption routine accesses and changes state in the kernel that is related to kernel debugging.
KdDisableDebugger

The KdDisableDebugger routine disables the kernel debugger.
KdEnableDebugger

The KdEnableDebugger routine re-enables the kernel debugger after a call to the KdDisableDebugger routine disables the kernel debugger.
KdPrint

The KdPrint macro sends a message to the kernel debugger.
KdPrintEx

The KdPrintEx macro sends a string to the kernel debugger if the conditions you specify are met.A call to KdPrintEx requires double parentheses.
KdRefreshDebuggerNotPresent

The KdRefreshDebuggerNotPresent macro refreshes the value of the KD_DEBUGGER_NOT_PRESENT global kernel variable.
KeAcquireGuardedMutex

Learn more about the KeAcquireGuardedMutex routine.
KeAcquireGuardedMutexUnsafe

Learn more about the KeAcquireGuardedMutexUnsafe function.
KeAcquireInStackQueuedSpinLock

Learn more about the KeAcquireInStackQueuedSpinLock routine.
KeAcquireInStackQueuedSpinLockAtDpcLevel

Learn more about the KeAcquireInStackQueuedSpinLockAtDpcLevel routine.
KeAcquireInStackQueuedSpinLockForDpc

Learn more about the KeAcquireInStackQueuedSpinLockForDpc routine.
KeAcquireInterruptSpinLock

Learn more about the KeAcquireInterruptSpinLock routine.
KeAcquireSpinLock

The KeAcquireSpinLock routine acquires a spin lock so the caller can synchronize access to shared data in a multiprocessor-safe way by raising IRQL.
KeAcquireSpinLockAtDpcLevel

The KeAcquireSpinLockAtDpcLevel routine acquires a spin lock when the caller is already running at IRQL >= DISPATCH_LEVEL.
KeAcquireSpinLockForDpc

Learn more about the KeAcquireSpinLockForDpc routine.
KeAcquireSpinLockRaiseToDpc

The KeAcquireSpinLockRaiseToDpc routine is a faster version of the KeAcquireSpinLock routine.
KeAddTriageDumpDataBlock

Adds a triage dump data block to a triage dump data block array.
KeAreAllApcsDisabled

The KeAreAllApcsDisabled routine indicates whether the calling thread is inside a guarded region or running at IRQL >= APC_LEVEL, which disables all APC delivery.
KeAreApcsDisabled

The KeAreApcsDisabled function (wdm.h) returns a value that indicates whether the calling thread is within a critical region or a guarded region.
KeBugCheckEx

The KeBugCheckEx routine brings down the system in a controlled manner when the caller discovers an unrecoverable inconsistency that would corrupt the system if the caller continued to run.
KeCancelTimer

The KeCancelTimer routine dequeues a timer object before the timer interval, if any was set, expires.
KeClearEvent

The KeClearEvent routine sets an event to a not-signaled state.
KeConvertAuxiliaryCounterToPerformanceCounter

The KeConvertAuxiliaryCounterToPerformanceCounter routine converts the specified auxiliary counter value into a performance counter value.
KeConvertPerformanceCounterToAuxiliaryCounter

The KeConvertPerformanceCounterToAuxiliaryCounter routine converts the specified performance counter value into an auxiliary counter value.
KeDelayExecutionThread

The KeDelayExecutionThread routine puts the current thread into an alertable or nonalertable wait state for a specified interval.
KeDeregisterBoundCallback

The KeDeregisterBoundCallback routine deregisters a user-mode bound exception callback registered by KeRegisterBoundCallback.
KeDeregisterBugCheckCallback

The KeDeregisterBugCheckCallback routine removes a callback routine that was registered by KeRegisterBugCheckCallback.
KeDeregisterBugCheckReasonCallback

The KeDeregisterBugCheckReasonCallback routine removes a callback routine that was registered by KeRegisterBugCheckReasonCallback.
KeDeregisterNmiCallback

The KeDeregisterNmiCallback routine deregisters a nonmaskable interrupt (NMI) callback registered by KeRegisterNmiCallback.
KeDeregisterProcessorChangeCallback

The KeDeregisterProcessorChangeCallback routine unregisters a callback function that was previously registered with the operating system by calling the KeRegisterProcessorChangeCallback routine.
KeEnterCriticalRegion

The KeEnterCriticalRegion function (wdm.h) temporarily disables the execution of normal kernel APCs, but does not prevent special kernel APCs from running.
KeEnterGuardedRegion

The KeEnterGuardedRegion function (wdm.h) enters a guarded region, which disables all kernel-mode APC delivery to the current thread.
KeFlushIoBuffers

The KeFlushIoBuffers routine flushes the memory region described by an MDL from caches of all processors.
KeFlushQueuedDpcs

The KeFlushQueuedDpcs routine returns after all queued DPCs on all processors have executed.
KefReleaseSpinLockFromDpcLevel

The KeReleaseSpinLockFromDpcLevel routine releases an executive spin lock without changing the IRQL.
KeGetCurrentIrql

The KeGetCurrentIrql routine returns the current IRQL.
KeGetCurrentNodeNumber

The KeGetCurrentNodeNumber function (wdm.h) returns the NUMA node number for the logical processor that the caller is running on.
KeGetCurrentProcessorNumberEx

The KeGetCurrentProcessorNumberEx function (wdm.h) returns the processor number of the logical processor that the caller is running on.
KeGetCurrentThread

The KeGetCurrentThread routine identifies the current thread.
KeGetProcessorIndexFromNumber

The KeGetProcessorIndexFromNumber routine in wdm.h converts a group number and a group-relative processor number to a systemwide processor index.
KeGetProcessorNumberFromIndex

The KeGetProcessorNumberFromIndex routine in wdm.h converts a systemwide processor index to a group number and a group-relative processor number.
KeGetRecommendedSharedDataAlignment

The KeGetRecommendedSharedDataAlignment routine returns the preferred alignment for memory structures that can be accessed by more than one processor.
KeInitializeCallbackRecord

Learn more about: KeInitializeCallbackRecord
KeInitializeCrashDumpHeader

Learn how the KeInitializeCrashDumpHeader routine supplies the header information the system requires for a crash dump file.
KeInitializeDeviceQueue

The KeInitializeDeviceQueue routine initializes a device queue object to a not-busy state.
KeInitializeDpc

The KeInitializeDpc routine initializes a DPC object, and registers a CustomDpc routine for that object.
KeInitializeEvent

The KeInitializeEvent routine initializes an event object as a synchronization (single waiter) or notification type event and sets it to a signaled or not-signaled state.
KeInitializeGuardedMutex

The KeInitializeGuardedMutex routine initializes a guarded mutex.
KeInitializeMutex

The KeInitializeMutex routine initializes a mutex object, setting it to a signaled state.
KeInitializeSemaphore

The KeInitializeSemaphore routine initializes a semaphore object with a specified count and specifies an upper limit that the count can attain.
KeInitializeSpinLock

The KeInitializeSpinLock routine initializes a variable of type KSPIN_LOCK.
KeInitializeThreadedDpc

The KeInitializeThreadedDpc routine initializes a threaded DPC object, and registers a CustomThreadedDpc routine for that object.
KeInitializeTimer

The KeInitializeTimer routine initializes a timer object.
KeInitializeTimerEx

The KeInitializeTimerEx routine initializes an extended kernel timer object.
KeInitializeTriageDumpDataArray

Initializes a triage dump data block array.
KeInsertByKeyDeviceQueue

The KeInsertByKeyDeviceQueue routine acquires the spin lock for the specified DeviceQueue and queues an entry according to the specified sort-key value if the device queue is set to a busy state.
KeInsertDeviceQueue

The KeInsertDeviceQueue routine acquires the spin lock for the specified device queue object and, if the device queue is set to a busy state, queues the specified entry.
KeInsertQueueDpc

The KeInsertQueueDpc routine queues a DPC for execution.
KeIpiGenericCall

The KeIpiGenericCall routine causes the specified routine to run on all processors simultaneously.
KeIsExecutingDpc

Checks whether a DPC is being executed on current processor.
KeLeaveCriticalRegion

Learn how the KeLeaveCriticalRegion routine reenables the delivery of normal kernel-mode APCs that were disabled by a preceding call to KeEnterCriticalRegion.
KeLeaveGuardedRegion

Learn how the KeLeaveGuardedRegion routine exits a guarded region entered by KeEnterGuardedRegion.
KeLowerIrql

The KeLowerIrql routine restores the IRQL on the current processor to its original value.
KeMemoryBarrier

The KeMemoryBarrier routine creates a barrier at its position in the code—across which the compiler and the processor cannot move any operations.
KeQueryActiveGroupCount

Learn how the KeQueryActiveGroupCount routine returns the number of active processor groups in a multiprocessor system.
KeQueryActiveProcessorCount

Learn how the KeQueryActiveProcessorCount routine returns the number of currently active processors.
KeQueryActiveProcessorCountEx

Learn how the KeQueryActiveProcessorCountEx routine returns the number of active logical processors in a specified group in a multiprocessor system or in the entire system.
KeQueryActiveProcessors

Learn how the KeQueryActiveProcessors routine returns a bitmask of the currently active processors.
KeQueryAuxiliaryCounterFrequency

The KeQueryAuxiliaryCounterFrequency routine returns frequency of the auxiliary counter in units of Hz.
KeQueryDpcWatchdogInformation

The KeQueryDpcWatchdogInformation routine returns the deferred procedure call (DPC) watchdog timer values for the current processor.
KeQueryGroupAffinity

Learn how the KeQueryGroupAffinity routine returns an affinity mask that identifies the active logical processors in a specified group in a multiprocessor system.
KeQueryHighestNodeNumber

Learn how the KeQueryHighestNodeNumber routine returns the highest node number in a multiprocessor system that has a non-uniform memory access (NUMA) architecture.
KeQueryInterruptTime

The KeQueryInterruptTime routine returns the current value of the system interrupt time count, with accuracy to within system clock tick.
KeQueryInterruptTimePrecise

The KeQueryInterruptTimePrecise routine returns the current value of the system interrupt time count, with accuracy to within a microsecond.
KeQueryLogicalProcessorRelationship

The KeQueryLogicalProcessorRelationship routine gets information about the relationships of one or more processors to the other processors in a multiprocessor system.
KeQueryMaximumGroupCount

Learn how the KeQueryMaximumGroupCount routine returns the maximum number of groups in a multiprocessor system.
KeQueryMaximumProcessorCount

Learn how the KeQueryMaximumProcessorCount routine returns the maximum number of processors.
KeQueryMaximumProcessorCountEx

Learn how the KeQueryMaximumProcessorCountEx routine returns the maximum number of logical processors in a specified group in a multiprocessor system.
KeQueryNodeActiveAffinity

The KeQueryNodeActiveAffinity routine gets the current processor affinity of a specified node in a multiprocessor system that has a non-uniform memory access (NUMA) architecture.
KeQueryNodeActiveAffinity2

This routine returns the current multi-group processor affinity of the given NUMA node.
KeQueryNodeActiveProcessorCount

This routine returns the number of active processors in the given NUMA node across all groups.
KeQueryNodeMaximumProcessorCount

Learn how the KeQueryNodeMaximumProcessorCount routine returns the maximum number of logical processors that a specified node in a non-uniform memory access (NUMA) multiprocessor system can contain.
KeQueryPerformanceCounter

The KeQueryPerformanceCounter routine in wdm.h retrieves the current value and frequency of the performance counter.
KeQueryPriorityThread

The KeQueryPriorityThread routine returns the current priority of a particular thread.
KeQueryRuntimeThread

The KeQueryRuntimeThread routine reports the accumulated kernel-mode and user-mode run time of a thread, in clock ticks.
KeQuerySystemTime

The KeQuerySystemTime routine obtains the current system time.
KeQuerySystemTimePrecise

The KeQuerySystemTimePrecise routine retrieves the current system time, and is more precise than the KeQuerySystemTime routine.
KeQueryTickCount

Learn how the KeQueryTickCount routine maintains a count of the interval timer interrupts that have occurred since the system was booted.
KeQueryTimeIncrement

The KeQueryTimeIncrement routine returns the number of 100-nanosecond units that are added to the system time each time the interval clock interrupts.
KeQueryTotalCycleTimeThread

The KeQueryTotalCycleTimeThread routine returns the accumulated cycle time for the specified thread.
KeQueryUnbiasedInterruptTime

The KeQueryUnbiasedInterruptTime routine returns the current value of the system interrupt time count.
KeRaiseIrql

The KeRaiseIrql routine raises the hardware priority to the specified IRQL value, thereby masking off interrupts of equivalent or lower IRQL on the current processor.
KeRaiseIrqlToDpcLevel

Learn how the KeRaiseIrqlToDpcLevel routine raises the hardware priority to IRQL = DISPATCH_LEVEL, thereby masking off interrupts of equivalent or lower IRQL on the current processor.
KeReadStateEvent

The KeReadStateEvent routine returns the current state, signaled or not-signaled, of an event object.
KeReadStateMutex

The KeReadStateMutex routine returns the current state, signaled or not-signaled, of the specified mutex object.
KeReadStateSemaphore

The KeReadStateSemaphore routine returns the current state, signaled or not-signaled, of the specified semaphore object.
KeReadStateTimer

The KeReadStateTimer routine reads the current state of a timer object.
KeRegisterBoundCallback

The KeRegisterBoundCallback routine registers a routine to be called whenever a user-mode bound exception occurs.
KeRegisterBugCheckCallback

The KeRegisterBugCheckCallback routine registers a BugCheckCallback routine, which executes when the operating system issues a bug check.
KeRegisterBugCheckReasonCallback

The KeRegisterBugCheckReasonCallback routine registers a KbCallbackDumpIo, KbCallbackSecondaryDumpData, or KbCallbackAddPages routine, which executes when the operating system issues a bug check.
KeRegisterNmiCallback

The KeRegisterNmiCallback routine registers a routine to be called whenever a nonmaskable interrupt (NMI) occurs.
KeRegisterProcessorChangeCallback

The KeRegisterProcessorChangeCallback routine registers a callback function with the operating system so that the operating system will notify the driver when a new processor is added to the hardware partition.
KeReleaseGuardedMutex

The KeReleaseGuardedMutex routine releases a guarded mutex acquired with KeAcquireGuardedMutex or KeTryToAcquireGuardedMutex.
KeReleaseGuardedMutexUnsafe

The KeReleaseGuardedMutexUnsafe routine releases a guarded mutex acquired by KeAcquireGuardedMutexUnsafe.
KeReleaseInStackQueuedSpinLock

The KeReleaseInStackQueuedSpinLock routine releases a queued spin lock acquired by KeAcquireInStackQueuedSpinLock.
KeReleaseInStackQueuedSpinLockForDpc

The KeReleaseInStackQueuedSpinLockForDpc routine releases a queued spin lock that was acquired by calling KeAcquireInStackQueuedSpinLockForDpc.
KeReleaseInStackQueuedSpinLockFromDpcLevel

The KeReleaseInStackQueuedSpinLockFromDpcLevel routine releases a queued spin lock acquired by KeAcquireInStackQueuedSpinLockAtDpcLevel.
KeReleaseInterruptSpinLock

The KeReleaseInterruptSpinLock routine releases an interrupt spin lock acquired by KeAcquireInterruptSpinLock.
KeReleaseMutex

The KeReleaseMutex routine releases a mutex object, and specifies whether the caller is to call one of the KeWaitXxx routines as soon as KeReleaseMutex returns control.
KeReleaseSemaphore

The KeReleaseSemaphore routine releases the specified semaphore object.
KeReleaseSpinLock

The KeReleaseSpinLock routine releases a spin lock and restores the original IRQL at which the caller was running.
KeReleaseSpinLockForDpc

The KeReleaseSpinLockForDpc routine releases a spin lock that was acquired by calling KeAcquireSpinLockForDpc.
KeReleaseSpinLockFromDpcLevel

Learn how the KeReleaseSpinLockFromDpcLevel routine releases an executive spin lock without changing the IRQL.
KeRemoveByKeyDeviceQueue

The KeRemoveByKeyDeviceQueue routine removes an entry, selected according to a sort key value, from the specified device queue.
KeRemoveDeviceQueue

The KeRemoveDeviceQueue routine removes an entry from the head of a specified device queue.
KeRemoveEntryDeviceQueue

The KeRemoveEntryDeviceQueue routine returns whether the specified entry is in the device queue and removes it, if it was queued, from the device queue.
KeRemoveQueueDpc

The KeRemoveQueueDpc routine removes the specified DPC object from the system DPC queue.
KeResetEvent

The KeResetEvent routine resets a specified event object to a not-signaled state and returns the previous state of that event object.
KeRestoreExtendedProcessorState

The KeRestoreExtendedProcessorState routine restores extended processor state information that was previously saved.
KeRestoreFloatingPointState

The KeRestoreFloatingPointState routine restores the nonvolatile floating-point context saved by the preceding call to KeSaveFloatingPointState.
KeRevertToUserAffinityThreadEx

The KeRevertToUserAffinityThreadEx routine restores the previous affinity of the current thread.
KeRevertToUserGroupAffinityThread

The KeRevertToUserGroupAffinityThread routine restores the group affinity of the calling thread to its original value at the time that the thread was created.
KeSaveExtendedProcessorState

The KeSaveExtendedProcessorState routine saves extended processor state information.
KeSaveFloatingPointState

The KeSaveFloatingPointState routine saves the nonvolatile floating-point context so the caller can carry out floating-point operations.
KeSetCoalescableTimer

The KeSetCoalescableTimer routine sets the initial expiration time and period of a timer object and specifies how much delay can be tolerated in the expiration times.
KeSetEvent

The KeSetEvent routine sets an event object to a signaled state if the event was not already signaled, and returns the previous state of the event object.
KeSetImportanceDpc

Learn how the KeSetImportanceDpc routine specifies how soon the DPC routine is run.
KeSetPriorityThread

The KeSetPriorityThread routine sets the run-time priority of a driver-created thread.
KeSetSystemAffinityThread

The KeSetSystemAffinityThread routine sets the system affinity of the current thread.
KeSetSystemAffinityThreadEx

The KeSetSystemAffinityThreadEx routine sets the system affinity of the current thread.
KeSetSystemGroupAffinityThread

The KeSetSystemGroupAffinityThread routine changes the group number and affinity mask of the calling thread.
KeSetTargetProcessorDpc

Learn how the KeSetTargetProcessorDpc routine specifies the processor that a DPC routine will be run on.
KeSetTargetProcessorDpcEx

The KeSetTargetProcessorDpcEx routine specifies the processor that a DPC routine will run on.
KeSetTimer

The KeSetTimer routine sets the absolute or relative interval at which a timer object is to be set to a signaled state and, optionally, supplies a CustomTimerDpc routine to be executed when that interval expires.
KeSetTimerEx

The KeSetTimerEx routine sets the absolute or relative interval at which a timer object is to be set to a signaled state, optionally supplies a CustomTimerDpc routine to be executed when that interval expires, and optionally supplies a recurring interval for the timer.
KeShouldYieldProcessor

Learn more about: KeShouldYieldProcessor function
KeStallExecutionProcessor

The KeStallExecutionProcessor routine in wdm.h stalls the caller on the current processor for a specified time interval.
KeSynchronizeExecution

The KeSynchronizeExecution routine synchronizes the execution of the specified routine with the interrupt service routine (ISR) that is assigned to a set of one or more interrupt objects.
KeTestSpinLock

The KeTestSpinLock routine tests for the availability of a spin lock.
KeTryToAcquireGuardedMutex

The KeTryToAcquireGuardedMutex routine acquires a guarded mutex, if available.
KeTryToAcquireSpinLockAtDpcLevel

The KeTryToAcquireSpinLockAtDpcLevel routine attempts to acquire a spin lock at DISPATCH_LEVEL.
KeWaitForMultipleObjects

The KeWaitForMultipleObjects routine puts the current thread into an alertable or nonalertable wait state until any or all of a number of dispatcher objects are set to a signaled state or (optionally) until the wait times out.
KeWaitForSingleObject

The KeWaitForSingleObject routine puts the current thread into a wait state until the given dispatcher object is set to a signaled state or (optionally) until the wait times out.
KzLowerIrql

Restores the IRQL on the current processor to its original value.
KzRaiseIrql

Raises the hardware priority to the specified IRQL value, thereby masking off interrupts of equivalent or lower IRQL on the current processor.
MmAdvanceMdl

The MmAdvanceMdl routine advances the beginning of an MDL's virtual memory range by the specified number of bytes.
MmAllocateContiguousMemory

Learn how the MmAllocateContiguousMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemoryEx

The MmAllocateContiguousMemoryEx function allocates a range of physically contiguous non-paged memory and returns its virtual address.
MmAllocateContiguousMemorySpecifyCache

Learn how the MmAllocateContiguousMemorySpecifyCache routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemorySpecifyCacheNode

Learn how the MmAllocateContiguousMemorySpecifyCacheNode routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousNodeMemory

Learn how the MmAllocateContiguousNodeMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateMappingAddress

The MmAllocateMappingAddress routine reserves a range of system virtual address space of the specified size.
MmAllocateMappingAddressEx

The MmAllocateMappingAddressEx function allocates a system PTE mapping of the requested length that can be used later to map arbitrary addresses.
MmAllocateMdlForIoSpace

The MmAllocateMdlForIoSpace routine allocates an MDL and initializes this MDL to describe a set of physical address ranges in I/O address space.
MmAllocateNodePagesForMdlEx

The MmAllocateNodePagesForMdlEx routine allocates nonpaged physical memory from an ideal node, and allocates an MDL structure to describe this memory.
MmAllocatePagesForMdl

The MmAllocatePagesForMdl routine allocates zero-filled, nonpaged, physical memory pages to an MDL.
MmAllocatePagesForMdlEx

The MmAllocatePagesForMdlEx routine allocates nonpaged, physical memory pages to an MDL. Use this routine instead of MmAllocatePagesForMdl.
MmBuildMdlForNonPagedPool

The MmBuildMdlForNonPagedPool routine receives an MDL that specifies a nonpaged virtual memory buffer, and updates it to describe the underlying physical pages.
MmFreeContiguousMemory

Learn how the MmFreeContiguousMemory routine releases a range of physically contiguous memory that was allocated by an MmAllocateContiguousMemoryXxx routine.
MmFreeContiguousMemorySpecifyCache

Learn how the MmFreeContiguousMemorySpecifyCache routine frees a buffer that was allocated by an MmAllocateContiguousMemorySpecifyCacheXxx routine.
MmFreeMappingAddress

The MmFreeMappingAddress routine frees a range of virtual memory reserved by the MmAllocateMappingAddress routine.
MmFreePagesFromMdl

The MmFreePagesFromMdl routine frees all the physical pages that are described by an MDL that was created by the MmAllocatePagesForMdl routine.
MmGetMdlByteCount

The MmGetMdlByteCount macro returns the length, in bytes, of the buffer described by the specified MDL.
MmGetMdlByteOffset

Learn more about: MmGetMdlByteOffset
MmGetMdlPfnArray

The MmGetMdlPfnArray macro returns a pointer to the beginning of the array of physical page numbers that are associated with a memory descriptor list (MDL).
MmGetMdlVirtualAddress

Learn more about: MmGetMdlVirtualAddress
MmGetSystemAddressForMdl

The MmGetSystemAddressForMdl routine is obsolete. Use MmGetSystemAddressForMdlSafe instead.
MmGetSystemAddressForMdlSafe

Learn more about: MmGetSystemAddressForMdlSafe
MmGetSystemRoutineAddress

The MmGetSystemRoutineAddress routine returns a pointer to a function specified by SystemRoutineName.
MmGetSystemRoutineAddressEx

The MmGetSystemRoutineAddressEx function returns the address of the specified function in the specified system module.
MmInitializeMdl

Learn more about: MmInitializeMdl
MmIsDriverSuspectForVerifier

The MmIsDriverSuspectForVerifier routine indicates whether the driver represented by the specified driver object is in the list of drivers that are selected to be verified by Driver Verifier.
MmIsDriverVerifying

The MmIsDriverVerifying routine indicates whether the kernel-mode driver that is identified by the specified driver object is being verified or calls a driver that is being verified by Driver Verifier.
MmIsDriverVerifyingByAddress

The MmIsDriverVerifyingByAddress routine checks whether the kernel-mode driver that is identified by the specified image address is being verified or calls a driver that is being verified by Driver Verifier.
MmLockPagableCodeSection

The MmLockPagableCodeSection routine locks a section of driver code, containing a set of driver routines marked with a special compiler directive, into system space.
MmLockPagableDataSection

The MmLockPagableDataSection routine locks an entire section of driver data into system space.
MmMapIoSpace

The MmMapIoSpace routine maps the given physical address range to nonpaged system space.
MmMapIoSpaceEx

The MmMapIoSpaceEx routine maps the given physical address range to non-paged system space using the specified page protection.
MmMapLockedPages

The MmMapLockedPages routine is obsolete for Windows 2000 and later versions of Windows, and for Windows Me.
MmMapLockedPagesSpecifyCache

The MmMapLockedPagesSpecifyCache routine maps the physical pages that are described by an MDL to a virtual address, and enables the caller to specify the cache attribute that is used to create the mapping.
MmMapLockedPagesWithReservedMapping

The MmMapLockedPagesWithReservedMapping routine maps all or part of an address range that was previously reserved by the MmAllocateMappingAddress routine.
MmMapMdl

This function maps physical pages described by a memory descriptor list (MDL) into the system virtual address space.
MmMapMemoryDumpMdlEx

The MmMapMemoryDumpMdlEx function maps an MDL into a specified virtual address.
MmPageEntireDriver

The MmPageEntireDriver routine causes all of a driver's code and data to be made pageable, overriding the attributes of the various sections that make up the driver's image.
MmPrepareMdlForReuse

Learn more about: MmPrepareMdlForReuse
MmProbeAndLockPages

The MmProbeAndLockPages routine probes the specified virtual memory pages, makes them resident, and locks them in memory.
MmProbeAndLockSelectedPages

The MmProbeAndLockSelectedPages routine probes the selected virtual memory pages, makes them resident, and locks them in memory.
MmProtectDriverSection

The MmProtectDriverSection read-only protects a section of a loaded driver by using the services provided by the Virtual Secure Mode (VSM).
MmProtectMdlSystemAddress

The MmProtectMdlSystemAddress routine sets the protection type for a memory address range.
MmQuerySystemSize

The MmQuerySystemSize routine returns an estimate of the amount of memory in the system.
MmResetDriverPaging

The MmResetDriverPaging routine resets the pageable status of a driver's sections to that specified when the driver was compiled.
MmSizeOfMdl

The MmSizeOfMdl routine returns the number of bytes to allocate for an MDL describing a given address range.
MmUnlockPagableImageSection

The MmUnlockPagableImageSection routine releases a section of driver code or driver data, previously locked into system space with MmLockPagableCodeSection, MmLockPagableDataSection or MmLockPagableSectionByHandle, so the section can be paged out again.
MmUnlockPages

The MmUnlockPages routine unlocks the physical pages that are described by the specified memory descriptor list (MDL).
MmUnmapIoSpace

The MmUnmapIoSpace routine unmaps a specified range of physical addresses previously mapped by MmMapIoSpace.
MmUnmapLockedPages

The MmUnmapLockedPages routine releases a mapping that was set up by a preceding call to the MmMapLockedPages or MmMapLockedPagesSpecifyCache routine.
MmUnmapReservedMapping

The MmUnmapReservedMapping routine unmaps a memory buffer that was mapped by the MmMapLockedPagesWithReservedMapping routine.
NtCommitComplete

The ZwCommitComplete routine notifies KTM that the calling resource manager has finished committing a transaction's data.
NtCommitEnlistment

The ZwCommitEnlistment routine initiates the commit operation for a specified enlistment's transaction.
NtCommitTransaction

The ZwCommitTransaction routine initiates a commit operation for a specified transaction.
NtCreateEnlistment

The ZwCreateEnlistment routine creates a new enlistment object for a transaction.
NtCreateResourceManager

The ZwCreateResourceManager routine creates a resource manager object.
NtCreateTransaction

The ZwCreateTransaction routine creates a transaction object.
NtCreateTransactionManager

The ZwCreateTransactionManager routine creates a new transaction manager object.
NtEnumerateTransactionObject

The ZwEnumerateTransactionObject routine enumerates the KTM objects on a computer.
NtGetNotificationResourceManager

The ZwGetNotificationResourceManager routine retrieves the next transaction notification from a specified resource manager's notification queue.
NtManagePartition

The NtManagePartition function gets and sets information for a partition.
NtOpenEnlistment

The ZwOpenEnlistment routine obtains a handle to an existing enlistment object.
NtOpenResourceManager

The ZwOpenResourceManager routine returns a handle to an existing resource manager object.
NtOpenTransaction

The ZwOpenTransaction routine obtains a handle to an existing transaction object.
NtOpenTransactionManager

The ZwOpenTransactionManager routine obtains a handle to an existing transaction manager object.
NtPowerInformation

Learn how the ZwPowerInformation routine (wdm.h) sets or retrieves system power information.
NtPrepareComplete

The ZwPrepareComplete routine notifies KTM that the calling resource manager has finished preparing a transaction's data.
NtPrepareEnlistment

The ZwPrepareEnlistment routine initiates the prepare operation for a specified enlistment's transaction.
NtPrePrepareComplete

The ZwPrePrepareComplete routine notifies KTM that the calling resource manager has finished preliminary preparation of a transaction's data.
NtPrePrepareEnlistment

The ZwPrePrepareEnlistment routine initiates the pre-prepare operation for a specified enlistment's transaction.
NtQueryInformationEnlistment

The ZwQueryInformationEnlistment routine retrieves information about a specified enlistment object.
NtQueryInformationResourceManager

The ZwQueryInformationResourceManager routine retrieves information about a specified resource manager object.
NtQueryInformationTransaction

The ZwQueryInformationTransaction routine retrieves information about a specified transaction.
NtQueryInformationTransactionManager

The ZwQueryInformationTransactionManager routine retrieves information about a specified transaction manager object.
NtReadOnlyEnlistment

The ZwReadOnlyEnlistment routine sets a specified enlistment to be read-only.
NtRecoverEnlistment

The ZwRecoverEnlistment routine initiates a recovery operation for the transaction that is associated with a specified enlistment.
NtRecoverResourceManager

The ZwRecoverResourceManager routine tries to recover the transaction that is associated with each enlistment of a specified resource manager object.
NtRecoverTransactionManager

The ZwRecoverTransactionManager routine reconstructs the state of the transaction manager object (including all transactions, enlistments, and resource managers) from the recovery information that is in the log stream.
NtRenameTransactionManager

The NtRenameTransactionManager routine changes the identity of the transaction manager object that is stored in the CLFS log file stream contained in the log file name.
NtRollbackComplete

The ZwRollbackComplete routine notifies KTM that the calling resource manager has finished rolling back a transaction's data.
NtRollbackEnlistment

The ZwRollbackEnlistment routine rolls back the transaction that is associated with a specified enlistment.
NtRollbackTransaction

The ZwRollbackTransaction routine initiates a rollback operation for a specified transaction.
NtRollforwardTransactionManager

The ZwRollforwardTransactionManager routine initiates recovery operations for all of the in-progress transactions that are assigned to a specified transaction manager.
NtSetInformationEnlistment

The ZwSetInformationEnlistment routine sets information for a specified enlistment object.
NtSetInformationResourceManager

The ZwSetInformationResourceManager routine is not used.
NtSetInformationTransaction

The ZwSetInformationTransaction routine sets information for a specified transaction.
NtSetInformationTransactionManager

Do not call this routine from kernel-mode code.
NtSinglePhaseReject

The ZwSinglePhaseReject routine informs KTM that the calling resource manager will not support single-phase commit operations for a specified enlistment.
ObCloseHandle

The ObCloseHandle routine closes an object handle.
ObDereferenceObject

The ObDereferenceObject routine decrements the given object's reference count and performs retention checks.
ObDereferenceObjectDeferDelete

The ObDereferenceObjectDeferDelete routine decrements the reference count for the given object, checks for object retention, and avoids deadlocks.
ObDereferenceObjectDeferDeleteWithTag

The ObDereferenceObjectDeferDeleteWithTag routine decrements the reference count for the specified object, defers deletion of the object to avoid deadlocks, and writes a four-byte tag value to the object to support object reference tracing.
ObDereferenceObjectWithTag

The ObDereferenceObjectWithTag routine decrements the reference count of the specified object, and writes a four-byte tag value to the object to support object reference tracing.
ObfReferenceObject

The ObfReferenceObject routine increments the reference count to the given object.
ObGetObjectSecurity

The ObGetObjectSecurity routine gets the security descriptor for a given object.
ObReferenceObject

The ObReferenceObject routine increments the reference count to the given object.
ObReferenceObjectByHandle

The ObReferenceObjectByHandle routine provides access validation on the object handle, and, if access can be granted, returns the corresponding pointer to the object's body.
ObReferenceObjectByHandleWithTag

The ObReferenceObjectByHandleWithTag routine increments the reference count of the object that is identified by the specified handle, and writes a four-byte tag value to the object to support object reference tracing.
ObReferenceObjectByPointer

The ObReferenceObjectByPointer routine increments the pointer reference count for a given object.
ObReferenceObjectByPointerWithTag

The ObReferenceObjectByPointerWithTag routine increments the reference count of the specified object, and writes a four-byte tag value to the object to support object reference tracing.
ObReferenceObjectSafe

The ObReferenceObjectSafe function increments the reference count for an object and determines if it is safe to use the object. It returns FALSE if the object is being deleted or TRUE if it's safe to use the object further.
ObReferenceObjectWithTag

The ObReferenceObjectWithTag routine increments the reference count of the specified object, and writes a four-byte tag value to the object to support object reference tracing.
ObRegisterCallbacks

The ObRegisterCallbacks routine registers a list of callback routines for thread, process, and desktop handle operations.
ObReleaseObjectSecurity

The ObReleaseObjectSecurity routine is the reciprocal to ObGetObjectSecurity.
ObUnRegisterCallbacks

The ObUnRegisterCallbacks routine unregisters a set of callback routines that were registered with the ObRegisterCallbacks routine.
PAGE_ALIGN

Learn more about: PAGE_ALIGN
PcwAddInstance

The PcwAddInstance function adds the specified instance of the counterset to the consumer buffer.
PcwCloseInstance

The PcwCloseInstance function closes the specified instance of the counterset.
PcwCreateInstance

The PcwCreateInstance function creates a new instance for the specified registered counterset.
PcwRegister

The PcwRegister function registers the caller as a provider of the specified counterset.
PcwUnregister

The PcwUnregister function unregisters the provider of the specified counterset.
PoCallDriver

The PoCallDriver routine in wdm.h passes a power IRP to the next-lower driver in the device stack. (Windows Server 2003, Windows XP, and Windows 2000 only.).
PoClearPowerRequest

The PoClearPowerRequest routine in the wdm.h file decrements the count for the specified power request type.
PoCreatePowerRequest

The PoCreatePowerRequest routine in wdm.h creates a power request object. To enable power requests, create one power request object and use it for all calls.
PoDeletePowerRequest

The PoDeletePowerRequest routine in wdm.h deletes a power request object. The driver must delete the power request object before it deletes the device object.
PoEndDeviceBusy

The PoEndDeviceBusy routine in the wdm.h file marks the end of a period of time in which the device is busy.
PoFxActivateComponent

The PoFxActivateComponent routine increments the activation reference count on the specified component.
PoFxCompleteDevicePowerNotRequired

The PoFxCompleteDevicePowerNotRequired routine notifies the power management framework (PoFx) that the calling driver has completed its response to a call to the driver's DevicePowerNotRequiredCallback callback routine.
PoFxCompleteDirectedPowerDown

A Directed Power Framework (DFx) client driver calls this function to complete the Directed power down transition.
PoFxCompleteIdleCondition

The PoFxCompleteIdleCondition routine informs the power management framework (PoFx) that the specified component has completed a pending change to the idle condition.
PoFxCompleteIdleState

The PoFxCompleteIdleState routine informs the power management framework (PoFx) that the specified component has completed a pending change to an Fx state.
PoFxIdleComponent

The PoFxIdleComponent routine decrements the activation reference count on the specified component.
PoFxIssueComponentPerfStateChange

The PoFxIssueComponentPerfStateChange routine submits a request to place a device component in a particular performance state.
PoFxIssueComponentPerfStateChangeMultiple

The PoFxIssueComponentPerfStateChangeMultiple routine submits a request to change the performance states in multiple performance state sets simultaneously for a device component.
PoFxNotifySurprisePowerOn

The PoFxNotifySurprisePowerOn routine notifies the power management framework (PoFx) that a device was turned on as a side effect of supplying power to some other device.
PoFxPowerControl

The PoFxPowerControl routine sends a power control request to the power management framework (PoFx).
PoFxPowerOnCrashdumpDevice

The PoFxPowerOnCrashdumpDevice routine requests that a crash-dump device be turned on.
PoFxQueryCurrentComponentPerfState

The PoFxQueryCurrentComponentPerfState routine retrieves the active performance state in a component's performance state set.
PoFxRegisterComponentPerfStates

The PoFxRegisterComponentPerfStates routine registers a device component for performance state management by the power management framework (PoFx).
PoFxRegisterCrashdumpDevice

The PoFxRegisterCrashdumpDevice routine registers a crash-dump device.
PoFxRegisterDevice

The PoFxRegisterDevice routine registers a device with the power management framework (PoFx).
PoFxReportDevicePoweredOn

The PoFxReportDevicePoweredOn routine notifies the power management framework (PoFx) that the device completed the requested transition to the D0 (fully on) power state.
PoFxSetComponentLatency

The PoFxSetComponentLatency routine specifies the maximum latency that can be tolerated in the transition from the idle condition to the active condition in the specified component.
PoFxSetComponentResidency

The PoFxSetComponentResidency routine sets the estimated time for how long a component is likely to remain idle after the component enters the idle condition.
PoFxSetComponentWake

The PoFxSetComponentWake routine indicates whether the driver arms the specified component to wake whenever the component enters the idle condition.
PoFxSetDeviceIdleTimeout

The PoFxSetDeviceIdleTimeout routine specifies the minimum time interval from when the last component of the device enters the idle condition to when the power management framework (PoFx) calls the driver's DevicePowerNotRequiredCallback routine.
PoFxSetTargetDripsDevicePowerState

This routine is called to notify the power manager of the device's target device power state for DRIPS. The driver can override the DRIPS constraint provided by the PEP.
PoFxStartDevicePowerManagement

The PoFxStartDevicePowerManagement routine completes the registration of a device with the power management framework (PoFx) and starts device power management.
PoFxUnregisterDevice

The PoFxUnregisterDevice routine removes the registration of a device from the power management framework (PoFx).
PoGetSystemWake

The PoGetSystemWake routine determines whether a specified IRP has been marked as waking the system from a sleeping state.
PopEntryList

The PopEntryList routine removes the first entry from a singly linked list of SINGLE_LIST_ENTRY structures.
PoQueryWatchdogTime

The PoQueryWatchdogTime routine in wdm.h indicates whether the power manager has enabled a time-out counter for any power IRP assigned to the device stack.
PoRegisterDeviceForIdleDetection

The PoRegisterDeviceForIdleDetection routine in wdm.h enables or cancels idle detection and sets idle time-out values for a device.
PoRegisterPowerSettingCallback

The PoRegisterPowerSettingCallback routine in wdm.h registers a power-setting callback routine to receive notifications of changes in the specified power setting.
PoRegisterSystemState

The PoRegisterSystemState routine in wdm.h registers the system as busy due to certain activity as indicated by the flags.
PoRequestPowerIrp

The PoRequestPowerIrp routine allocates a power IRP and sends it to the top driver in the device stack for the specified device.
PoSetDeviceBusy

Learn more about: PoSetDeviceBusy
PoSetDeviceBusyEx

The PoSetDeviceBusyEx routine in wdm.h notifies the power manager that the device associated with the specified idle counter is busy.
PoSetPowerRequest

The PoSetPowerRequest routine in wdm.h increments the count for the specified power request type. The power manager counts requests for each power request type.
PoSetPowerState

The PoSetPowerState routine in wdm.h notifies the system of a change in the device power state for a device.
PoSetSystemState

Drivers call the PoSetSystemState routine to indicate that the system is active.
PoSetSystemWake

The PoSetSystemWake routine marks the specified IRP as one that contributed to waking the system from a sleep state.
PoSetSystemWakeDevice

The PoSetSystemWakeDevice function attempts to extract a PDO from the supplied device object.
PoStartDeviceBusy

The PoStartDeviceBusy routine in wdm.h marks the start of a period of time in which the device is busy.
PoStartNextPowerIrp

The PoStartNextPowerIrp routine in wdm.h signals the power manager that the driver is ready to handle the next power IRP.
PoUnregisterPowerSettingCallback

The PoUnregisterPowerSettingCallback routine in wdm.h unregisters a power-setting callback routine that a driver previously registered.
PoUnregisterSystemState

The PoUnregisterSystemState routine in wdm.h cancels a system state registration created by PoRegisterSystemState.
ProbeForRead

The ProbeForRead routine checks that a user-mode buffer actually resides in the user portion of the address space, and is correctly aligned.
ProbeForWrite

The ProbeForWrite routine checks that a user-mode buffer actually resides in the user-mode portion of the address space, is writable, and is correctly aligned.
PsAllocateAffinityToken

The PsAllocateAffinityToken function allocates a thread affinity token.
PsCreateSystemThread

The PsCreateSystemThread routine creates a system thread that executes in kernel mode and returns a handle for the thread.
PsFreeAffinityToken

The PsFreeAffinityToken function frees an affinity token that was allocated by PsAllocateAffinityToken.
PsGetCurrentThread

Learn how the PsGetCurrentThread routine (wdm.h) identifies the current thread.
PsGetVersion

This function is obsolete in Windows XP and later versions of the Windows operating system. Use RtlGetVersion instead.PsGetVersion returns caller-selected information about the current version of the NT-based operating system.
PsQueryTotalCycleTimeProcess

The PsQueryTotalCycleTimeProcess routine returns the accumulated cycle time for the specified process.
PsRevertToUserMultipleGroupAffinityThread

The PsRevertToUserMultipleGroupAffinityThread function reverts the current thread to its previous affinity as indicated by the given affinity token.
PsSetSystemMultipleGroupAffinityThread

The PsSetSystemMultipleGroupAffinityThread function sets the multi-group system affinity of the current thread.
PsTerminateSystemThread

The PsTerminateSystemThread routine terminates the current system thread.
PushEntryList

The PushEntryList routine inserts an entry at the beginning of a singly linked list of SINGLE_LIST_ENTRY structures.
READ_PORT_BUFFER_UCHAR

The READ_PORT_BUFFER_UCHAR function (wdm.h) reads a number of bytes from the specified port address into a buffer.
READ_PORT_BUFFER_ULONG

The READ_PORT_BUFFER_ULONG function (wdm.h) reads a number of ULONG values from the specified port address into a buffer.
READ_PORT_BUFFER_USHORT

The READ_PORT_BUFFER_USHORT function (wdm.h) reads a number of USHORT values from the specified port address into a buffer.
READ_PORT_UCHAR

The READ_PORT_UCHAR function (wdm.h) returns a byte that is read from the specified port address in resident, mapped device memory.
READ_PORT_ULONG

The READ_PORT_ULONG function (wdm.h) returns a ULONG value that is read from the specified port address in resident, mapped device memory.
READ_PORT_USHORT

The READ_PORT_USHORT function (wdm.h) returns a USHORT value that is read from the specified port address in resident, mapped device memory.
READ_REGISTER_BUFFER_UCHAR

The READ_REGISTER_BUFFER_UCHAR function (wdm.h) reads a number of bytes from the specified register address into a buffer.
READ_REGISTER_BUFFER_ULONG

The READ_REGISTER_BUFFER_ULONG function (wdm.h) reads a number of ULONG values from the specified register address into a buffer.
READ_REGISTER_BUFFER_ULONG64

The READ_REGISTER_BUFFER_ULONG64 function (wdm.h)reads a number of ULONG64 values from the specified register address into a buffer.
READ_REGISTER_BUFFER_USHORT

The READ_REGISTER_BUFFER_USHORT function (wdm.h) reads a number of USHORT values from the specified register address into a buffer.
READ_REGISTER_UCHAR

The READ_REGISTER_UCHAR function (wdm.h) returns a byte read from the specified register address in resident, mapped device memory.
READ_REGISTER_ULONG

The READ_REGISTER_ULONG function (wdm.h) returns a ULONG value read from the specified register address in resident, mapped device memory.
READ_REGISTER_ULONG64

The READ_REGISTER_ULONG64 function (wdm.h) reads a ULONG64 value from the specified register address.
READ_REGISTER_USHORT

The READ_REGISTER_USHORT function (wdm.h) returns a USHORT value read from the specified register address in resident, mapped device memory.
ReadBooleanRaw

This topic describes the ReadBooleanRaw function.
ReadInt32Acquire

The ReadInt32Acquire function...
ReadInt32NoFence

The ReadInt32NoFence function...
ReadInt32Raw

The ReadInt32Raw function...
ReadUInt32Acquire

The ReadUInt32Acquire function...
ReadUInt32NoFence

The ReadUInt32NoFence function...
ReadUInt32Raw

The ReadUInt32Raw function...
RemoveEntryList

The RemoveEntryList routine removes an entry from a doubly linked list of LIST_ENTRY structures.
RemoveHeadList

The RemoveHeadList routine removes an entry from the beginning of a doubly linked list of LIST_ENTRY structures.
RemoveTailList

The RemoveTailList routine removes an entry from the end of a doubly linked list of LIST_ENTRY structures.
ROUND_TO_PAGES

Learn more about: ROUND_TO_PAGES
RtlAnsiStringToUnicodeSize

The RtlAnsiStringToUnicodeSize routine returns the number of bytes required to hold an ANSI string converted into a Unicode string.
RtlAnsiStringToUnicodeString

RtlAnsiStringToUnicodeString converts the given ANSI source string into a Unicode string.
RtlAppendUnicodeStringToString

The RtlAppendUnicodeStringToString routine concatenates two Unicode strings.
RtlAppendUnicodeToString

The RtlAppendUnicodeToString routine concatenates the supplied Unicode string to a buffered Unicode string.
RtlAreBitsClear

The RtlAreBitsClear routine determines whether a given range of bits within a bitmap variable is clear.
RtlAreBitsSet

The RtlAreBitsSet routine determines whether a given range of bits within a bitmap variable is set.
RtlCheckBit

The RtlCheckBit routine determines whether a particular bit in a given bitmap variable is clear or set.
RtlCheckRegistryKey

The RtlCheckRegistryKey routine checks for the existence of a given named key in the registry.
RtlClearAllBits

The RtlClearAllBits routine sets all bits in a given bitmap variable to zero.
RtlClearBit

The RtlClearBit routine sets the specified bit in a bitmap to zero.
RtlClearBits

The RtlClearBits routine sets all bits in the specified range of bits in the bitmap to zero.
RtlCmDecodeMemIoResource

The RtlCmDecodeMemIoResource routine provides the starting address and length of a CM_PARTIAL_RESOURCE_DESCRIPTOR structure that describes a range of memory or I/O port addresses.
RtlCmEncodeMemIoResource

The RtlCmEncodeMemIoResource routine updates a CM_PARTIAL_RESOURCE_DESCRIPTOR structure to describe a range of memory or I/O port addresses.
RtlCompareMemory

The RtlCompareMemory routine compares two blocks of memory and returns the number of bytes that match until the first difference.
RtlCompareUnicodeString

The RtlCompareUnicodeString routine compares two Unicode strings.
RtlConstantTimeEqualMemory

This topic describes the RtlConstantTimeEqualMemory function.
RtlConvertLongToLargeInteger

The RtlConvertLongToLargeInteger routine converts the input signed integer to a signed large integer.
RtlConvertUlongToLargeInteger

The RtlConvertUlongToLargeInteger routine converts the input unsigned integer to a signed large integer. For Windows XP and later versions of Windows, do not use this routine; use the native support for __int64.
RtlCopyMemory

Learn how the RtlCopyMemory routine copies the contents of a source memory block to a destination memory block.
RtlCopyMemoryNonTemporal

This function copies from one buffer to another using non-temporal moves that do not pollute the cache. The buffers shouldn’t overlap.
RtlCopyUnicodeString

The RtlCopyUnicodeString routine copies a source string to a destination string.
RtlCreateRegistryKey

The RtlCreateRegistryKey routine adds a key object in the registry along a given relative path.
RtlCreateSecurityDescriptor

The RtlCreateSecurityDescriptor routine initializes a new absolute-format security descriptor. On return, the security descriptor is initialized with no system ACL, no discretionary ACL, no owner, no primary group, and all control flags set to zero.
RtlDeleteRegistryValue

The RtlDeleteRegistryValue routine removes the specified entry name and the associated values from the registry along the given relative path.
RtlDowncaseUnicodeChar

The RtlDowncaseUnicodeChar routine converts the specified Unicode character to lowercase.
RtlEqualLuid

Learn more about: RtlEqualLuid
RtlEqualMemory

The RtlEqualMemory routine compares two blocks of memory to determine whether the specified number of bytes are identical.
RtlEqualUnicodeString

The RtlEqualUnicodeString routine compares two Unicode strings to determine whether they are equal.
RtlFillMemory

The RtlFillMemory routine fills a block of memory with the specified fill value.
RtlFillMemoryNonTemporal

This function fills a block of memory with the specified fill value using non-temporal moves that do not pollute the cache.
RtlFindClearBits

The RtlFindClearBits routine searches for a range of clear bits of a requested size within a bitmap.
RtlFindClearBitsAndSet

The RtlFindClearBitsAndSet routine searches for a range of clear bits of a requested size within a bitmap and sets all bits in the range when it has been located.
RtlFindClearRuns

The RtlFindClearRuns routine finds the specified number of runs of clear bits within a given bitmap.
RtlFindFirstRunClear

The RtlFindFirstRunClear routine searches for the initial contiguous range of clear bits within a given bitmap.
RtlFindLastBackwardRunClear

The RtlFindLastBackwardRunClear routine searches a given bitmap for the preceding clear run of bits, starting from the specified index position.
RtlFindLeastSignificantBit

The RtlFindLeastSignificantBit routine returns the zero-based position of the least significant nonzero bit in its parameter.
RtlFindLongestRunClear

The RtlFindLongestRunClear routine searches for the largest contiguous range of clear bits within a given bitmap.
RtlFindMostSignificantBit

The RtlFindMostSignificantBit routine returns the zero-based position of the most significant nonzero bit in its parameter.
RtlFindNextForwardRunClear

The RtlFindNextForwardRunClear routine searches a given bitmap variable for the next clear run of bits, starting from the specified index position.
RtlFindSetBits

The RtlFindSetBits routine searches for a range of set bits of a requested size within a bitmap.
RtlFindSetBitsAndClear

The RtlFindSetBitsAndClear routine searches for a range of set bits of a requested size within a bitmap and clears all bits in the range when it has been located.
RtlFreeAnsiString

The RtlFreeAnsiString routine releases storage that was allocated by RtlUnicodeStringToAnsiString.
RtlFreeUnicodeString

The RtlFreeUnicodeString routine releases storage that was allocated by RtlAnsiStringToUnicodeString or RtlUpcaseUnicodeString.
RtlFreeUTF8String

The RtlFreeUTF8String function releases storage that was allocated by RtlUnicodeStringToUTF8String.
RtlGetVersion

The RtlGetVersion routine returns version information about the currently running operating system.
RtlGUIDFromString

The RtlGUIDFromString routine converts the given Unicode string to a GUID in binary format.
RtlHashUnicodeString

The RtlHashUnicodeString routine creates a hash value from a given Unicode string and hash algorithm.
RtlInitAnsiString

The RtlInitAnsiString routine initializes a counted string of ANSI characters.
RtlInitEmptyAnsiString

Learn more about: RtlInitEmptyAnsiString
RtlInitEmptyUnicodeString

Learn more about: RtlInitEmptyUnicodeString
RtlInitializeBitMap

The RtlInitializeBitMap routine initializes the header of a bitmap variable.
RtlInitString

The RtlInitString routine initializes a counted string of 8-bit characters.
RtlInitStringEx

The RtlInitStringEx routine in wdm.h initializes a counted string of 8-bit characters. RtlInitStringEx does not alter the source string.
RtlInitUnicodeString

For more information, see the WdmlibRtlInitUnicodeStringEx function.
RtlInitUTF8String

The RtlInitUTF8String function initializes a counted string of UTF-8 characters.
RtlInitUTF8StringEx

The RtlInitUTF8StringEx routine initializes a counted string of UTF-8 characters.
RtlInt64ToUnicodeString

The RtlInt64ToUnicodeString routine converts a specified unsigned 64-bit integer value to a Unicode string that represents the value in a specified base.
RtlIntegerToUnicodeString

The RtlIntegerToUnicodeString routine converts an unsigned integer value to a null-terminated string of one or more Unicode characters in the specified base.
RtlIntPtrToUnicodeString

The RtlIntPtrToUnicodeString routine converts a specified ULONG_PTR value to a Unicode string that represents the value in a specified base.
RtlIoDecodeMemIoResource

The RtlIoDecodeMemIoResource routine provides the address information that is contained in an IO_RESOURCE_DESCRIPTOR structure that describes a range of memory or I/O port addresses.
RtlIoEncodeMemIoResource

The RtlIoEncodeMemIoResource routine updates an IO_RESOURCE_DESCRIPTOR structure to describe a range of memory or I/O port addresses.
RtlIsNtDdiVersionAvailable

The RtlIsNtDdiVersionAvailable routine determines if a specified version of the Microsoft Windows device driver interface (DDI) is available.
RtlIsServicePackVersionInstalled

The RtlIsServicePackVersionInstalled routine determines if a specified service pack version of the Microsoft Windows device driver interface (DDI) is installed.
RtlIsZeroLuid

Learn more about: RtlIsZeroLuid
RtlLengthSecurityDescriptor

The RtlLengthSecurityDescriptor routine returns the size of a given security descriptor.
RtlMoveMemory

The RtlMoveMemory routine copies the contents of a source memory block to a destination memory block, and supports overlapping source and destination memory blocks.
RtlNumberOfClearBits

The RtlNumberOfClearBits routine returns a count of the clear bits in a given bitmap variable.
RtlNumberOfSetBits

The RtlNumberOfSetBits routine returns a count of the set bits in a given bitmap variable.
RtlNumberOfSetBitsUlongPtr

The RtlNumberOfSetBitsUlongPtr routine returns the number of bits in the specified ULONG_PTR integer value that are set to one.
RtlPrefetchMemoryNonTemporal

The RtlPrefetchMemoryNonTemporal routine provides a hint to the processor that a buffer should be temporarily moved into the processor cache.
RtlQueryRegistryValues

The RtlQueryRegistryValues routine allows the caller to query several values from the registry subtree with a single call.
RtlRetrieveUlong

Learn more about: RtlRetrieveUlong
RtlRetrieveUshort

Learn more about: RtlRetrieveUshort
RtlSanitizeUnicodeStringPadding

Sanitizes the padding for a Unicode string.
RtlSecureZeroMemory

The RtlSecureZeroMemory routine fills a block of memory with zeros in a way that is guaranteed to be secure.
RtlSetAllBits

The RtlSetAllBits routine sets all bits in a given bitmap variable.
RtlSetBit

The RtlSetBit routine sets the specified bit in a bitmap to one.
RtlSetBits

The RtlSetBits routine sets all bits in a given range of a given bitmap variable.
RtlSetDaclSecurityDescriptor

The RtlSetDaclSecurityDescriptor routine sets the DACL information of an absolute-format security descriptor, or if there is already a DACL present in the security descriptor, it is superseded.
RtlStoreUlong

Learn more about: RtlStoreUlong
RtlStoreUlonglong

Learn more about: RtlStoreUlonglong
RtlStoreUlongPtr

Learn more about: RtlStoreUlongPtr
RtlStoreUshort

Learn more about: RtlStoreUshort
RtlStringFromGUID

The RtlStringFromGUID routine converts a given GUID from binary format into a Unicode string.
RtlTestBit

The RtlTestBit routine returns the value of a bit in a bitmap.
RtlTimeFieldsToTime

The RtlTimeFieldsToTime routine converts TIME_FIELDS information to a system time value.
RtlTimeToTimeFields

The RtlTimeToTimeFields routine converts system time into a TIME_FIELDS structure.
RtlUlongByteSwap

The RtlUlongByteSwap routine reverses the ordering of the four bytes in a 32-bit unsigned integer value.
RtlUlonglongByteSwap

The RtlUlonglongByteSwap routine reverses the ordering of the eight bytes in a 64-bit unsigned integer value.
RtlUnicodeStringToAnsiSize

The RtlUnicodeStringToAnsiSize routine returns the number of bytes required for a null-terminated ANSI string that is equivalent to a specified Unicode string.
RtlUnicodeStringToAnsiString

The RtlUnicodeStringToAnsiString routine converts a given Unicode string into an ANSI string.
RtlUnicodeStringToInteger

The RtlUnicodeStringToInteger routine converts a Unicode string representation of a number to the equivalent integer value.
RtlUnicodeStringToUTF8String

The RtlUnicodeStringToUTF8String function converts the specified Unicode source string into an UTF8 string.
RtlUnicodeToUTF8N

The RtlUnicodeToUTF8N routine in wdm.h converts a Unicode string to a UTF-8 string. The UTF-8 output is null-terminated only if the Unicode input string is.
RtlUpcaseUnicodeChar

The RtlUpcaseUnicodeChar routine converts the specified Unicode character to uppercase.
RtlUshortByteSwap

The RtlUshortByteSwap routine reverses the ordering of the two bytes in a 16-bit unsigned integer value.
RtlUTF8StringToUnicodeString

The RtlUTF8StringToUnicodeString function converts the specified UTF8 source string into a Unicode string in accordance with the current system locale information.
RtlUTF8ToUnicodeN

The RtlUTF8ToUnicodeN routine in wdm.h converts a UTF-8 string to a Unicode string. The Unicode output is null-terminated only if the UTF-8 input string is.
RtlValidRelativeSecurityDescriptor

The RtlValidRelativeSecurityDescriptor routine checks the validity of a self-relative security descriptor.
RtlValidSecurityDescriptor

The RtlValidSecurityDescriptor routine checks a given security descriptor's validity.
RtlVerifyVersionInfo

The RtlVerifyVersionInfo routine compares a specified set of operating system version requirements to the corresponding attributes of the currently running version of the operating system.
RtlWriteRegistryValue

The RtlWriteRegistryValue routine writes caller-supplied data into the registry along the specified relative path at the given value name.
RtlxAnsiStringToUnicodeSize

The RtlxAnsiStringToUnicodeSize routine returns the number of bytes that are required for a null-terminated Unicode string that is equivalent to a specified ANSI string.
RtlxUnicodeStringToAnsiSize

The RtlxUnicodeStringToAnsiSize routine returns the number of bytes required for a null-terminated ANSI string that is equivalent to a specified Unicode string.
RtlZeroMemory

The RtlZeroMemory macro (wdm.h) fills a block of memory with zeros, given a pointer to the block and the length, in bytes, to be filled.
SeAccessCheck

The SeAccessCheck routine determines whether the requested access rights can be granted to an object protected by a security descriptor and an object owner.
SeAssignSecurity

The SeAssignSecurity routine builds a self-relative security descriptor for a new object, given the security descriptor of its parent directory and any originally requested security for the object.
SeAssignSecurityEx

The SeAssignSecurityEx routine builds a self-relative security descriptor for a new object given the following optional parameters:_a security descriptor of the object's parent directory, an explicit security descriptor for the object, and the object type.
SeCaptureSubjectContext

The SeCaptureSubjectContext routine in wdm.h captures the security context of the calling thread for access validation and auditing.
SeDeassignSecurity

The SeDeassignSecurity routine deallocates the memory associated with a security descriptor that was assigned using SeAssignSecurity.
SeEtwWriteKMCveEvent

The SeEtwWriteKMCveEvent function is a tracing function for publishing events when an attempted security vulnerability exploit is detected in your kernel-mode drivers.
SeLockSubjectContext

The SeLockSubjectContext routine in wdm.h locks the primary and impersonation tokens of a captured subject context.
SeReleaseSubjectContext

The SeReleaseSubjectContext routine in wdm.h releases a subject security context captured by an earlier call to SeCaptureSubjectContext.
SeUnlockSubjectContext

The SeUnlockSubjectContext routine in wdm.h unlocks the tokens of a captured subject context that were locked by a call to SeLockSubjectContext.
SeValidSecurityDescriptor

The SeValidSecurityDescriptor routine returns whether a given security descriptor is structurally valid.
TmCommitComplete

The TmCommitComplete routine notifies KTM that the calling resource manager has finished committing a transaction.
TmCommitEnlistment

The TmCommitEnlistment routine initiates the commit operation for a specified enlistment's transaction.
TmCommitTransaction

The TmCommitTransaction routine initiates a commit operation for a specified transaction.
TmCreateEnlistment

The TmCreateEnlistment routine creates a new enlistment object for a transaction.
TmDereferenceEnlistmentKey

The TmDereferenceEnlistmentKey routine decrements the reference count for the key of a specified enlistment object.
TmEnableCallbacks

The TmEnableCallbacks routine enables a callback routine that receives transaction notifications.
TmGetTransactionId

The TmGetTransactionId routine retrieves a transaction object's unit of work (UOW) identifier.
TmInitializeTransactionManager

The TmInitializeTransactionManager routine initializes a transaction manager object.
TmIsTransactionActive

The TmIsTransactionActive routine indicates whether a specified transaction is in its active state.
TmPrepareComplete

The TmPrepareComplete routine notifies KTM that the calling resource manager has finished preparing a transaction's data.
TmPrepareEnlistment

The TmPrepareEnlistment routine initiates the prepare operation for a specified enlistment's transaction.
TmPrePrepareComplete

The TmPrePrepareComplete routine notifies KTM that the calling resource manager has finished preliminary preparation of a transaction's data.
TmPrePrepareEnlistment

The TmPrePrepareEnlistment routine initiates the pre-prepare operation for a specified enlistment's transaction.
TmReadOnlyEnlistment

The TmReadOnlyEnlistment routine sets a specified enlistment to be read-only.
TmRecoverEnlistment

The TmRecoverEnlistment routine initiates a recovery operation for the transaction that is associated with a specified enlistment.
TmRecoverResourceManager

The TmRecoverResourceManager routine tries to recover the transaction that is associated with each enlistment of a specified resource manager object.
TmRecoverTransactionManager

The TmRecoverTransactionManager routine reconstructs the state of the transaction manager object (including all transactions, enlistments, and resource managers) from the recovery information that is in the log stream.
TmReferenceEnlistmentKey

The TmReferenceEnlistmentKey routine increments the reference count for the key of a specified enlistment object and retrieves the key.
TmRenameTransactionManager

The TmRenameTransactionManager routine changes the identity of the transaction manager object that is stored in the CLFS log file stream contained in the log file name.
TmRequestOutcomeEnlistment

The TmRequestOutcomeEnlistment routine asks KTM to try to provide an immediate outcome (commit or rollback) for the transaction that is associated with a specified enlistment.
TmRollbackComplete

The TmRollbackComplete routine notifies KTM that the calling resource manager has finished rolling back a transaction's data.
TmRollbackEnlistment

The TmRollbackEnlistment routine rolls back a specified enlistment.
TmRollbackTransaction

The TmRollbackTransaction routine initiates a rollback operation for a specified transaction.
TmSinglePhaseReject

The TmSinglePhaseReject routine informs KTM that the calling resource manager will not support a single-phase commit operation for a specified enlistment.
vDbgPrintEx

The vDbgPrintEx routine sends a string to the kernel debugger if certain conditions are met.
vDbgPrintExWithPrefix

The vDbgPrintExWithPrefix routine sends a string to the kernel debugger if certain conditions that you specify are met. This routine can append a prefix to debugger output to help organize debugging results.
VslCreateSecureSection

This VslCreateSecureSection material is not yet available. This placeholder topic is provided as an example of documentation that may be included in a later release.
VslDeleteSecureSection

This VslDeleteSecureSection material is not yet available. This placeholder topic is provided as an example of documentation that may be included in a later release.
WmiQueryTraceInformation

The WmiQueryTraceInformation routine returns information about a WMI event trace.
WmiTraceMessage

The WmiTraceMessage routine adds a message to the output log of a WPP software tracing session.
WmiTraceMessageVa

The WmiTraceMessageVa routine adds a message to the output log of a WPP software tracing session.
WRITE_PORT_BUFFER_UCHAR

The WRITE_PORT_BUFFER_UCHAR function (wdm.h) writes a number of bytes from a buffer to the specified port.
WRITE_PORT_BUFFER_ULONG

The WRITE_PORT_BUFFER_ULONG function (wdm.h) writes a number of ULONG values from a buffer to the specified port address.
WRITE_PORT_BUFFER_USHORT

The WRITE_PORT_BUFFER_USHORT function (wdm.h) writes a number of USHORT values from a buffer to the specified port address.
WRITE_PORT_UCHAR

The WRITE_PORT_UCHAR function (wdm.h) writes a byte to the specified port address in resident, mapped device memory.
WRITE_PORT_ULONG

The WRITE_PORT_ULONG function (wdm.h) writes a ULONG value to the specified port address in resident, mapped device memory.
WRITE_PORT_USHORT

The WRITE_PORT_USHORT function (wdm.h) writes a USHORT value to the specified port address in resident, mapped device memory.
WRITE_REGISTER_BUFFER_UCHAR

The WRITE_REGISTER_BUFFER_UCHAR function (wdm.h) writes a number of bytes from a buffer to the specified register.
WRITE_REGISTER_BUFFER_ULONG

The WRITE_REGISTER_BUFFER_ULONG function (wdm.h) writes a number of ULONG values from a buffer to the specified register.
WRITE_REGISTER_BUFFER_ULONG64

The WRITE_REGISTER_BUFFER_ULONG64 function (wdm.h) writes a number of ULONG64 values from a buffer to the specified register.
WRITE_REGISTER_BUFFER_USHORT

The WRITE_REGISTER_BUFFER_USHORT function (wdm.h) writes a number of USHORT values from a buffer to the specified register.
WRITE_REGISTER_UCHAR

The WRITE_REGISTER_UCHAR function (wdm.h) writes a byte to the specified register address in resident, mapped device memory.
WRITE_REGISTER_ULONG

The WRITE_REGISTER_ULONG function (wdm.h) writes a ULONG value to the specified register address in resident, mapped device memory.
WRITE_REGISTER_ULONG64

The WRITE_REGISTER_ULONG64 function (wdm.h) writes a ULONG64 value to the specified register address.
WRITE_REGISTER_USHORT

The WRITE_REGISTER_USHORT function (wdm.h) writes a USHORT value to the specified register address in resident, mapped device memory.
WriteInt32NoFence

The WriteInt32NoFence function...
WriteInt32Raw

The WriteInt32Raw function...
WriteInt32Release

The WriteInt32Release function...
WriteUInt32NoFence

The WriteUInt32NoFence function...
WriteUInt32Raw

The WriteUInt32Raw function...
WriteUInt32Release

The WriteUInt32Release function...
ZwClose

The ZwClose routine in wdm.h closes an object handle. ZwClose is a generic routine that operates on any type of object.
ZwCommitComplete

Learn how the ZwCommitComplete routine notifies KTM that the calling resource manager has finished committing a transaction's data.
ZwCommitEnlistment

Learn how the ZwCommitEnlistment routine initiates the commit operation for a specified enlistment's transaction.
ZwCommitTransaction

Learn how the ZwCommitTransaction routine initiates a commit operation for a specified transaction.
ZwCreateDirectoryObject

The ZwCreateDirectoryObject routine creates or opens an object-directory object.
ZwCreateEnlistment

Learn how the ZwCreateEnlistment routine creates a new enlistment object for a transaction.
ZwCreateFile

The ZwCreateFile routine creates a new file or opens an existing file.
ZwCreateKey

The ZwCreateKey routine creates a new registry key or opens an existing one.
ZwCreateKeyTransacted

The ZwCreateKeyTransacted routine creates a new registry key or opens an existing one, and it associates the key with a transaction.
ZwCreateResourceManager

Learn how the ZwCreateResourceManager routine creates a resource manager object.
ZwCreateSection

The ZwCreateSection routine in wdm.h creates a section object. Once the handle pointed to is no longer in use, the driver must close it.
ZwCreateTransaction

Learn how the ZwCreateTransaction routine creates a transaction object.
ZwCreateTransactionManager

Learn how the ZwCreateTransactionManager routine creates a new transaction manager object.
ZwDeleteKey

The ZwDeleteKey routine deletes an open key from the registry.
ZwDeleteValueKey

The ZwDeleteValueKey routine deletes a value entry matching a name from an open key in the registry. If no such entry exists, an error is returned.
ZwEnumerateKey

The ZwEnumerateKey routine returns information about a subkey of an open registry key.
ZwEnumerateTransactionObject

Learn how the ZwEnumerateTransactionObject routine enumerates the KTM objects on a computer.
ZwEnumerateValueKey

The ZwEnumerateValueKey routine gets information about the value entries of an open key.
ZwFlushKey

The ZwFlushKey routine forces a registry key to be committed to disk.
ZwGetNotificationResourceManager

Learn how the ZwGetNotificationResourceManager routine retrieves the next transaction notification from a specified resource manager's notification queue.
ZwLoadDriver

The ZwLoadDriver routine loads a driver into the system.
ZwMakeTemporaryObject

The ZwMakeTemporaryObject routine changes the attributes of an object to make it temporary.
ZwMapViewOfSection

The ZwMapViewOfSection routine maps a view of a section into the virtual address space of a subject process.
ZwOpenEnlistment

Learn how the ZwOpenEnlistment routine obtains a handle to an existing enlistment object.
ZwOpenEvent

The ZwOpenEvent routine opens a handle to an existing named event object with the specified desired access.
ZwOpenFile

The ZwOpenFile routine in wdm.h opens an existing file, directory, device, or volume. Once the handle pointed to is no longer in use, the driver must close it.
ZwOpenKey

The ZwOpenKey routine opens an existing registry key.
ZwOpenKeyEx

The ZwOpenKeyEx routine opens an existing registry key.
ZwOpenKeyTransacted

The ZwOpenKeyTransacted routine opens an existing registry key and associates the key with a transaction.
ZwOpenKeyTransactedEx

The ZwOpenKeyTransactedEx routine opens an existing registry key and associates the key with a transaction.
ZwOpenResourceManager

Learn how the ZwOpenResourceManager routine returns a handle to an existing resource manager object.
ZwOpenSection

The ZwOpenSection routine opens a handle for an existing section object.
ZwOpenSymbolicLinkObject

The ZwOpenSymbolicLinkObject routine opens an existing symbolic link.
ZwOpenTransaction

Learn how the ZwOpenTransaction routine obtains a handle to an existing transaction object.
ZwOpenTransactionManager

Learn how the ZwOpenTransactionManager routine obtains a handle to an existing transaction manager object.
ZwPrepareComplete

Learn how the ZwPrepareComplete routine notifies KTM that the calling resource manager has finished preparing a transaction's data.
ZwPrepareEnlistment

Learn how the ZwPrepareEnlistment routine initiates the prepare operation for a specified enlistment's transaction.
ZwPrePrepareComplete

Learn how the ZwPrePrepareComplete routine notifies KTM that the calling resource manager has finished preliminary preparation of a transaction's data.
ZwPrePrepareEnlistment

Learn how the ZwPrePrepareEnlistment routine initiates the pre-prepare operation for a specified enlistment's transaction.
ZwQueryFullAttributesFile

The ZwQueryFullAttributesFile routine supplies network open information for the specified file.
ZwQueryInformationByName

ZwQueryInformationByName returns the requested information about a file specified by file name.
ZwQueryInformationEnlistment

Learn how the ZwQueryInformationEnlistment routine retrieves information about a specified enlistment object.
ZwQueryInformationFile

The ZwQueryInformationFile routine returns various kinds of information about a file object.
ZwQueryInformationResourceManager

Learn how the ZwQueryInformationResourceManager routine retrieves information about a specified resource manager object.
ZwQueryInformationTransaction

Learn how the ZwQueryInformationTransaction routine retrieves information about a specified transaction.
ZwQueryInformationTransactionManager

Learn how the ZwQueryInformationTransactionManager routine retrieves information about a specified transaction manager object.
ZwQueryKey

The ZwQueryKey routine provides information about the class of a registry key, and the number and sizes of its subkeys.
ZwQuerySymbolicLinkObject

The ZwQuerySymbolicLinkObject routine returns a Unicode string that contains the target of a symbolic link.
ZwQueryValueKey

The ZwQueryValueKey routine returns a value entry for a registry key.
ZwReadFile

The ZwReadFile routine in wdm.h reads data from an open file. Callers of ZwReadFile must have already called ZwCreateFile.
ZwReadOnlyEnlistment

Learn how the ZwReadOnlyEnlistment routine sets a specified enlistment to be read-only.
ZwRecoverEnlistment

Learn how the ZwRecoverEnlistment routine initiates a recovery operation for the transaction that is associated with a specified enlistment.
ZwRecoverResourceManager

Learn how the ZwRecoverResourceManager routine tries to recover the transaction that is associated with each enlistment of a specified resource manager object.
ZwRecoverTransactionManager

Learn how the ZwRecoverTransactionManager routine reconstructs the state of the transaction manager object from the recovery information that is in the log stream.
ZwRollbackComplete

Learn how the ZwRollbackComplete routine notifies KTM that the calling resource manager has finished rolling back a transaction's data.
ZwRollbackEnlistment

Learn how the ZwRollbackEnlistment routine rolls back the transaction that is associated with a specified enlistment.
ZwRollbackTransaction

Learn how the ZwRollbackTransaction routine initiates a rollback operation for a specified transaction.
ZwRollforwardTransactionManager

Learn how the ZwRollforwardTransactionManager routine initiates recovery operations for all of the in-progress transactions that are assigned to a specified transaction manager.
ZwSetInformationEnlistment

Learn how the ZwSetInformationEnlistment routine sets information for a specified enlistment object.
ZwSetInformationFile

The ZwSetInformationFile routine in wdm.h changes various kinds of information about a file object. It ignores unsupported members of FILE_XXX_INFORMATION.
ZwSetInformationResourceManager

Learn how the ZwSetInformationResourceManager routine is not used.
ZwSetInformationTransaction

Learn how the ZwSetInformationTransaction routine sets information for a specified transaction.
ZwSetValueKey

The ZwSetValueKey routine creates or replaces a registry key's value entry.
ZwSinglePhaseReject

Learn how the ZwSinglePhaseReject routine informs KTM that the calling resource manager will not support single-phase commit operations for a specified enlistment.
ZwUnloadDriver

The ZwUnloadDriver routine unloads a driver from the system.
ZwUnmapViewOfSection

The ZwUnmapViewOfSection routine unmaps a view of a section from the virtual address space of a subject process.
ZwWriteFile

The ZwWriteFile routine writes data to an open file.

Callback functions

 
ALLOCATE_FUNCTION_EX

The LookasideListAllocateEx routine allocates the storage for a new lookaside-list entry when a client requests an entry from a lookaside list that is empty.
BOUND_CALLBACK

The BoundCallback routine is executed whenever the system issues a bounds exception for a user-mode thread.
D3COLD_REQUEST_AUX_POWER

Enables the function device object (FDO) to convey its auxiliary power requirement.
D3COLD_REQUEST_CORE_POWER_RAIL

Enables the function device object (FDO) to indicate whether the core power rail is needed.
D3COLD_REQUEST_PERST_DELAY

Enables the function device object (FDO) to convey its requirement for a fixed delay time.
DEVICE_BUS_SPECIFIC_RESET_HANDLER

This topic describes the DEVICE_BUS_SPECIFIC_RESET_HANDLER callback function.
DEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER

This topic describes the DEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER callback function.
DEVICE_RESET_HANDLER

The DeviceReset routine is used to reset and recover a malfunctioning device.
DMA_COMPLETION_ROUTINE

The DmaCompletionRoutine callback routine notifies the driver that previously requested a system DMA transfer that this transfer is complete.
DRIVER_ADD_DEVICE

The AddDevice routine is responsible for creating functional device objects (FDO) or filter device objects (filter DO) for devices enumerated by the Plug and Play (PnP) manager.
DRIVER_CANCEL

The Cancel routine cancels an I/O operation.
DRIVER_CONTROL

This routine starts a DMA data-transfer or a data transfer operation.
DRIVER_DISPATCH

The callback routine services various IRPs. For a list of function codes, see Remarks.
DRIVER_INITIALIZE

DriverEntry is the first routine called after a driver is loaded, and is responsible for initializing the driver.
DRIVER_LIST_CONTROL

The AdapterListControl routine starts a direct memory access (DMA) scatter/gather operation.
DRIVER_STARTIO

The StartIo routine starts the I/O operation described by an IRP.
DRIVER_UNLOAD

The Unload routine performs any operations that are necessary before the system unloads the driver.
ENABLE_VIRTUALIZATION

The EnableVirtualization routine enables or disables virtualization for a PCI Express (PCIe) device that supports the single root I/O virtualization (SR-IOV) interface.
ETWENABLECALLBACK

The EtwEnableCallback function is an optional driver-supplied callback function that is used to receive enable or disable notifications.
EX_CALLBACK_FUNCTION

A filter driver's RegistryCallback routine can monitor, block, or modify a registry operation.
EXT_CALLBACK

An ExTimerCallback callback routine runs after an EX_TIMER timer object's time interval expires.
EXT_DELETE_CALLBACK

An ExTimerDeleteCallback callback routine runs when the operating system deletes an EX_TIMER timer object.
FPGA_BUS_SCAN

Reserved for future use. Triggers a bus scan at the parent of the FPGA device.
FPGA_CONTROL_CONFIG_SPACE

Reserved for future use. Enables or disables the access to the configuration space of the FPGA device.
FPGA_CONTROL_ERROR_REPORTING

Reserved for future use. Toggles the error reporting for the FPGA device and its parent bridge.
FPGA_CONTROL_LINK

Reserved for future use of FPGA_CONTROL_LINK.
FREE_FUNCTION_EX

The LookasideListFreeEx routine frees the storage for a lookaside-list entry when a client tries to insert the entry into a lookaside list that is full.
GET_D3COLD_CAPABILITY

The GetBusDriverD3ColdSupport routine enables the driver for a device to query whether the enumerating bus driver supports the D3cold device power state.
GET_D3COLD_LAST_TRANSITION_STATUS

The GetLastTransitionStatus routine enables the driver for a device to query whether the most recent transition to the D3hot substate was followed by a transition to the D3cold substate.
GET_DEVICE_RESET_STATUS

This topic describes the GET_DEVICE_RESET_STATUS callback function.
GET_DMA_ADAPTER

The GetDmaAdapter routine returns a DMA_ADAPTER structure for the target device.
GET_IDLE_WAKE_INFO

The GetIdleWakeInfo routine enables the driver for a device to discover the device power states from which the device can signal a wake event.
GET_SDEV_IDENTIFIER

This material is not yet available. This placeholder topic is provided as an example of documentation that may be included in a later release.
GET_SET_DEVICE_DATA

The GetBusData routine reads data from the device's configuration space.
GET_UPDATED_BUS_RESOURCE

Reports the latest resource lists.
GET_VIRTUAL_DEVICE_DATA

The GetVirtualFunctionData routine reads data from the PCI Express (PCIe) configuration space of a virtual function (VF) on a device that supports the single root I/O virtualization (SR-IOV) interface.
GET_VIRTUAL_DEVICE_LOCATION

The GetLocation routine returns the device location of a PCI Express (PCIe) virtual function (VF) on a PCI bus. A device that supports the single root I/O virtualization (SR-IOV) interface can expose one or more VFs on the PCI bus.
GET_VIRTUAL_DEVICE_RESOURCES

The GetResources routine returns the resources that the PCI Express (PCIe) physical function (PF) requires in order to enable virtualization on a device that supports the single root I/O virtualization (SR-IOV) interface.
GET_VIRTUAL_FUNCTION_PROBED_BARS

The GetVirtualFunctionProbedBars routine returns the values of the PCI Express (PCIe) Base Address Registers (BARs) of a device that supports the single root I/O virtualization (SR-IOV) interface.
IO_COMPLETION_ROUTINE

The IoCompletion routine completes the processing of I/O operations.
IO_CSQ_ACQUIRE_LOCK

The CsqAcquireLock routine is used by the system to acquire the lock for a driver-implemented, cancel-safe IRP queue.
IO_CSQ_COMPLETE_CANCELED_IRP

The CsqCompleteCanceledIrp routine is used by the system to signal to the driver that it can complete a canceled IRP.
IO_CSQ_INSERT_IRP

The CsqInsertIrp routine is used by the system to insert an IRP into a driver-implemented, cancel-safe IRP queue.
IO_CSQ_INSERT_IRP_EX

The CsqInsertIrpEx routine is used by the system to insert an IRP into a driver-implemented, cancel-safe IRP queue.
IO_CSQ_PEEK_NEXT_IRP

The CsqPeekNextIrp routine is used by the system to find the next matching IRP in a driver-implemented, cancel-safe IRP queue.
IO_CSQ_RELEASE_LOCK

The CsqReleaseLock routine is used by the system to release the lock that was acquired using CsqAcquireLock.
IO_CSQ_REMOVE_IRP

The CsqRemoveIrp routine is used by the system to remove the specified IRP from a driver-implemented, cancel-safe IRP queue.
IO_DPC_ROUTINE

The DpcForIsr routine finishes the servicing of an I/O operation, after an InterruptService routine returns.
IO_SESSION_NOTIFICATION_FUNCTION

The IO_SESSION_NOTIFICATION_FUNCTION function type defines a callback routine through which a driver receives notifications of changes in the state of user sessions that the driver is interested in.
IO_TIMER_ROUTINE

The IoTimer routine is a DPC that, if registered, is called once per second.
IO_WORKITEM_ROUTINE

A WorkItem routine performs the processing for a work item that was queued by the IoQueueWorkItem routine.
IO_WORKITEM_ROUTINE_EX

A WorkItemEx routine performs the processing for a work item that was queued by the IoQueueWorkItemEx or IoTryQueueWorkItem routine.
IOMMU_DEVICE_CREATE

Takes a physical device object and creates an IOMMU_DMA_DEVICE.
IOMMU_DEVICE_DELETE

Deletes the provided IOMMU_DMA_DEVICE.
IOMMU_DEVICE_FAULT_HANDLER

Reports fault from a specific device and domain.
IOMMU_DEVICE_QUERY_DOMAIN_TYPES

Queries for the available types of domains that a IOMMU_DMA_DEVICE is allowed to attach to, depending on environment factors, such as platform and DMA Guard Policy.
IOMMU_DOMAIN_ATTACH_DEVICE

Attaches a device to an existing domain.
IOMMU_DOMAIN_ATTACH_DEVICE_EX

Attaches an IOMMU_DMA_DEVICE to an existing DMA device domain.
IOMMU_DOMAIN_CONFIGURE

Configures a domain for use.
IOMMU_DOMAIN_CREATE

Creates a new DMA remapping device domain (a container for a set of page tables).
IOMMU_DOMAIN_CREATE_EX

Creates a new DMA device domain based on the provided domain type.
IOMMU_DOMAIN_DELETE

Deletes an existing domain.
IOMMU_DOMAIN_DETACH_DEVICE

Detaches a device from an existing domain.
IOMMU_DOMAIN_DETACH_DEVICE_EX

Detaches a IOMMU_DMA_DEVICE from an existing domain.
IOMMU_FLUSH_DOMAIN

Flushes the TLB for all entries which match this domain.
IOMMU_FLUSH_DOMAIN_VA_LIST

Flushes the TLB for all entries that match the specified domain's ASID and one of the addresses in the provided list.
IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE

Frees a logical address token created by IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE.
IOMMU_INTERFACE_STATE_CHANGE_CALLBACK

This routine is invoked whenever there has been a system state change that affects a DMA_IOMMU_INTERFACE_EX.
IOMMU_MAP_IDENTITY_RANGE

Creates an identity mapping for the provided MDL in the provided domain.
IOMMU_MAP_IDENTITY_RANGE_EX

Creates an identity mapping for a provided physical address space in the provided domain.
IOMMU_MAP_LOGICAL_RANGE

Maps a range of pages into the address space of a domain.
IOMMU_MAP_LOGICAL_RANGE_EX

Maps physical address space into the logical address space of an IOMMU_DMA_DOMAIN.
IOMMU_MAP_RESERVED_LOGICAL_RANGE

Maps a reserved logical range.
IOMMU_QUERY_INPUT_MAPPINGS

Attempts to find input mapping IDs which are valid for the given device and populate the provided buffer with those IDs.
IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK

Allows the caller to register a callback to be invoked whenever any state change related to a DMA_IOMMU_INTERFACE_EX occurs.
IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE

Preallocates logical address space that can be used for future mappings.
IOMMU_SET_DEVICE_FAULT_REPORTING

This routine sets the device fault reporting state to a device already attached to a domain.
IOMMU_SET_DEVICE_FAULT_REPORTING_EX

This routine set the device fault reporting state on a device already attached to a domain.
IOMMU_UNMAP_IDENTITY_RANGE

Deletes an identity mapping for the specified MDL.
IOMMU_UNMAP_IDENTITY_RANGE_EX

Deletes an identity mapping created by IOMMU_MAP_IDENTITY_RANGE_EX.
IOMMU_UNMAP_LOGICAL_RANGE

Unmaps a linear range from a domain.
IOMMU_UNMAP_RESERVED_LOGICAL_RANGE

Unmaps a previously mapped reserved logical range.
IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK

Allows the caller to deregister a registered IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK.
KBUGCHECK_CALLBACK_ROUTINE

The BugCheckCallback routine is executed whenever the system issues a bug check.
KBUGCHECK_REASON_CALLBACK_ROUTINE

Driver-implemented callback functions that the system executes when it issues a bug check.
KDEFERRED_ROUTINE

The callback routine performs actions, after an InterruptService returns, of a threaded DPC, The CustomDpc routine finishes the servicing of an I/O operation, after an InterruptService routine returns.The CustomThreadedDpc routine performs the action of a threaded DPC. The system executes this routine when the threaded DPC runs.The CustomTimerDpc routine executes after a timer object's time interval expires.
KIPI_BROADCAST_WORKER

The IpiGenericCall routine runs simultaneously on all processors.
KMESSAGE_SERVICE_ROUTINE

An InterruptMessageService routine services a message-signaled interrupt.
KSERVICE_ROUTINE

The InterruptService routine (ISR) quickly services a device interrupt and schedules post-interrupt processing of received data, if necessary.
KSTART_ROUTINE

The ThreadStart routine provides an entry point for a driver-created system thread.
KSYNCHRONIZE_ROUTINE

The SynchCritSection routine is used to access hardware resources or driver data that are shared with a driver's InterruptService routine.
MM_MDL_ROUTINE

A driver-supplied callback routine that is invoked after a memory descriptor list (MDL) is mapped by calling the MmMapMdl function.
NPEM_CONTROL_ENABLE_DISABLE

Learn more about: NPEM_CONTROL_ENABLE_DISABLE
NPEM_CONTROL_QUERY_STANDARD_CAPABILITIES

Learn more about: NPEM_CONTROL_QUERY_STANDARD_CAPABILITIES
NPEM_CONTROL_SET_STANDARD_CONTROL

Learn more about: NPEM_CONTROL_SET_STANDARD_CONTROL
PALLOCATE_ADAPTER_CHANNEL

The AllocateAdapterChannel routine prepares the system for a DMA operation on behalf of the target device object, and then calls the driver-supplied AdapterControl routine to carry out the DMA operation.
PALLOCATE_ADAPTER_CHANNEL_EX

The AllocateAdapterChannelEx routine allocates the resources that are needed to perform a DMA transfer, and then calls the driver-supplied AdapterControl routine to initiate the DMA transfer.
PALLOCATE_COMMON_BUFFER

The AllocateCommonBuffer routine allocates memory and maps it so that it is simultaneously accessible from both the processor and a device for DMA operations.
PALLOCATE_COMMON_BUFFER_EX

The AllocateCommonBufferEx routine allocates memory for a common buffer and maps this memory so that it can be accessed both by the processor and by a device that performs DMA operations.
PALLOCATE_COMMON_BUFFER_VECTOR

Learn more about: PALLOCATE_COMMON_BUFFER_VECTOR callback function
PALLOCATE_COMMON_BUFFER_WITH_BOUNDS

This callback function allocates the memory for a common buffer and maps it so that it can be accessed by a master device and the CPU.
PALLOCATE_DOMAIN_COMMON_BUFFER

This callback function allocates the memory for a domain common buffer.
PBUILD_MDL_FROM_SCATTER_GATHER_LIST

The BuildMdlFromScatterGatherList routine builds an MDL from a scatter/gather list allocated by the system.Note  This routine is reserved for system use.
PBUILD_SCATTER_GATHER_LIST

The BuildScatterGatherList routine prepares the system for a DMA operation, using a driver-supplied buffer to build the scatter/gather list.
PBUILD_SCATTER_GATHER_LIST_EX

The BuildScatterGatherListEx routine allocates the resources that are required for a DMA transfer, builds a scatter/gather list, and calls the driver-supplied AdapterListControl routine to initiate the DMA transfer.
PCALCULATE_SCATTER_GATHER_LIST_SIZE

The CalculateScatterGatherList routine calculates the size, in bytes, of scatter/gather list necessary to hold a given buffer.
PCANCEL_ADAPTER_CHANNEL

The CancelAdapterChannel routine tries to cancel a pending request to allocate a DMA channel.
PCANCEL_MAPPED_TRANSFER

The CancelMappedTransfer routine cancels a system DMA transfer that is currently mapped to an adapter.
PCI_MSIX_MASKUNMASK_ENTRY

The MaskTableEntry routine masks an interrupt in the MSI-X hardware interrupt table.
PCI_MSIX_SET_ENTRY

The SetTableEntry routine sets the message ID for a table entry in the MSI-X hardware interrupt table.
PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK

The ClfsAdvanceTailCallback function advances the base log sequence number (LSN) of the client's log.
PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK

The ClfsLogGrowthCompleteCallback function implements the actions that the client will take when space is freed in a log that had previously been full.
PCLFS_CLIENT_LOG_UNPINNED_CALLBACK

The ClfsLogUnpinnedCallback function implements any actions that the client will take when a log that had previously been pinned becomes unpinned.
PCONFIGURE_ADAPTER_CHANNEL

The ConfigureAdapterChannel routine invokes a custom function that is implemented by the DMA controller represented by an adapter object.
PCREATE_COMMON_BUFFER_FROM_MDL

The CreateCommonBufferFromMdl routine will attempt to create a common buffer from an MDL by testing for device access compatibility and potentially mapping the memory to a contiguous logical range depending on the translation type. Like all other common buffer allocation functions, this function does not provide a forward progress guarantee.
PCW_CALLBACK

Providers can implement a PCW_CALLBACK function to receive notification when consumers perform certain actions, such as adding or removing counters from a query.
PFLUSH_ADAPTER_BUFFERS

The FlushAdapterBuffers routine flushes any data remaining in the system DMA controller's internal cache or in a bus-master adapter's internal cache at the end of a DMA transfer operation.
PFLUSH_ADAPTER_BUFFERS_EX

The FlushAdapterBuffersEx routine flushes any data that remains in the data cache at the end of a DMA transfer operation performed by a system DMA controller or bus-master device.
PFLUSH_DMA_BUFFER

The callback routine flushes any data remaining in the memory region described by an MDL.
PFREE_ADAPTER_CHANNEL

The FreeAdapterChannel routine releases the system DMA controller when a driver has completed all DMA operations necessary to satisfy the current IRP.
PFREE_ADAPTER_OBJECT

The FreeAdapterObject routine releases the specified adapter object after a driver has completed all DMA operations.
PFREE_COMMON_BUFFER

The FreeCommonBuffer routine frees a common buffer allocated by AllocateCommonBuffer, along with all resources the buffer uses.
PFREE_COMMON_BUFFER_FROM_VECTOR

Describes the PFREE_COMMON_BUFFER_FROM_VECTOR callback function.
PFREE_COMMON_BUFFER_VECTOR

Describes the PFREE_COMMON_BUFFER_VECTOR callback function.
PFREE_MAP_REGISTERS

The FreeMapRegisters routine releases a set of map registers that were saved from a call to AllocateAdapterChannel.
PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX

Describes the PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX callback function.
PGET_DMA_ADAPTER_INFO

The GetDmaAdapterInfo routine retrieves information about the hardware capabilities of a system DMA channel.
PGET_DMA_ALIGNMENT

The GetDmaAlignment routine returns the alignment requirements of the DMA system.
PGET_DMA_DOMAIN

The PGET_DMA_DOMAIN callback function gets the handle to the DMA domain.
PGET_DMA_TRANSFER_INFO

The GetDmaTransferInfo routine calculates the allocation requirements for a scatter/gather DMA transfer.
PGET_SCATTER_GATHER_LIST

The GetScatterGatherList routine prepares the system for a DMA scatter/gather operation on behalf of the target device object, through either the system DMA controller or a bus-master adapter.
PGET_SCATTER_GATHER_LIST_EX

The GetScatterGatherListEx routine allocates the resources that are required for a DMA transfer, builds a scatter/gather list, and calls the driver-supplied AdapterListControl routine to initiate the DMA transfer.
PINITIALIZE_DMA_TRANSFER_CONTEXT

The InitializeDmaTransferContext routine initializes an opaque DMA transfer context that is used to track pending allocations of DMA resources.
PINTERFACE_DEREFERENCE

The PINTERFACE_DEREFERENCE callback function (wdm.h) decrements the reference count on a driver-defined interface.
PINTERFACE_REFERENCE

The PINTERFACE_REFERENCE callback function (wdm.h) increments the reference count on a driver-defined interface.
PJOIN_DMA_DOMAIN

The PJOIN_DMA_DOMAIN callback function joins the specified DMA domain.
PLEAVE_DMA_DOMAIN

The PLEAVE_DMA_DOMAIN callback function leaves the specified DMA domain.
PMAP_TRANSFER

The MapTransfer routine sets up map registers for an adapter object to map a DMA transfer from a locked-down buffer.
PMAP_TRANSFER_EX

The MapTransferEx routine sets up map registers to map the physical addresses in a scatter/gather list to the logical addresses that are required to do a DMA transfer.
PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK

The ComponentActiveConditionCallback callback routine notifies the driver that the specified component completed a transition from the idle condition to the active condition.
PO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK

The ComponentCriticalTransitionCallback callback routine handles a transition of the specified component between the F0 (fully on) and low-power Fx component power states.
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK

The ComponentIdleConditionCallback callback routine notifies the driver that the specified component completed a transition from the active condition to the idle condition.
PO_FX_COMPONENT_IDLE_STATE_CALLBACK

The ComponentIdleStateCallback callback routine notifies the driver of a pending change to the Fx power state of the specified component.
PO_FX_COMPONENT_PERF_STATE_CALLBACK

The ComponentPerfStateCallback callback routine notifies the driver that its request to change the performance state of a component is complete.
PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK

The DevicePowerNotRequiredCallback callback routine notifies the device driver that the device is not required to stay in the D0 power state.
PO_FX_DEVICE_POWER_REQUIRED_CALLBACK

The DevicePowerRequiredCallback callback routine notifies the device driver that the device must enter and remain in the D0 power state.
PO_FX_DIRECTED_POWER_DOWN_CALLBACK

The PO_FX_DIRECTED_POWER_DOWN_CALLBACK callback function is implemented by the client driver to handle driver-specific power down activities on behalf of DFx.
PO_FX_DIRECTED_POWER_UP_CALLBACK

The PO_FX_DIRECTED_POWER_UP_CALLBACK callback function is implemented by the client driver to handle driver-specific power up activities on behalf of DFx.
PO_FX_POWER_CONTROL_CALLBACK

The PowerControlCallback callback routine performs a power control operation that is requested by the power management framework (PoFx).
POB_POST_OPERATION_CALLBACK

The ObjectPostCallback routine is called by the operating system after a process or thread handle operation occurs.
POB_PRE_OPERATION_CALLBACK

The ObjectPreCallback routine is called by the operating system when a process or thread handle operation occurs.
PPUT_DMA_ADAPTER

The PutDmaAdapter routine frees a DMA_ADAPTER structure previously allocated by IoGetDmaAdapter.
PPUT_SCATTER_GATHER_LIST

The PutScatterGatherList routine frees the previously allocated map registers and scatter/gather list used in scatter/gather DMA.
PREAD_DMA_COUNTER

The ReadDmaCounter routine returns the number of bytes remaining to be transferred during the current subordinate DMA operation.
PREENUMERATE_SELF

A ReenumerateSelf routine requests that a bus driver reenumerate a child device.
PROCESSOR_HALT_ROUTINE

A Halt callback routine transitions the processor to an idle state.
PTM_RM_NOTIFICATION

A resource manager's ResourceManagerNotification callback routine receives and handles transaction notifications.
REQUEST_POWER_COMPLETE

The PowerCompletion callback routine completes the processing of a power IRP.
RTL_QUERY_REGISTRY_ROUTINE

The QueryRoutine routine provides information about a registry value that was requested in a preceding call to the RtlQueryRegistryValues routine.
SET_D3COLD_SUPPORT

The SetD3ColdSupport routine enables or disables transitions to the D3cold device power state.
SET_VIRTUAL_DEVICE_DATA

The SetVirtualFunctionData routine writes data to the PCI Express (PCIe) configuration space of a virtual function (VF) on a device that supports the single root I/O virtualization (SR-IOV) interface.
TRANSLATE_BUS_ADDRESS

The TranslateBusAddress routine translates addresses on the parent bus to logical addresses.

Structures

 
DMA_ADAPTER

The DMA_ADAPTER structure describes a system-defined interface to a DMA controller for a given device. A driver calls IoGetDmaAdapter to obtain this structure.
DMA_OPERATIONS

The DMA_OPERATIONS structure provides a table of pointers to functions that control the operation of a DMA controller.
ACCESS_STATE

The ACCESS_STATE structure describes the state of an access in progress.
ACL

The ACL structure is the header of an access-control list (ACL). A complete ACL consists of an ACL structure followed by an ordered list of zero or more access-control entries (ACE).
ACPI_INTERFACE_STANDARD2

This topic describes the ACPI_INTERFACE_STANDARD2 structure.
BATTERY_REPORTING_SCALE

Battery miniclass drivers fill in the BATTERY_REPORTING_SCALE (wdm.h) structure in response to certain BatteryMiniQueryInformation requests.
BOOTDISK_INFORMATION

The BOOTDISK_INFORMATION structure contains basic information describing the boot and system disks.
BOOTDISK_INFORMATION_EX

The BOOTDISK_INFORMATION_EX structure contains extended information describing the boot and system disks.
BUS_INTERFACE_STANDARD

The BUS_INTERFACE_STANDARD interface structure enables device drivers to make direct calls to parent bus driver routines. This structure defines the GUID_BUS_INTERFACE_STANDARD interface.
BUS_RESOURCE_UPDATE_INTERFACE

Enables device drivers to make direct calls to parent bus driver routines. This structure defines the GUID_BUS_RESOURCE_UPDATE_INTERFACE interface.
BUS_SPECIFIC_RESET_FLAGS

This topic describes the BUS_SPECIFIC_RESET_FLAGS union.
CLFS_LOG_NAME_INFORMATION

The CLFS_LOG_NAME_INFORMATION structure holds the name of a Common Log File System (CLFS) stream or log.
CLFS_MGMT_CLIENT_REGISTRATION

The CLFS_MGMT_CLIENT_REGISTRATION structure is given to CLFS management by clients who manage their own logs.
CLFS_MGMT_POLICY

The CLFS_MGMT_POLICY structure holds a description of a policy for managing a CLFS log.
CLFS_STREAM_ID_INFORMATION

The CLFS_STREAM_ID_INFORMATION structure holds a value that identifies a stream in a Common Log File System (CLFS) log.
CLS_CONTAINER_INFORMATION

The CLFS_CONTAINER_INFORMATION structure holds descriptive information for an individual container in a Common Log File System (CLFS) log.
CLS_INFORMATION

The CLFS_INFORMATION structure holds metadata and state information for a Common Log File System (CLFS) stream and/or its underlying physical log.
CLS_IO_STATISTICS

The CLFS_IO_STATISTICS structure holds I/O statistics data for a Common Log File System (CLFS) log.
CLS_IO_STATISTICS_HEADER

The CLFS_IO_STATISTICS_HEADER structure holds the header portion of a CLFS_IO_STATISTICS structure.
CLS_LSN

The CLFS_LSN structure identifies an individual record in a Common Log File System (CLFS) stream.
CLS_SCAN_CONTEXT

The CLFS_SCAN_CONTEXT structure holds context information to support a scan of the containers in a Common Log File System (CLFS) log.
CLS_WRITE_ENTRY

The CLFS_WRITE_ENTRY structure holds the address and size of a buffer that contains one unit of data to be written to a Common Log File System (CLFS) stream.
CM_EISA_FUNCTION_INFORMATION

The _CM_EISA_FUNCTION_INFORMATION structure (wdm.h) defines detailed EISA configuration information returned by HalGetBusData or HalGetBusDataByOffset.
CM_EISA_SLOT_INFORMATION

The _CM_EISA_SLOT_INFORMATION structure (wdm.h) defines EISA configuration header information returned by HalGetBusData or by HalGetBusDataByOffset.
CM_FLOPPY_DEVICE_DATA

The CM_FLOPPY_DEVICE_DATA structure defines a device-type-specific data record that is stored in the \Registry\Machine\Hardware\Description tree for a floppy controller if the system can collect this information during the boot process.
CM_FULL_RESOURCE_DESCRIPTOR

The CM_FULL_RESOURCE_DESCRIPTOR structure specifies a set of system hardware resources of various types, assigned to a device that is connected to a specific bus. This structure is contained within a CM_RESOURCE_LIST structure.
CM_INT13_DRIVE_PARAMETER

The CM_INT13_DRIVE_PARAMETER structure defines a device-type-specific data record that is stored in the \Registry\Machine\Hardware\Description tree for a disk controller if the system can collect this information during the boot process.
CM_KEYBOARD_DEVICE_DATA

The CM_KEYBOARD_DEVICE_DATA structure defines a device-type-specific data record that is stored in the \Registry\Machine\Hardware\Description tree for a keyboard peripheral if the system can collect this information during the boot process.
CM_MCA_POS_DATA

The _CM_MCA_POS_DATA structure (wdm.h) is obsolete. It defines IBM-compatible MCA POS configuration information for a slot.
CM_PARTIAL_RESOURCE_DESCRIPTOR

The CM_PARTIAL_RESOURCE_DESCRIPTOR structure specifies one or more system hardware resources, of a single type, assigned to a device.
CM_PARTIAL_RESOURCE_LIST

The CM_PARTIAL_RESOURCE_LIST structure specifies a set of system hardware resources, of various types, assigned to a device. This structure is contained within a CM_FULL_RESOURCE_DESCRIPTOR structure.
CM_POWER_DATA

Learn how the CM_POWER_DATA structure contains information about a device's power management state and capabilities.
CM_RESOURCE_LIST

The CM_RESOURCE_LIST structure specifies all of the system hardware resources assigned to a device.
CM_SCSI_DEVICE_DATA

The CM_SCSI_DEVICE_DATA structure defines a device-type-specific data record that is stored in the \Registry\Machine\Hardware\Description tree for a SCSI HBA if the system can collect this information during the boot process.
CM_SERIAL_DEVICE_DATA

The CM_SERIAL_DEVICE_DATA structure defines a device-type-specific data record that is stored in the \Registry\Machine\Hardware\Description tree for a serial controller if the system can collect this information during the boot process.
COUNTED_REASON_CONTEXT

Learn how the COUNTED_REASON_CONTEXT structure contains one or more strings that give reasons for a power request.
D3COLD_AUX_POWER_AND_TIMING_INTERFACE

Allows device drivers to negotiate a higher auxiliary power for their PCI devices while in D3Cold state.
D3COLD_SUPPORT_INTERFACE

The D3COLD_SUPPORT_INTERFACE interface structure contains pointers to the routines in the GUID_D3COLD_SUPPORT_INTERFACE driver interface.
DEVICE_BUS_SPECIFIC_RESET_INFO

Defines the DEVICE_BUS_SPECIFIC_RESET_INFO structure.
DEVICE_BUS_SPECIFIC_RESET_TYPE

Defines the DEVICE_BUS_SPECIFIC_RESET_TYPE structure.
DEVICE_CAPABILITIES

A DEVICE_CAPABILITIES structure describes PnP and power capabilities of a device. This structure is returned in response to an IRP_MN_QUERY_CAPABILITIES IRP.
DEVICE_DESCRIPTION

The DEVICE_DESCRIPTION structure describes the attributes of the physical device for which a driver is requesting a DMA adapter.
DEVICE_FAULT_CONFIGURATION

This structure is used in setting the device fault reporting state
DEVICE_INTERFACE_CHANGE_NOTIFICATION

The DEVICE_INTERFACE_CHANGE_NOTIFICATION structure describes a device interface that has been enabled (arrived) or disabled (removed).
DEVICE_OBJECT

Learn more about the DEVICE_OBJECT structure.
DEVICE_RESET_INTERFACE_STANDARD

The DEVICE_RESET_INTERFACE_STANDARD structure enables function drivers to reset and recover malfunctioning devices. This structure describes the GUID_DEVICE_RESET_INTERFACE_STANDARD interface.
DEVICE_RESET_STATUS_FLAGS

This topic describes the DEVICE_RESET_STATUS_FLAGS union.
DMA_ADAPTER_INFO

The DMA_ADAPTER_INFO structure is a container for a DMA_ADAPTER_INFO_XXX structure that describes the capabilities of a system DMA controller.
DMA_ADAPTER_INFO_CRASHDUMP

This topic describes the DMA_ADAPTER_INFO_CRASHDUMP structure.
DMA_ADAPTER_INFO_V1

The DMA_ADAPTER_INFO_V1 structure describes the capabilities of the system DMA controller that is represented by an adapter object.
DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION

Learn more about: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION structure
DMA_IOMMU_INTERFACE

An extended version of the INTERFACE structure that allows device drivers to invoke the callback functions that perform device domain operations.
DMA_IOMMU_INTERFACE_EX

An interface structure that allows device drivers to interface with the IOMMU functions that perform device domain operations.
DMA_IOMMU_INTERFACE_V1

Learn more about: DMA_IOMMU_INTERFACE_V1
DMA_IOMMU_INTERFACE_V2

A structure containing the set of IOMMU Version 2 (V2) functions.
DMA_TRANSFER_INFO

The DMA_TRANSFER_INFO structure is a container for a DMA_TRANSFER_INFO_XXX structure that describes the allocation requirements for a scatter/gather list.
DMA_TRANSFER_INFO_V1

The DMA_TRANSFER_INFO_V1 structure contains the allocation requirements for a scatter/gather list that describes the I/O data buffer for a DMA transfer.
DMA_TRANSFER_INFO_V2

Contains the allocation requirements for a scatter/gather list that describes the I/O data buffer for a DMA transfer.
DOMAIN_CONFIGURATION

Contains information required to configure a domain.
DOMAIN_CONFIGURATION_ARM64

Contains information required to configure a domain for an ARM64 system.
DOMAIN_CONFIGURATION_X64

The DOMAIN_CONFIGURATION_X64 structure is reserved for system use only.
DRIVER_OBJECT

Each driver object represents the image of a loaded kernel-mode driver.
ENLISTMENT_BASIC_INFORMATION

The ENLISTMENT_BASIC_INFORMATION structure contains information about an enlistment object.
EXT_DELETE_PARAMETERS

The EXT_DELETE_PARAMETERS structure contains an extended set of parameters for the ExDeleteTimer routine.
EXT_SET_PARAMETERS

The EXT_SET_PARAMETERS structure contains an extended set of parameters for the ExSetTimer routine.
EXTENDED_CREATE_INFORMATION

Describes the EXTENDED_CREATE_INFORMATION structure.
EXTENDED_CREATE_INFORMATION_32

Describes the 32-bit version of the EXTENDED_CREATE_INFORMATION structure.
FAST_IO_DISPATCH

Contains a set of callback routines that a file system driver or file system filter driver (legacy) provides for fast I/O processing.
FAULT_INFORMATION

Contains information to set the fault report on a device.
FAULT_INFORMATION_ARM64

Contains fault information for an ARM64 system.
FAULT_INFORMATION_ARM64_FLAGS

Defines fault information.
FILE_BASIC_INFORMATION

The FILE_BASIC_INFORMATION structure contains timestamps and basic attributes of a file. It is used as an argument to routines that query or set file information.
FILE_FS_DEVICE_INFORMATION

The FILE_FS_DEVICE_INFORMATION structure provides file system device information about the type of device object associated with a file object.
FILE_FULL_EA_INFORMATION

The FILE_FULL_EA_INFORMATION structure provides extended attribute (EA) information.
FILE_IO_PRIORITY_HINT_INFORMATION

The FILE_IO_PRIORITY_HINT_INFORMATION structure is used by the ZwQueryInformationFile and ZwSetInformationFile routines to query and set the default IRP priority hint for requests on the specified file handle.
FILE_IS_REMOTE_DEVICE_INFORMATION

The FILE_IS_REMOTE_DEVICE_INFORMATION structure is used as an argument to the ZwQueryInformationFile routine.
FILE_MEMORY_PARTITION_INFORMATION

Stores information about memory partition. This structure is used by the ZwSetInformationFile function.
FILE_NETWORK_OPEN_INFORMATION

The FILE_NETWORK_OPEN_INFORMATION structure is used as an argument to ZwQueryInformationFile.
FILE_OBJECT

The FILE_OBJECT structure is used by the system to represent a file object.
FILE_POSITION_INFORMATION

The FILE_POSITION_INFORMATION structure is used as an argument to routines that query or set file information.
FILE_SFIO_RESERVE_INFORMATION

FILE_SFIO_RESERVE_INFORMATION is used to query or set a file's reserved bandwidth information for scheduled file I/O (SFIO).
FILE_STANDARD_INFORMATION

The FILE_STANDARD_INFORMATION structure is used as an argument to routines that query or set file information.
FILE_STANDARD_INFORMATION_EX

The FILE_STANDARD_INFORMATION_EX structure is used as an argument to routines that query or set file information.
FPGA_CONTROL_INTERFACE

Reserved for future use of FPGA_CONTROL_INTERFACE.
FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS

The FUNCTION_LEVEL_DEVICE_RESET_PARAMETER structure is used as an argument to the DeviceReset routine of the GUID_DEVICE_RESET_INTERFACE_STANDARD interface.
GENERIC_MAPPING

The GENERIC_MAPPING structure describes the ACCESS_MASK value of specific access rights associated with each type of generic access right.
HWPROFILE_CHANGE_NOTIFICATION

The HWPROFILE_CHANGE_NOTIFICATION structure describes an event related to a hardware profile configuration change.
IMAGE_POLICY_ENTRY

The _IMAGE_POLICY_ENTRY structure is not supported.
IMAGE_POLICY_METADATA

The _IMAGE_POLICY_METADATA structure is not supported.
INPUT_MAPPING_ELEMENT

Contains the input mapping IDs for a device.
INTERFACE

The _INTERFACE structure (wdm.h) describes an interface that is exported by a driver for use by other drivers.
IO_CONNECT_INTERRUPT_PARAMETERS

The IO_CONNECT_INTERRUPT_PARAMETERS structure contains the parameters that a driver supplies to the IoConnectInterruptEx routine to register an interrupt service routine (ISR).
IO_DISCONNECT_INTERRUPT_PARAMETERS

The IO_DISCONNECT_INTERRUPT_PARAMETERS structure describes the parameters when unregistering an interrupt-handling routine with IoDisconnectInterruptEx.
IO_ERROR_LOG_PACKET

The IO_ERROR_LOG_PACKET structure serves as the header for an error log entry.
IO_INTERRUPT_MESSAGE_INFO

The IO_INTERRUPT_MESSAGE_INFO structure describes the driver's message-signaled interrupts.
IO_INTERRUPT_MESSAGE_INFO_ENTRY

The IO_INTERRUPT_MESSAGE_INFO_ENTRY structure describes the properties of a single message-signaled interrupt.
IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS

The IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure contains the connection context for a registered interrupt service routine (ISR) that was connected to an interrupt or interrupts by a previous call to the IoConnectInterruptEx routine.
IO_RESOURCE_DESCRIPTOR

The _IO_RESOURCE_DESCRIPTOR structure (wdm.h) describes a range of raw hardware resources, of one type, that can be used by a device.
IO_RESOURCE_LIST

The _IO_RESOURCE_LIST structure (wdm.h) describes a range of raw hardware resources, of various types, that can be used by a device.
IO_RESOURCE_REQUIREMENTS_LIST

The _IO_RESOURCE_REQUIREMENTS_LIST structure (wdm.h) describes sets of resource configurations representing raw resource types used by a device.
IO_SECURITY_CONTEXT

The IO_SECURITY_CONTEXT structure represents the security context of an IRP_MJ_CREATE request.
IO_SESSION_CONNECT_INFO

The IO_SESSION_CONNECT_INFO structure provides information about a user session.
IO_SESSION_STATE_INFORMATION

The IO_SESSION_STATE_INFORMATION structure contains information about the state of a user session.
IO_SESSION_STATE_NOTIFICATION

The IO_SESSION_STATE_NOTIFICATION structure contains information that a kernel-mode driver supplies to the IoRegisterContainerNotification routine when the driver registers to receive notifications of session events.
IO_STACK_LOCATION

The IO_STACK_LOCATION structure defines an I/O stack location, which is an entry in the I/O stack that is associated with each IRP.
IO_STATUS_BLOCK

A driver sets an IRP's I/O status block to indicate the final status of an I/O request, before calling IoCompleteRequest for the IRP.
IO_STATUS_BLOCK64

The IO_STATUS_BLOCK64 structure...
IOMMU_DEVICE_CREATION_CONFIGURATION

IOMMU_DEVICE_CREATION_CONFIGURATION describes a configuration or list of configurations to be used as part of creation and initialization of an IOMMU_DMA_DEVICE.
IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI

IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI provides the ACPI-specific configuration parameters of a IOMMU_DEVICE_CREATION_CONFIGURATION structure, which is provided for creation of an ACPI-type IOMMU_DMA_DEVICE.
IOMMU_DMA_DOMAIN_CREATION_FLAGS

Learn more about: IOMMU_DMA_DOMAIN_CREATION_FLAGS
IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

The IOMMU_DMA_LOGICAL_ADDRESS_TOKEN represents a reserved contiguous logical address range created by IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE.
IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT

Learn more about: IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT
IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG

The IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG structure contains information required to configure a logical allocator.
IOMMU_DMA_RESERVED_REGION

The IOMMU_DMA_RESERVED_REGION structure describes a region of memory that needs to be marked as reserved during domain creation.
IOMMU_INTERFACE_STATE_CHANGE

Learn more about: IOMMU_INTERFACE_STATE_CHANGE
IOMMU_INTERFACE_STATE_CHANGE_FIELDS

Learn more about IOMMU_INTERFACE_STATE_CHANGE_FIELDS
IOMMU_MAP_PHYSICAL_ADDRESS

The IOMMU_MAP_PHYSICAL_ADDRESS represents a physical address that is to be mapped to a logical address.
IRP

The IRP structure is a partially opaque structure that represents an I/O request packet.
KBUGCHECK_ADD_PAGES

The KBUGCHECK_ADD_PAGES structure describes one or more pages of driver-supplied data to be written by a KbCallbackAddPages callback routine to the crash dump file.
KBUGCHECK_CALLBACK_RECORD

Learn more about: KBUGCHECK_CALLBACK_RECORD structure
KBUGCHECK_DUMP_IO

The KBUGCHECK_DUMP_IO structure describes an I/O operation on the crash dump file.
KBUGCHECK_REASON_CALLBACK_RECORD

Learn more about: KBUGCHECK_REASON_CALLBACK_RECORD structure
KBUGCHECK_REMOVE_PAGES

Learn more about: KBUGCHECK_REMOVE_PAGES structure
KBUGCHECK_SECONDARY_DUMP_DATA

The KBUGCHECK_SECONDARY_DUMP_DATA structure describes a section of driver-supplied data to be written by KbCallbackSecondaryDumpData routine to the crash dump file.
KBUGCHECK_SECONDARY_DUMP_DATA_EX

Learn more about: _KBUGCHECK_SECONDARY_DUMP_DATA_EX structure
KBUGCHECK_TRIAGE_DUMP_DATA

Learn more about: _KBUGCHECK_TRIAGE_DUMP_DATA structure
KDPC_WATCHDOG_INFORMATION

The KDPC_WATCHDOG_INFORMATION structure holds time-out information about the current deferred procedure call (DPC).
KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT

The KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT structure describes the notification context that is passed to a registered callback function when a new processor is dynamically added to a hardware partition.
KERNEL_CET_CONTEXT

Reserved for system use only. Do not use.
KERNEL_SOFT_RESTART_NOTIFICATION

Learn more about: KERNEL_SOFT_RESTART_NOTIFICATION structure
KEY_BASIC_INFORMATION

The KEY_BASIC_INFORMATION structure defines a subset of the full information that is available for a registry key.
KEY_FULL_INFORMATION

The KEY_FULL_INFORMATION structure defines the information available for a registry key, including information about its subkeys and the maximum length for their names and value entries.
KEY_NODE_INFORMATION

The KEY_NODE_INFORMATION structure defines the basic information available for a registry (sub)key.
KEY_VALUE_BASIC_INFORMATION

The KEY_VALUE_BASIC_INFORMATION structure defines a subset of the full information available for a value entry of a registry key.
KEY_VALUE_ENTRY

The KEY_VALUE_ENTRY structure is used by the REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION structure to describe a single value entry for a registry key.
KEY_VALUE_FULL_INFORMATION

The KEY_VALUE_FULL_INFORMATION structure defines information available for a value entry of a registry key.
KEY_VALUE_PARTIAL_INFORMATION

The KEY_VALUE_PARTIAL_INFORMATION structure defines a subset of the value information available for a value entry of a registry key.
KEY_WRITE_TIME_INFORMATION

The KEY_WRITE_TIME_INFORMATION structure is used by the system to set the last write time for a registry key.
KMUTANT

Learn more about: KMUTANT structure
KTMOBJECT_CURSOR

The KTMOBJECT_CURSOR structure receives enumeration information about KTM objects when a component calls ZwEnumerateTransactionObject.
KTRIAGE_DUMP_DATA_ARRAY

Learn more about: _KTRIAGE_DUMP_DATA_ARRAY structure
LINK_SHARE_ACCESS

The share access structure used by file systems for only link files.
LUID_AND_ATTRIBUTES

LUID_AND_ATTRIBUTES represents a locally unique identifier (LUID) and its attributes.
MAILSLOT_CREATE_PARAMETERS

The MAILSLOT_CREATE_PARAMETERS is used by the Windows subsystem to create a mailslot.
MDL

An MDL structure is a partially opaque structure that represents a memory descriptor list (MDL).
MEM_EXTENDED_PARAMETER

Learn more about: MEM_EXTENDED_PARAMETER structure
MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION

Defines the MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION structure.
MM_PHYSICAL_ADDRESS_LIST

The MM_PHYSICAL_ADDRESS_LIST structure specifies a range of physical addresses.
NAMED_PIPE_CREATE_PARAMETERS

The NAMED_PIPE_CREATE_PARAMETERS structure is used by the Windows subsystem to create a named pipe.
NOTIFY_USER_POWER_SETTING

This topic describes the NOTIFY_USER_POWER_SETTING structure.
NPEM_CAPABILITY_STANDARD

Learn more about: NPEM_CAPABILITY_STANDARD
NPEM_CONTROL_INTERFACE

Learn more about: NPEM_CONTROL_INTERFACE
OB_CALLBACK_REGISTRATION

The OB_CALLBACK_REGISTRATION structure specifies the parameters when the ObRegisterCallbacks routine registers ObjectPreCallback and ObjectPostCallback callback routines.
OB_OPERATION_REGISTRATION

The OB_OPERATION_REGISTRATION structure specifies ObjectPreCallback and ObjectPostCallback callback routines and the types of operations that the routines are called for.
OB_POST_CREATE_HANDLE_INFORMATION

The OB_POST_CREATE_HANDLE_INFORMATION structure provides information to a ObjectPostCallback routine about a thread or process handle that has been opened.
OB_POST_DUPLICATE_HANDLE_INFORMATION

The OB_POST_DUPLICATE_HANDLE_INFORMATION structure provides information to an ObjectPostCallback routine about a thread or process handle that has been duplicated.
OB_POST_OPERATION_INFORMATION

The OB_POST_OPERATION_INFORMATION structure provides information about a process or thread handle operation to an ObjectPostCallback routine.
OB_POST_OPERATION_PARAMETERS

The OB_POST_OPERATION_PARAMETERS union describes the operation-specific parameters for an ObjectPostCallback routine.
OB_PRE_CREATE_HANDLE_INFORMATION

The OB_PRE_CREATE_HANDLE_INFORMATION structure provides information to an ObjectPreCallback routine about a thread or process handle that is being opened.
OB_PRE_DUPLICATE_HANDLE_INFORMATION

The OB_PRE_DUPLICATE_HANDLE_INFORMATION structure provides information to an ObjectPreCallback routine about a thread or process handle that is being duplicated.
OB_PRE_OPERATION_INFORMATION

The OB_PRE_OPERATION_INFORMATION structure provides information about a process or thread handle operation to an ObjectPreCallback routine.
OB_PRE_OPERATION_PARAMETERS

The OB_PRE_OPERATION_PARAMETERS union describes the operation-specific parameters for an ObjectPreCallback routine.
OSVERSIONINFOEXW

The RTL_OSVERSIONINFOEXW structure contains operating system version information.
OSVERSIONINFOW

The RTL_OSVERSIONINFOW structure contains operating system version information.
PCI_ATS_INTERFACE

Defines the PCI_ATS_INTERFACE structure.
PCI_CAPABILITIES_HEADER

The _PCI_CAPABILITIES_HEADER structure (wdm.h) defines a header that is present in every PCI capability structure.
PCI_COMMON_CONFIG

The _PCI_COMMON_CONFIG structure (wdm.h) defines standard PCI configuration information.
PCI_DEVICE_PRESENT_INTERFACE

The PCI_DEVICE_PRESENT_INTERFACE structure is reserved for system use.
PCI_EXPRESS_AER_CAPABILITIES

The _PCI_EXPRESS_AER_CAPABILITIES structure (wdm.h) describes a PCI Express (PCIe) advanced error capabilities and control register.
PCI_EXPRESS_AER_CAPABILITY

The _PCI_EXPRESS_AER_CAPABILITY structure (wdm.h) describes a PCI Express (PCIe) advanced error reporting capability structure.
PCI_EXPRESS_BRIDGE_AER_CAPABILITY

The _PCI_EXPRESS_BRIDGE_AER_CAPABILITY structure (wdm.h) defines the PCI Express (PCIe) advanced error reporting capabilities for a PCIe bridge device.
PCI_EXPRESS_CORRECTABLE_ERROR_MASK

The _PCI_EXPRESS_CORRECTABLE_ERROR_MASK structure (wdm.h) describes a PCI Express (PCIe) correctable error mask register used in advanced error reporting.
PCI_EXPRESS_CORRECTABLE_ERROR_STATUS

The _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS structure (wdm.h) describes a PCI Express (PCIe) correctable error status register for advanced error reporting.
PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER

The _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER structure (wdm.h) describes the header for a PCI Express (PCIe) extended capability structure.
PCI_EXPRESS_ERROR_SOURCE_ID

The _PCI_EXPRESS_ERROR_SOURCE_ID structure (wdm.h) describes the IDs of the first correctable and first uncorrectable error in the error status register.
PCI_EXPRESS_LINK_QUIESCENT_INTERFACE

The PCI_EXPRESS_LINK_QUIESCENT_INTERFACE structure is reserved for system use.
PCI_EXPRESS_PTM_CAPABILITY

Reserved for PCI_EXPRESS_PTM_CAPABILITY. Do not use.
PCI_EXPRESS_PTM_CAPABILITY_REGISTER

Reserved for PCI_EXPRESS_PTM_CAPABILITY_REGISTER. Do not use.
PCI_EXPRESS_PTM_CONTROL_REGISTER

Reserved for PCI_EXPRESS_PTM_CONTROL_REGISTER. Do not use.
PCI_EXPRESS_ROOT_ERROR_COMMAND

The _PCI_EXPRESS_ROOT_ERROR_COMMAND structure (wdm.h) describes a PCI Express (PCIe) root error command register for advanced error reporting.
PCI_EXPRESS_ROOT_ERROR_STATUS

The _PCI_EXPRESS_ROOT_ERROR_STATUS structure (wdm.h) describes a PCI Express (PCIe) root error status register for advanced error reporting.
PCI_EXPRESS_ROOT_PORT_INTERFACE

The PCI_EXPRESS_ROOT_PORT_INTERFACE structure is reserved for system use.
PCI_EXPRESS_ROOTPORT_AER_CAPABILITY

The _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY structure (wdm.h) describes a PCI Express (PCIe) advanced error reporting capability structure.
PCI_EXPRESS_SEC_AER_CAPABILITIES

The _PCI_EXPRESS_SEC_AER_CAPABILITIES structure (wdm.h) describes a PCI Express (PCIe) secondary error capabilities and control register.
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK

The _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK structure (wdm.h) describes a PCI Express (PCIe) secondary uncorrectable error mask register.
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY

The _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY structure (wdm.h) describes a PCI Express (PCIe) secondary uncorrectable error severity register.
PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS

The _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS structure (wdm.h) describes a PCI Express (PCIe) secondary uncorrectable error status register.
PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY

The _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY structure (wdm.h) describes a serial number for a PCI Express (PCIe) device.
PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK

The _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK structure (wdm.h) describes a PCI Express (PCIe) uncorrectable error mask register.
PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY

The _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY structure (wdm.h) describes a PCI Express (PCIe) uncorrectable error severity register.
PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS

The _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS structure (wdm.h) describes a PCI Express (PCIe) uncorrectable error status register.
PCI_MSIX_TABLE_CONFIG_INTERFACE

The PCI_MSIX_TABLE_CONFIG_INTERFACE structure enables device drivers to modify their MSI-X interrupt settings. This structure describes the GUID_MSIX_TABLE_CONFIG_INTERFACE interface.
PCI_PM_CAPABILITY

The _PCI_PM_CAPABILITY structure (wdm.h) contains fields that describe the power management capabilities of the device.
PCI_PMC

The _PCI_PMC structure (wdm.h) describes the contents of the power management capabilities register.
PCI_PMCSR

The _PCI_PMCSR structure (wdm.h) describes the contents of the device's power management control status register.
PCI_PMCSR_BSE

The _PCI_PMCSR_BSE structure (wdm.h) describes the contents of the power management control status register for PCI bridge support extensions.
PCI_SECURITY_INTERFACE2

Defines the PCI_SECURITY_INTERFACE2 structure.
PCI_SEGMENT_BUS_NUMBER

Microsoft reserves the PCI_SEGMENT_BUS_NUMBER structure for internal use only. Don't use this structure in your code.
PCI_SLOT_NUMBER

The _PCI_SLOT_NUMBER structure (wdm.h) is obsolete. It defines the format of the Slot parameter to the obsolete HalXxxBusData routines.
PCI_VIRTUALIZATION_INTERFACE

Learn more about the PCI_VIRTUALIZATION_INTERFACE structure.
PCI_X_CAPABILITY

The PCI_X_CAPABILITY structure (wdm.h) reports the contents of the command and status registers of a device that is compliant with the PCI-X Addendum to the PCI Local Bus Specification.
PCW_CALLBACK_INFORMATION

The PCW_CALLBACK_INFORMATION union supplies details about the notification to send. A provider passes a pointer to this union as a parameter to the PcwCallback function.
PCW_COUNTER_DESCRIPTOR

The PCW_COUNTER_DESCRIPTOR structure supplies details about the notification to send.
PCW_COUNTER_INFORMATION

The PCW_COUNTER_INFORMATION structure describes attributes that identify a specific instance of a counterset.
PCW_DATA

The PCW_DATA structure describes the array of data blocks that are associated with an instance.
PCW_MASK_INFORMATION

The PCW_MASK_INFORMATION structure supplies details about the notification to send to the provider. This information is passed as part of the Info parameter to the PcwCallback function. This mask information is included in PCW_CALLBACK_INFORMATION.
PCW_REGISTRATION_INFORMATION

The PCW_REGISTRATION_INFORMATION structure supplies details about the provider and the counterset.
PLUGPLAY_NOTIFICATION_HEADER

A PLUGPLAY_NOTIFICATION_HEADER structure is included at the beginning of each PnP notification structure, such as a DEVICE_INTERFACE_CHANGE_NOTIFICATION structure.
PNP_BUS_INFORMATION

The PNP_BUS_INFORMATION structure describes a bus.
PO_FX_COMPONENT_IDLE_STATE

The PO_FX_COMPONENT_IDLE_STATE structure specifies the attributes of an Fx power state of a component in a device.
PO_FX_COMPONENT_PERF_INFO

The PO_FX_COMPONENT_PERF_INFO structure describes all the sets of performance states for a single component within a device.
PO_FX_COMPONENT_PERF_SET

The PO_FX_COMPONENT_PERF_SET structure represents a set of performance states for a single component within a device.
PO_FX_COMPONENT_V1

The PO_FX_COMPONENT structure describes the power state attributes of a component in a device.
PO_FX_COMPONENT_V2

Learn how the PO_FX_COMPONENT structure describes the power state attributes of a component in a device.
PO_FX_DEVICE_V1

The PO_FX_DEVICE structure describes the power attributes of a device to the power management framework (PoFx).
PO_FX_DEVICE_V2

Learn how the PO_FX_DEVICE structure describes the power attributes of a device to the power management framework (PoFx).
PO_FX_DEVICE_V3

Learn more about: PO_FX_DEVICE_V3 structure
PO_FX_PERF_STATE

The PO_FX_PERF_STATE structure represents a performance state for a single component within a device.
PO_FX_PERF_STATE_CHANGE

The PO_FX_PERF_STATE_CHANGE structure contains information about a change to a performance state that is being requested by calling the PoFxIssueComponentPerfStateChange or PoFxIssueComponentPerfStateChangeMultiple routine.
POOL_CREATE_EXTENDED_PARAMS

Defines the POOL_CREATE_EXTENDED_PARAMS structure.
POOL_EXTENDED_PARAMETER

Learn more about: POOL_EXTENDED_PARAMETER
POOL_EXTENDED_PARAMS_SECURE_POOL

Defines the POOL_EXTENDED_PARAMS_SECURE_POOL structure.
POWER_PLATFORM_INFORMATION

Learn how the POWER_PLATFORM_INFORMATION structure contains information about the power capabilities of the system.
POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES

Learn more about: POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES structure (wdm.h)
POWER_STATE

Learn how the POWER_STATE union specifies a system power state value or a device power state value.
PRIVILEGE_SET

The PRIVILEGE_SET structure specifies a set of security privileges.
PTM_CONTROL_INTERFACE

Reserved for PTM_CONTROL_INTERFACE. Do not use.
REENUMERATE_SELF_INTERFACE_STANDARD

The REENUMERATE_SELF_INTERFACE_STANDARD interface structure enables a driver to request that its parent bus driver reenumerate the driver's device. This structure defines the GUID_REENUMERATE_SELF_INTERFACE_STANDARD interface.
REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION

The REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION structure contains information that a driver's RegistryCallback routine can use to free resources that the driver previously allocated for the context that is associated with a registry object.
REG_CREATE_KEY_INFORMATION

Obsolete, use REG_CREATE_KEY_INFORMATION_V1 instead. The REG_CREATE_KEY_INFORMATION structure contains information that a driver's RegistryCallback routine can use when a registry key that is being created.
REG_CREATE_KEY_INFORMATION_V1

The REG_CREATE_KEY_INFORMATION_V1 structure contains information that a filter driver's RegistryCallback routine can use when a registry key is being created.
REG_DELETE_KEY_INFORMATION

The REG_DELETE_KEY_INFORMATION structure contains information that a driver's RegistryCallback routine can use when a registry key is being deleted.
REG_DELETE_VALUE_KEY_INFORMATION

The REG_DELETE_VALUE_KEY_INFORMATION structure contains information that a driver's RegistryCallback routine can use when a registry key's value is being deleted.
REG_ENUMERATE_KEY_INFORMATION

The REG_ENUMERATE_KEY_INFORMATION structure describes one subkey of a key whose subkeys are being enumerated.
REG_ENUMERATE_VALUE_KEY_INFORMATION

The REG_ENUMERATE_VALUE_KEY_INFORMATION structure describes one value entry of a key whose value entries are being enumerated.
REG_KEY_HANDLE_CLOSE_INFORMATION

The REG_KEY_HANDLE_CLOSE_INFORMATION structure contains information about a registry key whose handle is about to be closed.
REG_LOAD_KEY_INFORMATION

The REG_LOAD_KEY_INFORMATION structure contains information about a registry hive that is being loaded.
REG_LOAD_KEY_INFORMATION_V2

The REG_LOAD_KEY_INFORMATION_V2 structure contains information about a registry hive that is being loaded.
REG_POST_CREATE_KEY_INFORMATION

The REG_POST_CREATE_KEY_INFORMATION structure contains the result of an attempt to create a registry key.
REG_POST_OPERATION_INFORMATION

The REG_POST_OPERATION_INFORMATION structure contains information about a completed registry operation that a RegistryCallback routine can use.
REG_PRE_CREATE_KEY_INFORMATION

The REG_PRE_OPEN_KEY_INFORMATION structure contains the name of a registry key that is about to be opened.
REG_QUERY_KEY_INFORMATION

The REG_QUERY_KEY_INFORMATION structure describes the metadata that is about to be queried for a key.
REG_QUERY_KEY_NAME

The REG_QUERY_KEY_NAME structure describes the full registry key name of an object being queried.
REG_QUERY_KEY_SECURITY_INFORMATION

The REG_QUERY_KEY_SECURITY_INFORMATION structure receives security information for a registry key object.
REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION

The REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION structure describes the multiple value entries that are being retrieved for a key.
REG_QUERY_VALUE_KEY_INFORMATION

The REG_QUERY_VALUE_KEY_INFORMATION structure contains information about a registry key's value entry that is being queried.
REG_RENAME_KEY_INFORMATION

The REG_RENAME_KEY_INFORMATION structure contains the new name for a registry key whose name is about to be changed.
REG_REPLACE_KEY_INFORMATION

The REG_REPLACE_KEY_INFORMATION structure describes the metadata that is about to be replaced for a key.
REG_RESTORE_KEY_INFORMATION

The REG_RESTORE_KEY_INFORMATION structure contains the information for a registry key that is about to be restored.
REG_SAVE_KEY_INFORMATION

The REG_SAVE_KEY_INFORMATION structure contains the information for a registry key that is about to be saved.
REG_SAVE_MERGED_KEY_INFORMATION

Defines the REG_SAVE_MERGED_KEY_INFORMATION structure.
REG_SET_INFORMATION_KEY_INFORMATION

The REG_SET_INFORMATION_KEY_INFORMATION structure describes a new setting for a key's metadata.
REG_SET_KEY_SECURITY_INFORMATION

The REG_SET_KEY_SECURITY_INFORMATION structure specifies security information for a registry key object.
REG_SET_VALUE_KEY_INFORMATION

The REG_SET_VALUE_INFORMATION structure describes a new setting for a registry key's value entry.
REG_UNLOAD_KEY_INFORMATION

The REG_UNLOAD_KEY_INFORMATION structure contains information that a driver's RegistryCallback routine can use when a registry hive is unloaded.
RESOURCEMANAGER_BASIC_INFORMATION

The RESOURCEMANAGER_BASIC INFORMATION structure contains information about a resource manager object.
RESOURCEMANAGER_COMPLETION_INFORMATION

The RESOURCEMANAGER_COMPLETION_INFORMATION structure is not used.
SCATTER_GATHER_LIST

The SCATTER_GATHER_LIST structure describes the scatter/gather list for a DMA operation.
SDEV_IDENTIFIER_INTERFACE

This placeholder topic is provided as an example of documentation that may be included in a later release. This material is not yet available.
SECTION_OBJECT_POINTERS

The SECTION_OBJECT_POINTERS structure, allocated by a file system or a redirector driver, is used by the memory manager and cache manager to store file-mapping and cache-related information for a file stream.
SECURITY_SUBJECT_CONTEXT

The SECURITY_SUBJECT_CONTEXT structure is used to capture subject security context for access validation and auditing.
SET_POWER_SETTING_VALUE

This topic describes the SET_POWER_SETTING_VALUE structure.
SLIST_ENTRY

An SLIST_ENTRY structure describes an entry in a sequenced singly linked list.
SYSTEM_POOL_ZEROING_INFORMATION

Microsoft reserves the SYSTEM_POOL_ZEROING_INFORMATION structure for internal use only. Don't use this structure in your code.
SYSTEM_POWER_STATE_CONTEXT

Learn how the SYSTEM_POWER_STATE_CONTEXT structure is a partially opaque system structure that contains information about the previous system power states of a computer.
TARGET_DEVICE_CUSTOM_NOTIFICATION

The TARGET_DEVICE_CUSTOM_NOTIFICATION structure describes a custom device event.
TARGET_DEVICE_REMOVAL_NOTIFICATION

The TARGET_DEVICE_REMOVAL_NOTIFICATION structure describes a device-removal event. The PnP manager sends this structure to a driver that registered a callback routine for notification of EventCategoryTargetDeviceChange events.
TIME_FIELDS

The TIME_FIELDS structure describes time information for time conversion routines.
TRANSACTION_BASIC_INFORMATION

The TRANSACTION_BASIC_INFORMATION structure contains information about a transaction object.
TRANSACTION_ENLISTMENT_PAIR

The TRANSACTION_ENLISTMENT_PAIR structure contains information about an enlistment that is associated with a transaction object.
TRANSACTION_ENLISTMENTS_INFORMATION

The TRANSACTION_ENLISTMENTS_INFORMATION structure contains information about the enlistments that are associated with a transaction object.
TRANSACTION_PROPERTIES_INFORMATION

The TRANSACTION_PROPERTIES_INFORMATION structure contains a transaction object's properties.
TRANSACTIONMANAGER_BASIC_INFORMATION

The TRANSACTIONMANAGER_BASIC_INFORMATION structure contains information about a transaction manager object.
TRANSACTIONMANAGER_LOG_INFORMATION

The TRANSACTIONMANAGER_LOG_INFORMATION structure contains information about a transaction manager object.
TRANSACTIONMANAGER_LOGPATH_INFORMATION

The TRANSACTIONMANAGER_LOGPATH_INFORMATION structure contains information about a transaction manager object.
TRANSACTIONMANAGER_RECOVERY_INFORMATION

The TRANSACTIONMANAGER_RECOVERY_INFORMATION structure contains information about a transaction manager object.
VPB

The volume parameter block (VPB) structure is used to map a device object that represents a mounted file system volume to a device object that represents a physical or virtual disk device.
WAIT_CONTEXT_BLOCK

Reserved for WAIT_CONTEXT_BLOCK. Do not use.
WORK_QUEUE_ITEM

The WORK_QUEUE_ITEM structure is used to post a work items to a system work queue.
XSAVE_CET_U_FORMAT

Format for CET_U XSTATE component.

Enumerations

 
BOUND_CALLBACK_STATUS

The BOUND_CALLBACK_STATUS enumeration indicates how a user-mode bounds exception was processed by the BoundCallback function.
BUS_QUERY_ID_TYPE

This topic describes the BUS_QUERY_ID_TYPE enumeration.
CLFS_CONTEXT_MODE

The CLFS_CONTEXT_MODE enumeration indicates the type of sequence that the Common Log File System (CLFS) driver follows when it reads a set of records from a stream.
CLFS_MGMT_POLICY_TYPE

The CLFS_MGMT_POLICY_TYPE enumeration type identifies the type of a CLFS management policy.
CLS_LOG_INFORMATION_CLASS

The CLFS_LOG_INFORMATION_CLASS enumeration indicates the type of information that is requested by a call to ClfsQueryLogFileInformation.
D3COLD_LAST_TRANSITION_STATUS

The D3COLD_LAST_TRANSITION_STATUS enumeration indicates whether the most recent transition to the D3hot device power state was followed by a transition to the D3cold device power state.
DEVICE_DIRECTORY_TYPE

The directory from which the driver is loaded.
DEVICE_INSTALL_STATE

The DEVICE_INSTALL_STATE enumeration describes a device's installation state.
DEVICE_POWER_STATE

Learn how the DEVICE_POWER_STATE enumeration type indicates a device power state.
DEVICE_REGISTRY_PROPERTY

The DEVICE_REGISTRY_PROPERTY enumeration identifies device properties that are stored in the registry.
DEVICE_REMOVAL_POLICY

The DEVICE_REMOVAL_POLICY enumeration describes a device's removal policy.
DEVICE_RESET_TYPE

The DEVICE_RESET_TYPE enumeration specifies the type of device reset that is being requested by a call to the DeviceReset routine of the GUID_DEVICE_RESET_INTERFACE_STANDARD interface.
DEVICE_TEXT_TYPE

This topic describes the DEVICE_TEXT_TYPE enumeration.
DEVICE_USAGE_NOTIFICATION_TYPE

Learn more about: DEVICE_USAGE_NOTIFICATION_TYPE enumeration
DEVICE_WAKE_DEPTH

The DEVICE_WAKE_DEPTH enumeration specifies the deepest device power state from which a device can trigger a wake signal.
DIRECTORY_NOTIFY_INFORMATION_CLASS

Learn more about the DIRECTORY_NOTIFY_INFORMATION_CLASS enumeration.
DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE

Learn more about: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE
DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE

Provides the types of optional configurations that can be provided when creating a common buffer from an MDL. The configuration values corresponding to the types are held in the DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION structure.
DMA_COMPLETION_STATUS

The DMA_COMPLETION_STATUS enumeration describes the completion status of a DMA transfer.
DOMAIN_CONFIGURATION_ARCH

Defines values for type of system architecture specified.
DRIVER_DIRECTORY_TYPE

Learn more about: _DRIVER_DIRECTORY_TYPE enumeration
DRIVER_REGKEY_TYPE

Learn more about: DRIVER_REGKEY_TYPE enumeration
ENLISTMENT_INFORMATION_CLASS

The ENLISTMENT_INFORMATION_CLASS enumeration identifies the type of information that the ZwSetInformationEnlistment routine can set and that the ZwQueryInformationEnlistment routine can retrieve for an enlistment object.
EX_POOL_PRIORITY

Learn more about: EX_POOL_PRIORITY
FAULT_INFORMATION_ARCH

Defines values for type of system architecture.
FAULT_INFORMATION_ARM64_TYPE

Defines values for the type of fault.
FILE_INFORMATION_CLASS

Learn more about the FILE_INFORMATION_CLASS enumeration.
FS_INFORMATION_CLASS

The FS_INFORMATION_CLASS enumeration contains the information class constants that specify what type of information structure is present for a set or a query operation.
IMAGE_POLICY_ENTRY_TYPE

The _IMAGE_POLICY_ENTRY_TYPE enumeration is not supported.
IMAGE_POLICY_ID

The _IMAGE_POLICY_ID enumeration is not supported.
INTERFACE_TYPE

The _INTERFACE_TYPE enumeration (wdm.h) defines values that indicate the type of bus driver that published the interface.
IO_ACCESS_MODE

_IO_ACCESS_MODE defines the types of access mode for Scheduled File I/O (SFIO).
IO_ACCESS_TYPE

_IO_ACCESS_TYPE defines the access rights for Scheduled File I/O (SFIO).
IO_ALLOCATION_ACTION

The IO_ALLOCATION_ACTION enumerated type is used to specify return values for AdapterControl and ControllerControl routines.
IO_CONTAINER_INFORMATION_CLASS

The IO_CONTAINER_INFORMATION_CLASS enumeration contains constants that indicate the classes of system information that a kernel-mode driver can request.
IO_CONTAINER_NOTIFICATION_CLASS

The IO_CONTAINER_NOTIFICATION_CLASS enumeration contains constants that indicate the classes of events for which a kernel-mode driver can register to receive notifications.
IO_NOTIFICATION_EVENT_CATEGORY

Learn more about: IO_NOTIFICATION_EVENT_CATEGORY enumeration
IO_PAGING_PRIORITY

The IO_PAGING_PRIORITY enumeration describes the priority value for a paging I/O IRP.
IO_PRIORITY_HINT

The IO_PRIORITY_HINT enumeration type specifies the priority hint for an IRP.
IO_SESSION_EVENT

The IO_SESSION_EVENT enumeration indicates the type of session event for which a driver is receiving notification.
IO_SESSION_STATE

The IO_SESSION_STATE enumeration contains constants that indicate the current state of a user session.
IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE

Describes the configuration types that are used upon IOMMU_DMA_DEVICE creation depending on the device type and the system.
IOMMU_DMA_DOMAIN_TYPE

Describes the domain types that can be created and interacted with via the DMA_IOMMU_INTERFACE_EX.
IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE

The IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE enum indicates the type of logical allocator described in an IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG structure.
IOMMU_MAP_PHYSICAL_ADDRESS_TYPE

The IOMMU_MAP_PHYSICAL_ADDRESS_TYPE enum indicates the format of the physical address described in an IOMMU_MAP_PHYSICAL_ADDRESS structure.
IRQ_DEVICE_POLICY

The _IRQ_DEVICE_POLICY enumeration (wdm.h) type indicates the operating system policy used to assign interrupts from a device to different processors.
IRQ_PRIORITY

The _IRQ_PRIORITY enumeration (wdm.h) type indicates the priority the system should give to servicing a device's interrupts.
KBUGCHECK_CALLBACK_REASON

The KBUGCHECK_CALLBACK_REASON enumeration type specifies the situations in which a bug-check callback executes.
KBUGCHECK_DUMP_IO_TYPE

The KBUGCHECK_DUMP_IO_TYPE enumeration type identifies the type of a section of data within a crash dump file.
KE_PROCESSOR_CHANGE_NOTIFY_STATE

This topic describes the KE_PROCESSOR_CHANGE_NOTIFY_STATE enumeration.
KEY_INFORMATION_CLASS

The KEY_INFORMATION_CLASS enumeration type represents the type of information to supply about a registry key.
KEY_SET_INFORMATION_CLASS

The KEY_SET_INFORMATION_CLASS enumeration type represents the type of information to set for a registry key.
KEY_VALUE_INFORMATION_CLASS

The KEY_VALUE_INFORMATION_CLASS enumeration type specifies the type of information to supply about the value of a registry key.
KINTERRUPT_MODE

The _KINTERRUPT_MODE enumeration (wdm.h) type indicates whether an interrupt is level-triggered or edge-triggered.
KINTERRUPT_POLARITY

The _KINTERRUPT_POLARITY enumeration (wdm.h) contains values that indicate how a device signals an interrupt request on an interrupt line.
KTMOBJECT_TYPE

The KTMOBJECT_TYPE enumeration identifies the types of objects that KTM supports.
LATENCY_TIME

This topic describes the LATENCY_TIME enumeration.
LOCK_OPERATION

The LOCK_OPERATION enumeration specifies the type of access that is appropriate for a type of I/O operation.
MEM_EXTENDED_PARAMETER_TYPE

Defines values for extended parameters are used for file mapping into an address space.
MEM_SECTION_EXTENDED_PARAMETER_TYPE

Learn more about: MEM_SECTION_EXTENDED_PARAMETER_TYPE enumeration
MEMORY_CACHING_TYPE

The _MEMORY_CACHING_TYPE enumeration (wdm.h) type specifies the permitted caching behavior when allocating or mapping memory.
MONITOR_DISPLAY_STATE

Learn how this method indicates the power state of the monitor being displayed on.
NPEM_CONTROL_STANDARD_CONTROL_BIT

Learn more about: NPEM_CONTROL_STANDARD_CONTROL_BIT
PCW_CALLBACK_TYPE

The PCW_CALLBACK_TYPE enumeration defines the notification type to send to the registered provider of the counterset. A provider passes a pointer to this enumeration as a parameter to the PcwCallback function.
PO_FX_PERF_STATE_TYPE

The PO_FX_PERF_STATE_TYPE enumeration contains values that describe the type of performance states in a PO_FX_COMPONENT_PERF_SET.
PO_FX_PERF_STATE_UNIT

The PO_FX_PERF_STATE_UNIT enumeration contains values that describe the type of unit that is controlled by the performance states in a PO_FX_COMPONENT_PERF_SET.
POOL_EXTENDED_PARAMETER_TYPE

Learn more about: POOL_EXTENDED_PARAMETER_TYPE
POOL_TYPE

The POOL_TYPE enumeration type specifies the type of system memory to allocate.
POWER_ACTION

Learn how the POWER_ACTION enumeration (wdm.h) identifies the system power actions that can occur on a computer.
POWER_INFORMATION_LEVEL

POWER_INFORMATION_LEVEL enumerates power level information indicators.
POWER_MONITOR_REQUEST_REASON

This topic describes the POWER_MONITOR_REQUEST_REASON enumeration.
POWER_MONITOR_REQUEST_TYPE

This topic describes the POWER_MONITOR_REQUEST_TYPE enumeration.
POWER_REQUEST_TYPE

Learn how the POWER_REQUEST_TYPE enumeration indicates the power request type.
POWER_STATE_TYPE

Learn how the POWER_STATE_TYPE enumeration type indicates that a power state value is a system power state or a device power state.
POWER_USER_PRESENCE_TYPE

This topic describes the POWER_USER_PRESENCE_TYPE enumeration.
REG_NOTIFY_CLASS

The REG_NOTIFY_CLASS enumeration type specifies the type of registry operation that the configuration manager is passing to a RegistryCallback routine.
RESOURCEMANAGER_INFORMATION_CLASS

The RESOURCEMANAGER_INFORMATION_CLASS enumeration identifies the type of information that the ZwQueryInformationResourceManager routine can retrieve for a resource manager object.
SE_IMAGE_TYPE

Learn more about: _SE_IMAGE_TYPE enumeration
SECURITY_IMPERSONATION_LEVEL

The SECURITY_IMPERSONATION_LEVEL enumeration type contains values that specify security impersonation levels. Security impersonation levels govern the degree to which a server process can act on behalf of a client process.
SYSTEM_POWER_CONDITION

This topic describes the SYSTEM_POWER_CONDITION enumeration.
SYSTEM_POWER_STATE

Learn how the SYSTEM_POWER_STATE enumeration type is used to indicate a system power state.
TRACE_INFORMATION_CLASS

The TRACE_INFORMATION_CLASS enumeration type is used to indicate types of information associated with a WMI event tracing session.
TRANSACTION_INFORMATION_CLASS

The TRANSACTION_INFORMATION_CLASS enumeration specifies the type of information that ZwSetInformationTransaction can set and ZwQueryInformationTransaction can retrieve for a transaction manager object.
TRANSACTION_OUTCOME

The TRANSACTION_OUTCOME enumeration defines the outcomes (results) that KTM can assign to a transaction.
TRANSACTION_STATE

The TRANSACTION_STATE enumeration defines the states that KTM can assign to a transaction.
TRANSACTIONMANAGER_INFORMATION_CLASS

The TRANSACTIONMANAGER_INFORMATION_CLASS enumeration specifies the type of information that the ZwQueryInformationTransactionManager routine can retrieve for a transaction manager object.
WORK_QUEUE_TYPE

The WORK_QUEUE_TYPE enumeration type indicates the type of system worker thread that handles a work item.