Kernel

Standard driver routines must be implemented by your driver. Driver support routines are routines that the Windows operating system provides. Drivers do not use Microsoft Win32 routines; instead, they use the driver support routines that this section describes.

The driver support routines in this section are organized by kernel-mode managers and libraries.

  • Standard Driver Routines

    Here are the required and optional routines that you must implement in your driver to respond to calls from Windows or other drivers. When these routines are called, your code must respond to the call and return the appropriate data in a timely manner.

    The following routines are required for all drivers:

    The other routines are optional, but you may need to implement them depending on your driver type and the location of your driver in the device stack.

    For more information about standard driver routines, see Introduction to Standard Driver Routines.

  • Driver Support Routines

    Driver support routines are routines that the Windows operating system provides for kernel-mode drivers to use. Drivers do not use Microsoft Win32 routines; instead, they use the driver support routines that this section describes.

    The driver support routines in this section are organized by kernel-mode managers and libraries.

    The following kernel-mode managers provide support for drivers:

    • Object Manager Routines
    • Memory Manager Routines
    • Process and Thread Manager Routines
    • I/O Manager Routines
    • Power Manager Routines
    • Configuration Manager Routines
    • Kernel Transaction Manager Routines
    • Security Reference Monitor Routines

    The following kernel-mode libraries provide support for drivers:

    • Core Kernel Library Support Routines
    • Executive Library Support Routines
    • Run-Time Library (RTL) Routines
    • Safe String Library Routines
    • Safe Integer Library Routines
    • Direct Memory Access (DMA) Library Routines
    • Hardware Abstraction Layer (HAL) Library Routines
    • Common Log File System (CLFS) Routines
    • Windows Management Instrumentation (WMI) Library Support Routines
    • ZwXxx Routines
    • Auxiliary Kernel-Mode Library Routines and Structures
    • Processor Group Compatibility Library

Public headers for Windows kernel

To develop Windows kernel, you need these headers:

For the programming guide, see Windows kernel.

Initialization and unload

This section summarizes kernel-mode support routines that can be called by drivers from their DriverEntry, AddDevice, Reinitialize, or Unload routines.

Routines for ... Routine
Obtaining and reporting hardware configuration information about a driver's devices and the current platform. IoGetDeviceProperty, IoReportDetectedDevice, IoReportResourceForDetection, IoGetDmaAdapter, IoGetConfigurationInformation, HalExamineMBR, IoReadPartitionTable, IoInvalidateDeviceRelations, IoInvalidateDeviceState, IoRegisterPlugPlayNotification, IoUnregisterPlugPlayNotification, IoRequestDeviceEject, IoReportTargetDeviceChange
Obtaining and reporting configuration information, and for registering interfaces in the registry. IoGetDeviceProperty, IoOpenDeviceInterfaceRegistryKey, IoOpenDeviceRegistryKey, IoRegisterDeviceInterface, IoSetDeviceInterfaceState, RtlCheckRegistryKey, RtlCreateRegistryKey, RtlQueryRegistryValues, RtlWriteRegistryValue, RtlDeleteRegistryValue, InitializeObjectAttributes, ZwCreateKey, ZwOpenKey, ZwQueryKey, ZwEnumerateKey, ZwEnumerateValueKey, ZwQueryValueKey, ZwSetValueKey, ZwFlushKey, ZwDeleteKey, ZwClose
Setting up and freeing the objects and resources that drivers might use. IoCreateDevice, IoDeleteDevice, IoGetDeviceObjectPointer, IoAttachDeviceToDeviceStack, IoGetAttachedDeviceReference, IoDetachDevice, IoAllocateDriverObjectExtension, IoGetDriverObjectExtension, IoRegisterDeviceInterface, IoIsWdmVersionAvailable, IoDeleteSymbolicLink, IoAssignArcName, IoDeassignArcName, IoSetShareAccess, IoConnectInterrupt, IoDisconnectInterrupt, IoConnectInterruptEx, IoDisconnectInterruptEx, IoInitializeDpcRequest, IoReadPartitionTable, IoSetPartitionInformation, IoWritePartitionTable, IoCreateController, IoDeleteController, KeInitializeSpinLock, KeInitializeDpc, KeInitializeTimer, KeInitializeTimerEx, KeInitializeEvent, ExInitializeFastMutex, KeInitializeMutex, KeInitializeSemaphore, IoCreateNotificationEvent, IoCreateSynchronizationEvent, PsCreateSystemThread, PsTerminateSystemThread, KeSetBasePriorityThread, KeSetPriorityThread, MmIsThisAnNtAsSystem, MmQuerySystemSize, ExInitializeNPagedLookasideList, ExInitializePagedLookasideList, ExInitializeResourceLite, ExReinitializeResourceLite, ExDeleteResourceLite, ObReferenceObjectByHandle, ObReferenceObjectByPointer, ObReferenceObject, ObDereferenceObject, RtlInitString, RtlInitAnsiString, RtlInitUnicodeString, InitializeObjectAttributes, ZwCreateDirectoryObject, ZwCreateFile, ZwCreateKey, ZwDeleteKey, ZwMakeTemporaryObject, ZwClose, PsGetVersion, ObGetObjectSecurity, ObReleaseObjectSecurity
Initializing driver-managed internal queues. KeInitializeSpinLock,InitializeListHead, ExInitializeSListHead, KeInitializeDeviceQueue, IoCsqInitialize

The following routines are reserved for system use. Do not use them in your driver.

  • HalAcquireDisplayOwnership
  • HalAllocateAdapterChannel. Use AllocateAdapterChannel instead.
  • HalAllocateCrashDumpRegisters
  • HalAllocateMapRegisters
  • HalGetScatterGatherList. Use GetScatterGatherList instead.
  • HalMakeBeep
  • HalPutDmaAdapter. Use PutDmaAdapter instead.
  • HalPutScatterGatherList. Use PutScatterGatherList instead.

The following obsolete routines are exported only to support existing drivers:

Obsolete routine Replacement
HalAllocateCommonBuffer See AllocateCommonBuffer instead.
HalAssignSlotResources Drivers of PnP devices are assigned resources by the PnP manager, which passes resource lists with each IRP_MN_START_DEVICE request. Drivers that must support a legacy device that cannot be enumerated by the PnP manager should use IoReportDetectedDevice and IoReportResourceForDetection.
HalFreeCommonBuffer See FreeCommonBuffer instead.
HalGetAdapter See IoGetDmaAdapter instead.
HalGetBusData Instead, use IRP_MN_QUERY_INTERFACE to query the GUID_BUS_INTERFACE_STANDARD interface. This query request returns a function pointer to GetBusData, which can be used to read from the configuration space of a given device.
HalGetBusDataByOffset Instead, use IRP_MN_QUERY_INTERFACE to query the GUID_BUS_INTERFACE_STANDARD interface. This query request returns a function pointer to GetBusData, which can be used to read from the configuration space of a given device.
HalGetDmaAlignmentRequirement See GetDmaAlignment instead.
HalGetInterruptVector Drivers of PnP devices are assigned resources by the PnP manager, which passes resource lists with each IRP_MN_START_DEVICE request. Drivers that must support a legacy device that cannot be enumerated by the PnP manager should use IoReportDetectedDevice and IoReportResourceForDetection.
HalReadDmaCounter See ReadDmaCounter instead.
HalSetBusData Instead, use IRP_MN_QUERY_INTERFACE to query the GUID_BUS_INTERFACE_STANDARD interface. This query request returns a function pointer to SetBusData, which can be used to write to the configuration space of a given device.
HalSetBusDataByOffset Instead, use IRP_MN_QUERY_INTERFACE to query the GUID_BUS_INTERFACE_STANDARD interface. This query request returns a function pointer to SetBusData, which can be used to write to the configuration space of a given device.
HalTranslateBusAddress The PnP manager passes lists of raw and translated resources in its IIRP_MN_START_DEVICE request for each device. Consequently, in most cases there is no need to translate bus addresses. However, if translation is required, use IRP_MN_QUERY_INTERFACE to query the GUID_BUS_INTERFACE_STANDARD interface. The query request returns a function pointer to TranslateBusAddress, which can be used to translates addresses on the parent bus to logical addresses.

These obsolete routines are included in the Ntddk.h header file.

The following routine is not supported and should not be used:

  • HalReturnToFirmware

Windows performs resource balancing of PCI bus resources to open an address region for a plugged device. The rebalance operation causes the bus data for some driver's device to move dynamically (between IRP_MN_STOP_DEVICE and IRP_MN_START_DEVICE calls). Therefore, a driver must not access the bus data directly. Instead the driver must pass it down to the lower bus driver because it knows the location of the device.

For more information, see Stopping a Device to Rebalance Resources.

Registry

Used for obtaining and reporting configuration information, and for registering interfaces in the registry.

Function Description
IoGetDeviceProperty Retrieves device setup information from the registry. Use this routine, rather than accessing the registry directly, to insulate a driver from differences across platforms and from possible changes in the registry structure.
IoOpenDeviceInterfaceRegistryKey Returns a handle to a registry key for storing information about a particular device interface.
IoOpenDeviceRegistryKey Returns a handle to a device-specific or a driver-specific registry key for a particular device instance.
IoRegisterDeviceInterface Registers device functionality (a device interface) that a driver will enable for use by applications or other system components. The I/O manager creates a registry key for the device interface. Drivers can access persistent storage under this key using IoOpenDeviceInterfaceRegistryKey.
IoSetDeviceInterfaceState Enables or disables a previously registered device interface. Applications and other system components can open only interfaces that are enabled.
RtlCheckRegistryKey Returns STATUS_SUCCESS if a key exists in the registry along the given relative path.
RtlCreateRegistryKey Adds a key object in the registry along the given relative path.
RtlQueryRegistryValues Gives a driver-supplied callback read-only access to the entries for a specified value name, along a specified relative path, in the registry, after the callback routine is given control.
RtlWriteRegistryValue Writes caller-supplied data into the registry along the specified relative path at the given value name.
RtlDeleteRegistryValue Removes the specified value name (and the associated value entries) from the registry along the given relative path.
InitializeObjectAttributes Sets up a parameter of type OBJECT_ATTRIBUTES for a subsequent call to a ZwCreateXxx or ZwOpenXxx routine.
ZwCreateKey Creates a new key in the registry with the given object's attributes, allowed access, and creation options (such as whether the key is created again when the system is booted). Alternatively, opens an existing key and returns a handle for the key object.
ZwOpenKey Returns a handle for a key in the registry given the object's attributes (which must include a name for the key) and the desired access to the object.
ZwQueryKey Returns information about the class of a key, and the number and sizes of its subkeys. This information includes, for example, the length of subkey names and the size of value entries.
ZwEnumerateKey Returns the specified information about the subkey, as selected by a zero-based index, of an opened key in the registry.
ZwEnumerateValueKey Returns the specified information about the value entry of a subkey, as selected by a zero-based index, of an opened key in the registry.
ZwQueryValueKey Returns the value entry for an opened key in the registry.
ZwSetValueKey Replaces (or creates) a value entry for an opened key in the registry.
ZwFlushKey Forces changes made by ZwCreateKey or ZwSetValueKey for the opened key object to be written to disk.
ZwDeleteKey Removes a key and its value entries from the registry as soon as the key is closed.
ZwClose Releases the handle for an opened object, causing the handle to become invalid and decrementing the reference count of the object handle.

Objects and resources

Used for setting up and freeing the objects and resources that drivers might use.

Function Description
IoCreateDevice Initializes a device object, which represents a physical, virtual, or logical device for which the driver is being loaded into the system. Then it allocates space for the driver-defined device extension associated with the device object.
IoDeleteDevice Removes a device object from the system when the underlying device is removed from the system.
IoGetDeviceObjectPointer Requests access to a named device object and returns a pointer to that device object if the requested access is granted. Also returns a pointer to the file object referenced by the named device object. In effect, this routine establishes a connection between the caller and the next-lower-level driver.
IoAttachDeviceToDeviceStack Attaches the caller's device object to the highest device object in a chain of drivers and returns a pointer to the previously highest device object. I/O requests bound for the target device are routed first to the caller.
IoGetAttachedDeviceReference Returns a pointer to the highest level device object in a driver stack and increments the reference count on that object.
IoDetachDevice Releases an attachment between the caller's device object and a target driver's device object.
IoAllocateDriverObjectExtension Allocates a per-driver context area with a given unique identifier.
IoGetDriverObjectExtension Retrieves a previously allocated per-driver context area.
IoRegisterDeviceInterface Registers device functionality (a device interface) that a driver will enable for use by applications or other system components. The I/O manager creates a registry key for the device interface. Drivers can access persistent storage under this key by calling IoOpenDeviceInterfaceRegistryKey.
IoIsWdmVersionAvailable Checks whether a given WDM version is supported by the operating system.
IoDeleteSymbolicLink Releases a symbolic link between a device object name and a user-visible name.
IoAssignArcName Sets up a symbolic link between a named device object (such as a tape, floppy, or CD-ROM) and the corresponding ARC name for the device.
IoDeassignArcName Releases the symbolic link created by calling IoAssignArcName.
IoSetShareAccess Sets the access allowed to a given file object that represents a device. (Only highest-level drivers can call this routine.)
IoConnectInterrupt Registers a driver's interrupt-handling routine. Drivers should use IoConnectInterruptEx instead.
IoDisconnectInterrupt Unregisters an interrupt-handling routine that IoConnectInterrupt registered.
IoConnectInterruptEx Registers a driver's interrupt-handling routine. Drivers can register either an InterruptService routine for line-based interrupts or an InterruptMessageService routine for message-signaled interrupts.
IoDisconnectInterruptEx Unregisters an interrupt-handling routine that IoConnectInterruptEx registered.
IoInitializeDpcRequest Associates a driver-supplied DpcForIsr routine with a given device object, so that the DpcForIsr routine can complete interrupt-driven I/O operations.
IoReadPartitionTable Returns a list of partitions on a disk with a given sector size.
IoSetPartitionInformation Sets the partition type and number for a (disk) partition.
IoWritePartitionTable Writes partition tables for a disk, given the device object that represents the disk, the sector size, and a pointer to a buffer containing the drive layout structure.
IoCreateController Initializes a controller object representing a physical device controller that is shared by two or more similar devices that have the same driver, and specifies the size of the controller extension.
IoDeleteController Removes a controller object from the system.
KeInitializeSpinLock Initializes a variable of type KSPIN_LOCK.
KeInitializeDpc Initializes a DPC object, setting up a driver-supplied CustomDpc routine that can be called with a given context.
KeInitializeTimer Initializes a notification timer object to the Not-Signaled state.
KeInitializeTimerEx Initializes a notification or synchronization timer object to the Not-Signaled state.
KeInitializeEvent Initializes an event object as a synchronization (single waiter) or notification (multiple waiters) type event and sets up its initial state (Signaled or Not-Signaled).
ExInitializeFastMutex Initializes a fast mutex variable that is used to synchronize mutually exclusive access to a shared resource by a set of threads.
KeInitializeMutex Initializes a mutex object as set to the Signaled state.
KeInitializeSemaphore Initializes a semaphore object to a given count and specifies an upper bound for the count.
IoCreateNotificationEvent Initializes a named notification event to be used to synchronize access between two or more components. Notification events are not automatically reset.
IoCreateSynchronizationEvent Initializes a named synchronization event to be used to serialize access to hardware between two otherwise unrelated drivers.
PsCreateSystemThread Creates a kernel-mode thread that is associated with a given process object or with the default system process. Returns a handle for the thread.
PsTerminateSystemThread Terminates the current thread and satisfies as many waits as possible for the current thread object.
KeSetBasePriorityThread Sets up the run-time priority, relative to the system process, for a driver-created thread.
KeSetPriorityThread Sets up the run-time priority for a driver-created thread with a real-time priority attribute.
MmIsThisAnNtAsSystem Returns TRUE if the current platform is a server, indicating that more resources are likely to be necessary to process I/O requests than if the machine were a client.
MmQuerySystemSize Returns an estimate (small, medium, or large) of the amount of memory available on the current platform.
ExInitializeNPagedLookasideList Initializes a lookaside list of nonpaged memory. After a successful initialization, fixed-size blocks can be allocated from and freed to the lookaside list.
ExInitializePagedLookasideList Initializes a lookaside list of paged memory. After a successful initialization, fixed-size blocks can be allocated from and freed to the lookaside list.
ExInitializeResourceLite Initializes a resource, for which the caller provides the storage, to be used for synchronization by a set of threads.
ExReinitializeResourceLite Reinitializes an existing resource variable.
ExDeleteResourceLite Deletes a caller-initialized resource from the system's resource list.
ObReferenceObjectByHandle Returns a pointer to the object body and handle information (attributes and granted access rights), given the handle for an object, the object's type, and a mask. Specifies the desired access to the object and the preferred access mode. A successful call increments the reference count for the object.
ObReferenceObjectByPointer Increments the reference count for an object so the caller can ensure that the object is not removed from the system while the caller is using it.
ObReferenceObject Increments the reference count for an object, given a pointer to the object.
ObDereferenceObject Releases a reference to an object (decrements the reference count), given a pointer to the object body.
RtlInitString Initializes a counted string in a buffer.
RtlInitAnsiString Initializes a counted ANSI string in a buffer.
RtlInitUnicodeString Initializes a counted Unicode string in a buffer.
InitializeObjectAttributes Initializes a parameter of type OBJECT_ATTRIBUTES for a subsequent call to a ZwCreateXxx or ZwOpenXxx routine.
ZwCreateDirectoryObject Creates or opens a directory object with a specified set of object attributes and requests one or more types of access for the caller. Returns a handle for the directory object.
ZwCreateFile Creates or opens a file object that represents a physical, logical, or virtual device, a directory, a data file, or a volume. Returns a handle for the file object.
ZwCreateKey Creates or opens a key object in the registry and returns a handle for the key object.
ZwDeleteKey Deletes an existing, open key in the registry after the last handle for the key is closed.
ZwMakeTemporaryObject Resets the "permanent" attribute of an opened object, so that the object and its name can be deleted when the reference count for the object becomes zero.
ZwClose Releases the handle for an opened object, causing the handle to become invalid, and decrements the reference count of the object handle.
PsGetVersion Supplies information about the operating system version and build number.
ObGetObjectSecurity Returns a buffered security descriptor for a given object.
ObReleaseObjectSecurity Releases the security descriptor returned by ObGetObjectSecurity.

Initializing driver-managed queues

Used for initializing driver-managed internal queues.

Function Description
KeInitializeSpinLock Initializes a variable of type KSPIN_LOCK. An initialized spin lock is a required parameter to the ExXxxInterlockedList routines.
InitializeListHead Sets up a queue header for a driver's internal queue, given a pointer to driver-supplied storage for the queue header and queue.
ExInitializeSListHead Sets up the queue header for a sequenced, interlocked, singly linked list.
KeInitializeDeviceQueue Initializes a device queue object to a Not Busy state, setting up an associated spin lock for multiprocessor-safe access to device queue entries.
IoCsqInitialize Initializes the dispatch table for a driver's cancel-safe IRP queue.

I/O manager routines

All kernel-mode drivers except video and SCSI miniport drivers and NDIS drivers call IoXxx routines.

References for the IoXxx routines are in alphabetical order.

For an overview of the functionality of these routines, see Summary of Kernel-Mode Support Routines.

The following routine is for system use. Do not use it in your driver.

  • IoUpdateDiskGeometry

Power management routines

The Windows power management architecture provides a comprehensive approach to power management supported at the component (subdevice) level, in addition to the system level and the device level.

Kernel-mode drivers call the PoXxx routines to perform power management for the devices that they control. This section contains the reference pages for these routines. The PoXxx routines are declared in the Wdm.h header file.

For more information about power management, see Power Management for Windows Drivers.

Function Description
PoCallDriver The PoCallDriver routine 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 decrements the count for the specified power request type.
PoCreatePowerRequest The PoCreatePowerRequest routine creates a power request object.
PoDeletePowerRequest The PoDeletePowerRequest routine deletes a power request object.
PoEndDeviceBusy The PoEndDeviceBusy routine marks the end of a period of time in which the device is busy.
PoGetSystemWake The PoGetSystemWake routine determines whether a specified IRP has been marked as waking the system from a sleeping state.
PoQueryWatchdogTime The PoQueryWatchdogTime routine indicates whether the power manager has enabled a watchdog time-out counter for any power IRP that is currently assigned to the device stack.
PoRegisterDeviceForIdleDetection The PoRegisterDeviceForIdleDetection routine enables or cancels idle detection and sets idle time-out values for a device.
PoRegisterPowerSettingCallback The PoRegisterPowerSettingCallback routine registers a power-setting callback routine to receive notifications of changes in the specified power setting.
PoRegisterSystemState The PoRegisterSystemState routine registers the system as busy due to certain activity.
PoRequestPowerIrp The PoRequestPowerIrp routine allocates a power IRP and sends it to the top driver in the device stack for the specified device.
PoSetDeviceBusyEx The PoSetDeviceBusyEx routine notifies the power manager that the device associated with the specified idle counter is busy.
PoSetPowerRequest The PoSetPowerRequest routine increments the count for the specified power request type.
PoSetPowerState The PoSetPowerState routine 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.
PoStartDeviceBusy The PoStartDeviceBusy routine marks the start of a period of time in which the device is busy.
PoStartNextPowerIrp The PoStartNextPowerIrp routine signals the power manager that the driver is ready to handle the next power IRP. (Windows Server 2003, Windows XP, and Windows 2000 only.)
PoUnregisterPowerSettingCallback The PoUnregisterPowerSettingCallback routine unregisters a power-setting callback routine that a driver previously registered by calling the PoRegisterPowerSettingCallback routine.
PoUnregisterSystemState The PoUnregisterSystemState routine cancels a system state registration created by PoRegisterSystemState.

Device power management

Starting with Windows 8, drivers can divide their device hardware into multiple logical components to enable fine-grained power management. A component has a set of power states that can be managed independently of the power states of other components in the same device. In the F0 state, the component is fully turned on. The component might support additional, low-power states F1, F2, and so on.

The power policy owner for a device is typically the device's function driver. To enable component-level power management, this driver registers the device with the power management framework (PoFx). By registering the device, the driver assumes the responsibility for informing PoFx when a component is actively being used and when the component is idle. PoFx makes intelligent idle state choices for the device based on information about the component activity, latency tolerance, expected idle durations, and wake requirements. By controlling power usage at the component level, PoFx can reduce power requirements while preserving system responsiveness. For more information, see Component-Level Power Management.

This section describes the routines that are implemented by the power management framework (PoFx) to enable device power management. These routines are called by the driver that is the power policy owner (PPO) for a device. Typically, the function driver for a device is the PPO for this device.

Function Description
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.
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).
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).
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).

Device power management callbacks

Device power management callbacks are the callback routines that are required by the power management framework (PoFx) to enable device power management. The driver that is the power policy owner for the device implements these callback routines. PoFx calls these routines to query and configure the power states of the components in the device.

Callback Description
ComponentActiveConditionCallback The ComponentActiveConditionCallback callback routine notifies the driver that the specified component completed a transition from the idle condition to the active condition.
ComponentIdleConditionCallback The ComponentIdleConditionCallback callback routine notifies the driver that the specified component completed a transition from the active condition to the idle condition.
ComponentIdleStateCallback The ComponentIdleStateCallback callback routine notifies the driver of a pending change to the Fx power state of the specified component.
ComponentPerfStateCallback The ComponentPerfStateCallback callback routine notifies the driver that its request to change the performance state of a component is complete.
DevicePowerNotRequiredCallback The DevicePowerNotRequiredCallback callback routine notifies the device driver that the device is not required to stay in the D0 power state.
DevicePowerRequiredCallback The DevicePowerRequiredCallback callback routine notifies the device driver that the device must enter and remain in the D0 power state.
PowerControlCallback The PowerControlCallback callback routine performs a power control operation that is requested by the power management framework (PoFx).

Platform extension plug-in (PEP) reference

Platform extension plug-ins (PEPs) provide interfaces for platform power management including device power management (DPM), processor power management (PPM), and, starting with Windows 10, ACPI runtime methods.

The types of notifications sent to platform extension plug-ins (PEPs) include:

ACPI notifications

Device power management (DPM) notifications

Processor power management (PPM) notifications

PPM power control codes

Initialization Function Description
PEP_ACPI_INITIALIZE_EXTENDED_IO_RESOURCE The PEP_ACPI_INITIALIZE_EXTENDED_IO_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_EXTENDED_ADDRESS structure.
PEP_ACPI_INITIALIZE_EXTENDED_MEMORY_RESOURCE The PEP_ACPI_INITIALIZE_EXTENDED_MEMORY_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_EXTENDED_ADDRESS structure.
PEP_ACPI_INITIALIZE_GPIO_INT_RESOURCE The PEP_ACPI_INITIALIZE_GPIO_INT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_GPIO_RESOURCE structure.
PEP_ACPI_INITIALIZE_GPIO_IO_RESOURCE The PEP_ACPI_INITIALIZE_GPIO_IO_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_GPIO_RESOURCE structure.
PEP_ACPI_INITIALIZE_INTERRUPT_RESOURCE The PEP_ACPI_INITIALIZE_INTERRUPT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_INTERRUPT_RESOURCE structure.
PEP_ACPI_INITIALIZE_IOPORT_RESOURCE The PEP_ACPI_INITIALIZE_IOPORT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_IO_MEMORY_RESOURCE structure.
PEP_ACPI_INITIALIZE_MEMORY_RESOURCE The PEP_ACPI_INITIALIZE_MEMORY_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_IO_MEMORY_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_I2C_RESOURCE The PEP_ACPI_INITIALIZE_SPB_I2C_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_I2C_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_SPI_RESOURCE The PEP_ACPI_INITIALIZE_SPB_SPI_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_SPI_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_UART_RESOURCE The PEP_ACPI_INITIALIZE_SPB_UART_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_UART_RESOURCE structure.

PEP callback routines

The callback routines are implemented by platform extension plug-ins, and are called by the Windows power management framework (PoFx).

Callback function Description
AcceptAcpiNotification An AcceptAcpiNotification event callback routine handles ACPI notifications from the Windows power management framework (PoFx).
AcceptDeviceNotification An AcceptDeviceNotification event callback routine handles device power management (DPM) notifications from the Windows power management framework (PoFx).
AcceptProcessorNotification An AcceptProcessorNotification event callback routine handles processor power management (PPM) notifications from the Windows power management framework (PoFx).
PO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK An EnumerateInterruptSource callback routine supplies a platform extension plug-in (PEP) with information about an interrupt source.
PROCESSOR_HALT_ROUTINE A Halt callback routine transitions the processor to an idle state.
PowerOnDumpDeviceCallback The PowerOnDumpDeviceCallback callback routine turns on the crash-dump device.

Power management framework (PoFx) routines

Some miscellaneous PoFx routines and structures will most likely end up in the power-management section of the Kernel-Mode Driver Architecture doc set.

Initialization Function Description
PoFxRegisterPlugin The PoFxRegisterPlugin routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterPluginEx The PoFxRegisterPluginEx routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterCoreDevice The PoFxRegisterCoreDevice routine registers a new core system resource with the Windows power management framework (PoFx).
PoFxRegisterCrashdumpDevice The PoFxRegisterCrashdumpDevice routine registers a crash-dump device.
PoFxPowerOnCrashdumpDevice The PoFxPowerOnCrashdumpDevice routine requests that a crash-dump device be turned on.
Callback function Description
POFXCALLBACKENUMERATEUNMASKEDINTERRUPTS The EnumerateUnmaskedInterrupts routine enumerates interrupt sources whose interrupts are unmasked and enabled.
POFXCALLBACKPLATFORMIDLEVETO The PlatformIdleVeto routine increments or decrements the veto count for a veto code for a platform idle state.
POFXCALLBACKPROCESSORHALT The ProcessorHalt routine prepares the processor to be halted.
POFXCALLBACKPROCESSORIDLEVETO The ProcessorIdleVeto routine increments or decrements the veto count for a veto code for a processor idle state.
POFXCALLBACKREQUESTCOMMON The RequestCommon routine is a generic request handler.
POFXCALLBACKREQUESTINTERRUPT The RequestInterrupt routine requests that the operating system replay an edge-triggered interrupt that might have been lost while the hardware platform was in a low-power state.
POFXCALLBACKREQUESTWORKER The RequestWorker routine is called by a platform extension plug-in (PEP) to inform the Windows power management framework (PoFx) that the platform extension plug-in (PEP) has a work request to submit on behalf of the specified device.
POFXCALLBACKCRITICALRESOURCE The TransitionCriticalResource routine changes the active/inactive state of a core system component.
POFXCALLBACKUPDATEPLATFORMIDLESTATE The UpdatePlatformIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified platform idle state.
POFXCALLBACKUPDATEPROCESSORIDLESTATE The UpdateProcessorIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified processor idle state.
ComponentCriticalTransitionCallback The ComponentCriticalTransitionCallback callback routine handles a transition of the specified component between the F0 (fully on) and low-power Fx component power states.

Configuration manager routines

The configuration manager routines use the CmXxx naming convention.

  • CmCallbackGetKeyObjectID
  • CmCallbackGetKeyObjectIDEx
  • CmCallbackReleaseKeyObjectIDEx
  • CmGetBoundTransaction
  • CmGetCallbackVersion
  • CmRegisterCallback
  • CmRegisterCallbackEx
  • CmSetCallbackObjectContext
  • CmUnRegisterCallback

Kernel transaction manager (KTM) routines

This section describes the routines, structures, and enumerations that the Kernel Transaction Manager (KTM) provides.

Transaction manager object routines

This section includes the following topics:

  • TmRecoverTransactionManager
  • ZwCreateTransactionManager
  • ZwOpenTransactionManager
  • ZwQueryInformationTransactionManager
  • ZwRecoverTransactionManager
  • ZwRollforwardTransactionManager

Transaction object routines

This section includes the following topics:

  • TmCommitTransaction
  • TmGetTransactionId
  • TmIsTransactionActive
  • TmRollbackTransaction
  • ZwCommitTransaction
  • ZwCreateTransaction
  • ZwEnumerateTransactionObject
  • ZwOpenTransaction
  • ZwQueryInformationTransaction
  • ZwRollbackTransaction
  • ZwSetInformationTransaction

Enlistment object routines

This section includes the following topics:

  • TmCommitComplete
  • TmCommitEnlistment
  • TmCreateEnlistment
  • TmDereferenceEnlistmentKey
  • TmPrepareComplete
  • TmPrePrepareComplete
  • TmPrepareEnlistment
  • TmPrePrepareEnlistment
  • TmReadOnlyEnlistment
  • TmRecoverEnlistment
  • TmReferenceEnlistmentKey
  • TmRequestOutcomeEnlistment
  • TmRollbackComplete
  • TmRollbackEnlistment
  • TmSinglePhaseReject
  • ZwCommitComplete
  • ZwCommitEnlistment
  • ZwCreateEnlistment
  • ZwOpenEnlistment
  • ZwPrepareComplete
  • ZwPrePrepareComplete
  • ZwPrepareEnlistment
  • ZwPrePrepareEnlistment
  • ZwQueryInformationEnlistment
  • ZwReadOnlyEnlistment
  • ZwRecoverEnlistment
  • ZwRollbackComplete
  • ZwRollbackEnlistment
  • ZwSetInformationEnlistment
  • ZwSinglePhaseReject

Resource manager object routines

This section includes the following topics:

  • ResourceManagerNotification
  • TmEnableCallbacks
  • TmRecoverResourceManager
  • ZwCreateResourceManager
  • ZwGetNotificationResourceManager
  • ZwOpenResourceManager
  • ZwQueryInformationResourceManager
  • ZwRecoverResourceManager
  • ZwSetInformationResourceManager

Security reference monitor routines

Generally, higher-level drivers, particularly network drivers, call these routines.

References for the SeXxx routines are in alphabetical order.

  • SeAccessCheck
  • SeAssignSecurity
  • SeAssignSecurityEx
  • SeDeassignSecurity
  • SeFreePrivileges
  • SeSinglePrivilegeCheck
  • SeValidSecurityDescriptor

Core kernel library support routines

All kernel-mode drivers except video and SCSI miniport drivers and NDIS drivers are likely to call at least some KeXxx routines.

This section describes references for the KeXxx routines, in alphabetical order.

For an overview of the functionality of these routines, see Summary of Kernel-Mode Support Routines.

The following routines are reserved for system use:

  • KeAcquireSpinLockRaiseToSynch
  • KeBreakinBreakpoint
  • KeEnterKernelDebugger
  • KeFlushWriteBuffer
  • KeGetBugMessageText
  • KeRaiseIrqlToSynchLevel
  • KeRemoveByKeyDeviceQueueIfBusy
  • KeSetTimeUpdateNotifyRoutine

Executive library support routines

This section describes the executive library support routines. These routines use the ExXxx naming convention and are listed in alphabetical order.

The following executive support routines are reserved for system use. Do not use them in your driver.

Routine Replacement
ExAcquireSpinLock Use KeAcquireSpinLock instead.
ExAcquireSpinLockAtDpcLevel Use KeAcquireSpinLockAtDpcLevel instead.
ExfInterlockedDecrementLong Use InterlockedDecrement instead.
ExfInterlockedExchangeUlong Use InterlockedExchange instead.
ExfInterlockedIncrementLong Use InterlockedIncrement instead.
ExfInterlockedPopEntryList Use ExInterlockedPopEntryList instead.
ExfInterlockedPushEntryList Use ExInterlockedPushEntryList instead.
ExReleaseSpinLock Use KeReleaseSpinLock instead.
ExReleaseSpinLockFromDpcLevel Use KeReleaseSpinLockFromDpcLevel instead.
ExVerifySuite

CLFS library routines

This section contains reference pages for routines implemented by the Common Log File System (CLFS). For a listing of the CLFS management routines, see CLFS Management Library Routines. For a conceptual discussion of CLFS, see Common Log File System in the design guide section of this documentation. For definitions of key terms used in the CLFS documentation, see CLFS Terminology.

Callback function Description
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.
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.
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.

IRPs

Microsoft Windows use I/O Request Packets (IRPs) to send messages to device drivers. An IRP is a data structure that contains specific information used to convey the status of an event. For more information about the IRP data structure, see IRP and IRP Major Function Codes.

Your driver can use System-Supplied Driver Interfaces to send IRPs to other drivers.

In addition to the Standard IRP Codes, there are three additional types of IRPs for specific technologies:

This section describes kernel-mode support routines that drivers can call:

  • While processing IRPs.

  • To allocate and set up IRPs for requests from higher-level drivers to lower drivers.

  • To use file objects.

Processing IRPs

Function Description
IoGetCurrentIrpStackLocation Returns a pointer to the caller's I/O stack location in a given IRP.
IoGetNextIrpStackLocation Returns a pointer to the next-lower-level driver's I/O stack location in a given IRP.
IoCopyCurrentIrpStackLocationToNext Copies the IRP stack parameters from the current stack location to the stack location of the next-lower driver and allows the current driver to set an I/O completion routine.
IoSkipCurrentIrpStackLocation Copies the IRP stack parameters from the current stack location to the stack location of the next-lower driver and does not allow the current driver to set an I/O completion routine.
IoGetRelatedDeviceObject Returns a pointer to the device object represented by a given file object.
IoGetFunctionCodeFromCtlCode Returns the value of the function field within a given IOCTL_XXX or FSCTL_XXX code.
IoValidateDeviceIoControlAccess Verifies that the sender of an IRP_MJ_DEVICE_CONTROL or IRP_MJ_FILE_SYSTEM_CONTROL IRP has the access specified.
IoSetCompletionRoutine Registers a driver-supplied IoCompletion routine for an IRP, so the IoCompletion routine is called when the next-lower-level driver has completed the requested operation in one or more of the following ways: successfully, with an error, or by canceling the IRP.
IoSetCompletionRoutineEx Same as IoSetCompletionRoutine, except that it guarantees a non-Plug and Play driver is not unloaded before the IoCompletion routine exits.
IoCallDriver Sends an IRP to a lower-level driver.
PoCallDriver Sends an IRP with major function code IRP_MJ_POWER to the next-lower driver.
IoForwardIrpSynchronously Sends an IRP to a lower-level driver synchronously.
IoMarkIrpPending Marks a given IRP indicating that STATUS_PENDING was returned because further processing is required by another driver routine or by a lower-level driver.
IoStartPacket Calls the driver's StartIo routine with the given IRP for the given device object or inserts the IRP into the device queue if the device is already busy, specifying whether the IRP is cancelable.
IoSetStartIoAttributes Sets attributes for when the driver's StartIo routine will execute.
IoAcquireCancelSpinLock Synchronizes cancelable state transitions for IRPs in a multiprocessor-safe manner.
IoSetCancelRoutine Sets or clears the Cancel routine in an IRP. Setting a Cancel routine makes an IRP cancelable.
IoReleaseCancelSpinLock Releases the cancel spin lock when the driver has changed the cancelable state of an IRP or releases the cancel spin lock from the driver's Cancel routine.
IoCancelIrp Marks an IRP as canceled.
IoReadPartitionTable Returns a list of partitions on a disk with a given sector size.
IoSetPartitionInformation Sets the partition type and number for a (disk) partition.
IoWritePartitionTable Writes partition tables for a disk, given the device object representing the disk, the sector size, and a pointer to a buffer containing the drive geometry.
IoAllocateErrorLogEntry Allocates and initializes an error log packet; returns a pointer so that the caller can supply error-log data and call IoWriteErrorLogEntry with the packet.
IoWriteErrorLogEntry Queues a previously allocated and filled-in error log packet to the system error logging thread.
IoIsErrorUserInduced Returns a Boolean value indicating whether an I/O request failed due to one of the following conditions: STATUS_IO_TIMEOUT, STATUS_DEVICE_NOT_READY, STATUS_UNRECOGNIZED_MEDIA, STATUS_VERIFY_REQUIRED, STATUS_WRONG_VOLUME, STATUS_MEDIA_WRITE_PROTECTED, or STATUS_NO_MEDIA_IN_DEVICE. If the result is TRUE, a removable-media driver must call IoSetHardErrorOrVerifyDevice before completing the IRP.
IoSetHardErrorOrVerifyDevice Supplies the device object for which the given IRP was failed due to a user-induced error, such as supplying the incorrect media for the requested operation or changing the media before the requested operation was completed. A file system driver uses the associated device object to notify the user, who can then correct the error or retry the operation.
IoRaiseHardError Notifies the user that the given IRP was failed on the given device object for an optional VPB, so that the user can correct the error or retry the operation.
IoRaiseInformationalHardError Notifies the user of an error, providing an I/O error status and an optional string supplying more information.
ExRaiseStatus Raises an error status and causes a caller-supplied structured exception handler to be called. Useful only to highest-level drivers that supply exception handlers, in particular to file systems.
IoStartNextPacket Dequeues the next IRP for a given device object, specifies whether the IRP is cancelable, and calls the driver's StartIo routine.
IoStartNextPacketByKey Dequeues the next IRP for a device object according to a specified sort-key value, specifies whether the IRP is cancelable, and calls the driver's StartIo routine.
IoCompleteRequest Completes an I/O request, giving a priority boost to the original caller and returning a given IRP to the I/O system for disposal: either to call any IoCompletion routines supplied by higher-level drivers, or to return status to the original requester of the operation.
IoGetCurrentProcess Returns a pointer to the current process. Useful only to highest-level drivers.
IoGetInitialStack Returns the initial base address of the current thread's stack. Useful only to highest-level drivers.
IoGetRemainingStackSize Returns the amount of available stack space. Useful only to highest-level drivers.
IoGetStackLimits Returns the boundaries of the current thread's stack frame. Useful only to highest-level drivers.
IoCsqInitialize Initializes the dispatch table for a driver's cancel-safe IRP queue.
IoCsqInsertIrp Inserts an IRP into a driver's cancel-safe IRP queue.
IoCsqRemoveIrp Removes the specified IRP from a driver's cancel-safe IRP queue.
IoCsqRemoveNextIrp Removes the next IRP from a driver's cancel-safe IRP queue.

Driver-allocated IRPs

Function Description
oBuildAsynchronousFsdRequest Allocates and sets up an IRP that specifies a major function code (IRP_MJ_PNP, IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_SHUTDOWN, or IRP_MJ_FLUSH_BUFFERS) with a pointer to: The lower driver's device object on which the I/O should occur. A buffer that will contain the data to be read or that contains the data to be written. The length of the buffer in bytes. The starting offset on the media. The I/O status block where the called driver can return status information and the caller's IoCompletion routine can access it. Returns a pointer to the IRP so the caller can set any necessary minor function code and set up its IoCompletion routine before sending the IRP to the target driver.
IoBuildSynchronousFsdRequest Allocates and sets up an IRP specifying a major function code (IRP_MJ_PNP, IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_SHUTDOWN, or IRP_MJ_FLUSH_BUFFERS) with a pointer to: The lower driver's device object on which the I/O should occur. A buffer that will contain the data to be read or that contains the data to be written. The length of the buffer in bytes. The starting offset on the media. An event object to be set to the Signaled state when the requested operation completes. The I/O status block where the called driver can return status information and the caller's IoCompletion routine can access it. Returns a pointer to the IRP so the caller can set any necessary minor function code and set up its IoCompletion routine before sending the IRP to the target driver.
IoBuildDeviceIoControlRequest Allocates and sets up an IRP specifying a major function code (either IRP_MJ_INTERNAL_DEVICE_CONTROL or IRP_MJ_DEVICE_CONTROL) with an optional input or output buffer; a pointer to the lower driver's device object; an event to be set to the Signaled state when the requested operation completes; and an I/O status block to be set by the driver that receives the IRP. Returns a pointer to the IRP so the caller can set the appropriate IOCTL_XXX before sending the IRP to the next-lower-level driver.
PoRequestPowerIrp Allocates and initializes an IRP with major function code IRP_MJ_POWER and then sends the IRP to the top-level driver in the device stack for the specified device object.
IoSizeOfIrp Returns the size in bytes required for an IRP with a given count of I/O stack locations.
IoAllocateIrp Allocates an IRP, given the number of I/O stack locations (optionally, for the caller, but at least one for each driver layered under the caller) and whether to charge quota against the caller. Returns a pointer to an IRP in nonpaged system space if successful; otherwise, returns NULL.
IoInitializeIrp Initializes an IRP, given a pointer to an already allocated IRP, its length in bytes, and its number of I/O stack locations.
IoSetNextIrpStackLocation Sets the current IRP stack location to the caller's location in an IRP. The stack location must have been allocated by a preceding call to IoAllocateIrp that specified a stack-size argument large enough to give the caller its own stack location.
IoAllocateMdl Allocates an MDL large enough to map the starting address and length supplied by the caller; optionally associates the MDL with a given IRP.
IoBuildPartialMdl Builds an MDL for the specified starting virtual address and length in bytes from a given source MDL. Drivers that split large transfer requests into a number of smaller transfers can call this routine.
IoFreeMdl Releases a given MDL allocated by the caller.
IoMakeAssociatedIrp Allocates and initializes an IRP to be associated with a master IRP sent to the highest-level driver, allowing the driver to "split" the original request and send associated IRPs on to lower-level drivers or to the device.
IoSetCompletionRoutine Registers a driver-supplied IoCompletion routine with a given IRP, so that the IoCompletion routine is called when lower-level drivers have completed the request. The IoCompletion routine lets the caller release the IRP it allocated with IoAllocateIrp or IoBuildAsynchronousFsdRequest; to release any other resources it allocated to set up an IRP for lower drivers; and to perform any I/O completion processing necessary.
IoSetCompletionRoutineEx Same as IoSetCompletionRoutine, except that it guarantees a non-Plug and Play driver is not unloaded before the IoCompletion routine exits.
IoCallDriver Sends an IRP to a lower-level driver.
IoFreeIrp Releases an IRP that was allocated by the caller.
IoReuseIrp Reinitializes for reuse an IRP that was previously allocated by IoAllocateIrp.

File objects

Function Description
InitializeObjectAttributes Initializes a parameter of type OBJECT_ATTRIBUTES for a subsequent call to a ZwCreateXxx or ZwOpenXxx routine.
ZwCreateFile Creates or opens a file object representing a physical, logical, or virtual device, a directory, a data file, or a volume.
ZwQueryInformationFile Returns information about the state or attributes of an open file.
IoGetFileObjectGenericMapping Returns information about the mapping between generic access rights and specific access rights for file objects.
ZwReadFile Returns data from an open file.
ZwSetInformationFile Changes information about the state or attributes of an open file.
ZwWriteFile Transfers data to an open file.
ZwClose Releases the handle for an opened object, causing the handle to become invalid and decrementing the reference count of the object handle.

Silo DDIs

This section describes the silo DDIs. These DDIs offer the ability for kernel components to learn about the server silos that are created and destroyed on a machine. Components register to receive notifications for these events and optionally store state that is associated with each silo.

Context management

These DDIs provide the ability to assign and retrieve context structures on silo objects. This allows drivers to attach per-silo information for each silo.

  • PsAllocSiloContextSlot
  • PsFreeSiloContextSlot
  • PsCreateSiloContext
  • PsInsertSiloContext
  • PsReplaceSiloContext
  • PsInsertPermanentSiloContext
  • PsGetPermanentSiloContext
  • PsMakeSiloContextPermanent
  • PsGetSiloContext
  • PsRemoveSiloContext
  • PsReferenceSiloContext
  • PsDereferenceSiloContext
  • SILO_CONTEXT_CLEANUP_CALLBACK

Threading

These DDIs provide the ability to set and retrieve the silo for the current thread.

  • PsAttachSiloToCurrentThread
  • PsDetachSiloFromCurrentThread
  • PsGetCurrentSilo
  • PsGetCurrentServerSilo

Monitoring

These DDIs provide the ability for a driver to receive notifications about silo creation and termination events.

  • PsRegisterSiloMonitor
  • PsUnregisterSiloMonitor
  • PsStartSiloMonitor
  • PsGetSiloMonitorContextSlot
  • SILO_MONITOR_CREATE_CALLBACK
  • SILO_MONITOR_TERMINATE_CALLBACK

Helpers

These DDIs are helpful for working with silo objects.

  • PsGetJobSilo
  • PsGetJobServerSilo
  • PsGetEffectiveServerSilo
  • PsIsHostSilo
  • PsGetHostSilo
  • PsTerminateServerSilo

Synchronization

This section describes the kernel-mode support routines that drivers can call to:

  • Synchronize the execution of their own standard driver routines (Driver Routines and I/O Objects).

  • Temporarily change the current IRQL for a call to a support routine or that return the current IRQL (IRQL).

  • Synchronize access to resources with spin locks or to perform interlocked operations without spin locks (Spin Locks and Interlocks).

  • Manage time-outs or determine system time (Timers).

  • Use system threads or to manage synchronization within a nonarbitrary thread context (Driver Threads, Dispatcher Objects, and Resources).

Driver routines and I/O objects

Function Description
KeSynchronizeExecution Synchronizes the execution of a driver-supplied SynchCritSection routine with that of the ISR associated with a set of interrupt objects, given a pointer to the interrupt objects.
IoRequestDpc Queues a driver-supplied DpcForIsr routine to complete interrupt-driven I/O processing at a lower IRQL.
KeInsertQueueDpc Queues a DPC to be executed as soon as the IRQL of a processor drops below DISPATCH_LEVEL; returns FALSE if the DPC object is already queued.
KeRemoveQueueDpc Removes a given DPC object from the DPC queue; returns FALSE if the object is not in the queue.
KeSetImportanceDpc Controls how a particular DPC is queued and, to some degree, how soon the DPC routine is run.
KeSetTargetProcessorDpc Controls on which processor a particular DPC subsequently will be queued.
KeFlushQueuedDpcs Call this routine to wait for all queued DPCs to execute.
AllocateAdapterChannel Connects a device object to an adapter object and calls a driver-supplied AdapterControl routine to carry out an I/O operation through the system DMA controller or a bus-master adapter as soon as the appropriate DMA channel and any necessary map registers are available. (This routine reserves exclusive access to a DMA channel and map registers for the specified device.)
FreeAdapterChannel Releases an adapter object, representing a system DMA channel, and optionally releases map registers, if any were allocated.
FreeMapRegisters Releases a set of map registers that were saved from a call to AllocateAdapterChannel, after the registers have been used by IoMapTransfer and the bus-master DMA transfer is complete.
IoAllocateController Connects a device object to a controller object and calls a driver-supplied ControllerControl routine to carry out an I/O operation on the device controller as soon as the controller is not busy. (This routine reserves exclusive access to the hardware controller for the specified device.)
IoFreeController Releases a controller object, provided that all device operations queued to the controller for the current IRP have completed.
IoStartTimer Enables the timer for a given device object and calls the driver-supplied IoTimer routine once per second thereafter.
IoStopTimer Disables the timer for a given device object so that the driver-supplied IoTimer routine is not called unless the driver reenables the timer.
KeSetTimer Sets the absolute or relative interval at which a timer object will be set to the Signaled state and optionally supplies a timer DPC to be executed after the interval expires.
KeSetTimerEx Sets the absolute or relative interval at which a timer object will be set to the Signaled state, optionally supplies a timer DPC to be executed when the interval expires, and optionally supplies a recurring interval for the timer.
KeCancelTimer Cancels a timer object before the interval passed to KeSetTimer expires; dequeues a timer DPC before the timer interval, if any was set, expires.
KeReadStateTimer Returns whether a given timer object is set to the Signaled state.
IoStartPacket Calls the driver's StartIo routine with the given IRP for the given device object or inserts the IRP into the device queue if the device is already busy, specifying whether the IRP is cancelable.
IoStartNextPacket Dequeues the next IRP for a given device object, specifying whether the IRP is cancelable, and calls the driver's StartIo routine.
IoStartNextPacketByKey Dequeues the next IRP, according to the specified sort-key value, for a given device object. Specifies whether the IRP is cancelable and calls the driver's StartIo routine.
IoSetCompletionRoutine Registers a driver-supplied IoCompletion routine with a given IRP, so the IoCompletion routine is called when the next-lower-level driver has completed the requested operation in one or more of the following ways: successfully, with an error, or by canceling the IRP.
IoSetCompletionRoutineEx Same as IoSetCompletionRoutine, except that it guarantees a non-Plug and Play driver is not unloaded before the IoCompletion routine exits.
IoSetCancelRoutine Sets or clears the Cancel routine in an IRP. Setting a Cancel routine makes an IRP cancelable.
KeStallExecutionProcessor Stalls the caller (a device driver) for a given interval on the current processor.
ExAcquireResourceExclusiveLite Acquires an initialized resource for exclusive access by the calling thread and optionally waits for the resource to be acquired.
ExAcquireResourceSharedLite Acquires an initialized resource for shared access by the calling thread and optionally waits for the resource to be acquired.
ExAcquireSharedStarveExclusive Acquires a given resource for shared access without waiting for any pending attempts to acquire exclusive access to the same resource.
ExAcquireSharedWaitForExclusive Acquires a given resource for shared access, optionally waiting for any pending exclusive waiters to acquire and release the resource first.
ExReleaseResourceForThreadLite Releases a given resource that was acquired by the given thread.
ZwReadFile Reads data from an open file. If the caller opened the file object with certain parameters, the caller can wait for the file handle to be returned for completion of the I/O.
ZwWriteFile Writes data to an open file. If the caller opened the file object with certain parameters, the caller can wait for the file handle to be returned for completion of the I/O.

IRQL

Function Description
KeRaiseIrql Raises the hardware priority to a given IRQL value, thereby masking off interrupts of equivalent or lower IRQL on the current processor.
KeRaiseIrqlToDpcLevel Raises the hardware priority to IRQL DISPATCH_LEVEL, thereby masking off interrupts of equivalent or lower IRQL on the current processor.
KeLowerIrql Restores the IRQL on the current processor to its original value.
KeGetCurrentIrql Returns the current hardware priority IRQL value.

Spin locks and interlocks

Function Description
IoAcquireCancelSpinLock Synchronizes cancelable state transitions for IRPs in a multiprocessor-safe manner.
IoSetCancelRoutine Sets or clears the Cancel routine in an IRP during a cancelable state transition. Setting a Cancel routine makes an IRP cancelable.
IoReleaseCancelSpinLock Releases the cancel spin lock when the driver has changed the cancelable state of an IRP or releases the cancel spin lock from the driver's Cancel routine.
KeInitializeSpinLock Initializes a variable of type KSPIN_LOCK, used to synchronize access to data shared among non-ISR routines. An initialized spin lock also is a required parameter to the ExInterlockedXxx routines.
KeAcquireSpinLock Acquires a spin lock so the caller can synchronize access to shared data safely on multiprocessor platforms.
KeAcquireSpinLockRaiseToDpc Acquires a spin lock so the caller can synchronize access to shared data safely on multiprocessor platforms.
KeReleaseSpinLock Releases a spin lock that was acquired by calling KeAcquireSpinLock and restores the original IRQL at which the caller was running.
KeAcquireSpinLockAtDpcLevel Acquires a spin lock, provided that the caller is already running at IRQL DISPATCH_LEVEL.
KeTryToAcquireSpinLockAtDpcLevel Acquires a spin lock that is not already held, provided that the caller is already running at IRQL DISPATCH_LEVEL.
KeReleaseSpinLockFromDpcLevel Releases a spin lock that was acquired by calling KeAcquireSpinLockAtDpcLevel.
KeAcquireInStackQueuedSpinLock Acquires a queued spin lock so the caller can synchronize access to shared data safely on multiprocessor platforms.
KeReleaseInStackQueuedSpinLock Releases a queued spin lock that was acquired by calling KeAcquireInStackQueuedSpinLock.
KeAcquireInStackQueuedSpinLockAtDpcLevel Acquires a queued spin lock, provided that the caller is already running at IRQL DISPATCH_LEVEL.
KeReleaseInStackQueuedSpinLockFromDpcLevel Releases a queued spin lock that was acquired by calling KeAcquireInStackQueuedSpinLockAtDpcLevel.
KeAcquireInterruptSpinLock Acquires the spin lock that synchronizes access with an interrupt's ISR.
KeReleaseInterruptSpinLock Release the spin lock that synchronized access with an interrupt's ISR.
ExInterlockedXxxList Insert and remove IRPs in a driver-managed internal queue, which is protected by an initialized spin lock for which the driver provides the storage.
KeXxxDeviceQueue Insert and remove IRPs in a driver-allocated and managed internal device queue object, which is protected by a built-in spin lock.
ExInterlockedAddUlong Adds a value to a variable of type ULONG as an atomic operation, using a spin lock to ensure multiprocessor-safe access to the variable; returns the value of the variable before the call occurred.
ExInterlockedAddLargeInteger Adds a value to a variable of type LARGE_INTEGER as an atomic operation, using a spin lock to ensure multiprocessor-safe access to the variable; returns the value of the variable before the call occurred.
InterlockedIncrement Increments a variable of type LONG as an atomic operation. The sign of the return value is the sign of the result of the operation.
InterlockedDecrement Decrements a variable of type LONG as an atomic operation. The sign of the return value is the sign of the result of the operation.
InterlockedExchange Sets a variable of type LONG to a specified value as an atomic operation; returns the value of the variable before the call occurred.
InterlockedExchangeAdd Adds a value to a given integer variable as an atomic operation; returns the value of the variable before the call occurred.
InterlockedCompareExchange Compares the values referenced by two pointers. If the values are equal, resets one of the values to a caller-supplied value in an atomic operation.
InterlockedCompareExchangePointer Compares the pointers referenced by two pointers. If the pointer values are equal, resets one of the values to a caller-supplied value in an atomic operation.
ExInterlockedCompareExchange64 Compares one integer variable to another and, if they are equal, resets the first variable to a caller-supplied ULONGLONG-type value as an atomic operation.
KeGetCurrentProcessorNumber Returns the current processor number when debugging spin lock usage in SMP machines.

Timers

Function Description
oInitializeTimer Associates a timer with the given device object and registers a driver-supplied IoTimer routine for the device object.
IoStartTimer Enables the timer for a given device object and calls the driver-supplied IoTimer routine once every second.
IoStopTimer Disables the timer for a given device object so the driver-supplied IoTimer routine is not called unless the driver reenables the timer.
KeInitializeDpc Initializes a DPC object and sets up a driver-supplied CustomTimerDpc routine that can be called with a given context.
KeInitializeTimer Initializes a notification timer object to the Not-Signaled state.
KeInitializeTimerEx Initializes a notification or synchronization timer object to the Not-Signaled state.
KeSetTimer Sets the absolute or relative interval at which a timer object will be set to the Signaled state; optionally supplies a timer DPC to be executed when the interval expires.
KeSetTimerEx Sets the absolute or relative interval at which a timer object will be set to the Signaled state; optionally supplies a timer DPC to be executed when the interval expires; and optionally supplies a recurring interval for the timer.
KeCancelTimer Cancels a timer object before the interval passed to KeSetTimer expires; dequeues a timer DPC before the timer interval, if any was set, expires.
KeReadStateTimer Returns TRUE if a given timer object is set to the Signaled state.
KeQuerySystemTime Returns the current system time.
KeQueryRuntimeThread Returns the accumulated kernel-mode and user-mode run time.
KeQueryTickCount Returns the number of interval-timer interrupts that have occurred since the system was booted.
KeQueryTimeIncrement Returns the number of 100-nanosecond units that are added to the system time at each interval-timer interrupt.
KeQueryInterruptTime Returns the current value of the system interrupt-time count in 100-nanosecond units, with accuracy to within system clock tick.
KeQueryInterruptTimePrecise Returns the current value of the system interrupt-time count in 100-nanosecond units, with accuracy to within a microsecond.
KeQueryPerformanceCounter Returns the system performance counter value in hertz.

Driver threads, dispatcher objects, and resources

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

Memory allocation and buffer management

This section describes the Windows kernel routines and macros that kernel-mode drivers call to allocate memory and manage I/O buffers.

The Windows memory manager provides a set of routines that kernel-mode drivers use to allocate and manage memory. These routines have names that begin with the prefix Mm.

This section contains reference pages for the MmXxx routines and memory-management macros. These reference pages are listed in alphabetical order.

For an overview of the functionality of these routines and macros, see Memory Allocation and Buffer Management. For an introduction to memory management support for kernel-mode drivers, see Memory Management for Windows Drivers.

The following routines are reserved for system use. Do not use them in your driver.

  • MmAddPhysicalMemoryEx
  • MmAddVerifierThunks
  • MmCreateMirror
  • MmGetMdlBaseVa
  • MmGetPhysicalMemoryRanges
  • MmGetProcedureAddress
  • MmGetVirtualForPhysical
  • MmIsVerifierEnabled
  • MmIsIoSpaceActive
  • MmMapUserAddressesToPage
  • MmMapVideoDisplay
  • MmMapVideoDisplayEx
  • MmMapViewInSessionSpace
  • MmMapViewInSystemSpace
  • MmMarkPhysicalMemoryAsBad
  • MmMarkPhysicalMemoryAsGood
  • MmProbeAndLockProcessPages
  • MmRemovePhysicalMemory
  • MmRemovePhysicalMemoryEx
  • MmRotatePhysicalView
  • MmUnmapVideoDisplay
  • MmUnmapViewInSessionSpace
  • MmUnmapViewInSystemSpace

For more information about memory allocation and buffer management, see Memory Management for Windows Drivers.

Buffer management

The short-term buffer management routines are called by kernel-mode drivers to allocate and free temporary buffers.

Function Description
ExAllocatePoolWithTag Allocates (optionally cache-aligned) pool memory from paged or nonpaged system space. The caller-supplied tag is put into any crash dump of memory that occurs.
ExAllocatePoolWithQuotaTag Allocates pool memory, charging quota against the original requester of the I/O operation. The caller-supplied tag is put into any crash dump of memory that occurs. Only highest-level drivers can call this routine.
ExFreePool Releases memory to paged or nonpaged system space.
ExFreePoolWithTag Releases memory with the specified pool tag.
ExInitializeNPagedLookasideList Initializes a lookaside list of nonpaged memory. After successful initialization of the list, fixed-size blocks can be allocated from, and freed to, the lookaside list.
ExAllocateFromNPagedLookasideList Removes the first entry from the specified lookaside list in nonpaged memory. If the lookaside list is empty, allocates an entry from nonpaged pool.
ExFreeToNPagedLookasideList Returns an entry to the specified lookaside list in nonpaged memory. If the list has reached its maximum size, returns the entry to nonpaged pool.
ExDeleteNPagedLookasideList Deletes a nonpaged lookaside list.
ExInitializePagedLookasideList Initializes a lookaside list of paged memory. After successful initialization of the list, fixed-size blocks can be allocated from and freed to the lookaside list.
ExAllocateFromPagedLookasideList Removes the first entry from the specified lookaside list in paged memory. If the lookaside list is empty, allocates an entry from paged pool.
ExFreeToPagedLookasideList Returns an entry to the specified lookaside list in paged memory. If the list has reached its maximum size, returns the entry to paged pool.
ExDeletePagedLookasideList Deletes a paged lookaside list.
MmQuerySystemSize Returns an estimate (small, medium, or large) of the amount of memory available on the current platform.
MmIsThisAnNtAsSystem Returns TRUE if the machine is running as a server. If this routine returns TRUE, the caller is likely to require more resources to process I/O requests, and the machine is a server so it is likely to have more resources available.

Long-term internal driver buffers

The long-term buffer management routines are called by kernel-mode drivers to allocate long-term driver-internal buffers.

Function Description
MmAllocateContiguousMemory Allocates a range of physically contiguous, cache-aligned memory in nonpaged pool.
MmFreeContiguousMemory Releases a range of physically contiguous memory when the driver unloads.
MmAllocateNonCachedMemory Allocates a virtual address range of non-cached and cache-aligned memory in nonpaged system space (pool).
MmFreeNonCachedMemory Releases a virtual address range of non-cached memory in nonpaged system space when the driver unloads.
MmAllocateMappingAddress Reserves a range of virtual address space that can later be mapped with MmMapLockedPagesWithReservedMapping.
MmFreeMappingAddress Frees a reserved memory address reserved by MmAllocateMappingAddress.
AllocateCommonBuffer Allocates and maps a logically contiguous region of memory that is simultaneously accessible both from the processor and from a device, given access to an adapter object, the requested length of the memory region to allocate, and access to variables where the starting logical and virtual addresses of the allocated region are returned. Returns TRUE if the requested length was allocated. Can be used for continuous bus-master DMA or for system DMA using the auto-initialize mode of a system DMA controller.
FreeCommonBuffer Releases an allocated common buffer and unmaps it, given access to the adapter object, the length, and the starting logical and virtual addresses of the region to be freed when the driver unloads. Arguments must match those passed in the call to AllocateCommonBuffer.

Buffered data and buffer initialization

The buffered-data and buffer-initialization routines are called by kernel-mode drivers to manage buffered data or initialize driver-allocated buffers.

Function Description
RtlCompareMemory Compares data, given pointers to caller-supplied buffers and the length in bytes for the comparison. Returns the number of bytes that are equal.
RtlCopyMemory Copies the data from one caller-supplied buffer to another, given pointers to both buffers and the length in bytes to be copied.
RtlMoveMemory Copies the data from one caller-supplied memory range to another, given pointers to the base of both ranges and the length in bytes to be copied.
RtlFillMemory Fills a caller-supplied buffer with the specified UCHAR value, given a pointer to the buffer and the length in bytes to be filled.
RtlZeroMemory Fills a buffer with zeros, given a pointer to the caller-supplied buffer and the length in bytes to be filled.
RtlStoreUshort Stores a USHORT value at a given address, avoiding alignment faults.
RtlRetrieveUshort Retrieves a USHORT value at a given address, avoiding alignment faults, and stores the value at a given address that is assumed to be aligned.
RtlStoreUlong Stores a ULONG value at a given address, avoiding alignment faults.
RtlRetrieveUlong Retrieves a ULONG value at a given address, avoiding alignment faults, and stores the value at a given address that is assumed to be aligned.

Address mappings and MDLs

The address-mapping and MDL-management routines are called by kernel-mode drivers to manage address mappings and memory descriptor lists (MDLs).

Function Description
IoAllocateMdl Allocates an MDL large enough to map the starting address and length supplied by the caller; optionally associates the MDL with a given IRP.
IoBuildPartialMdl Builds an MDL for the specified starting virtual address and length in bytes from a given source MDL. Drivers that split large transfer requests into a number of smaller transfers can call this routine.
IoFreeMdl Releases a given MDL allocated by the caller.
MmAllocatePagesForMdlEx Allocates nonpaged, physical memory pages for an MDL.
MmBuildMdlForNonPagedPool Fills in the corresponding physical addresses of a given MDL that specifies a range of virtual addresses in nonpaged pool.
MmCreateMdl Obsolete. Allocates and initializes an MDL describing a buffer specified by the given virtual address and length in bytes; returns a pointer to the MDL.
MmGetMdlByteCount Returns the length in bytes of the buffer mapped by a given MDL.
MmGetMdlByteOffset Returns the byte offset within a page of the buffer described by a given MDL.
MmGetMdlVirtualAddress Returns a (possibly invalid) virtual address for a buffer described by a given MDL; the returned address, used as an index to a physical address entry in the MDL, can be input to MapTransfer for drivers that use DMA.
MmGetPhysicalAddress Returns the corresponding physical address for a given valid virtual address.
MmGetSystemAddressForMdlSafe Returns a system-space virtual address that maps the physical pages described by a given MDL for drivers whose devices must use programmed I/O (PIO). If no virtual address exists, one is assigned.
MmInitializeMdl Initializes a caller-created MDL to describe a buffer specified by the given virtual address and length in bytes.
MmIsAddressValid Returns whether a page fault will occur if a read or write operation is done at the given virtual address.
MmMapIoSpace Maps a physical address range to a cached or non-cached virtual address range in nonpaged system space.
MmMapLockedPages Obsolete. Maps already locked physical pages, described by a given MDL, to a returned virtual address range.
MmMapLockedPagesWithReservedMapping Maps a virtual address range already reserved with MmAllocateMappingAddress.
MmPrepareMdlForReuse Reinitializes a caller-created MDL for reuse.
MmProbeAndLockPages Probes the pages specified in an MDL for a particular kind of access, makes the pages resident, and locks them in memory; returns the MDL updated with corresponding physical addresses. (Usually, only highest-level drivers call this routine.)
MmProtectMdlSystemAddress Sets the protection type for the memory-address range.
MmSecureVirtualMemory Secures a memory-address range so that it cannot be freed and its page protection cannot be made more restrictive.
MmSizeOfMdl Returns the number of bytes required for an MDL describing the buffer specified by the given virtual address and length in bytes.
MmUnlockPages Unlocks the previously probed and locked pages specified in an MDL.
MmUnmapIoSpace Unmaps a virtual address range from a physical address range.
MmUnmapLockedPages Releases a mapping set up by MmMapLockedPages.
MmUnmapReservedMapping Unmaps a virtual address range mapped by MmMapLockedPagesWithReservedMapping.
MmUnsecureVirtualMemory Unsecures a memory-address range secured by MmSecureVirtualMemory.

Buffer and MDL management

The buffer and MDL management macros are called by kernel-mode drivers to manage buffers and memory descriptor lists (MDLs).

For more information about MDLs, see Using MDLs.

Function Description
ADDRESS_AND_SIZE_TO_SPAN_PAGES Returns the number of pages required to contain a given virtual address and size in bytes.
BYTE_OFFSET Returns the byte offset of a given virtual address within the page.
BYTES_TO_PAGES Returns the number of pages necessary to contain a given number of bytes.
PAGE_ALIGN Returns the page-aligned virtual address for the page that contains a given virtual address.
ROUND_TO_PAGES Rounds a given size in bytes up to a page-size multiple.

Device memory access

The device-memory-access macros are called by kernel-mode drivers to access the memory-mapped hardware registers and I/O ports of their respective devices.

For the following macros, XXX_REGISTER_XXX indicates device memory that is mapped onto system memory address space, while XXX_PORT_XXX indicates device memory in I/O port address space.

Function Description
EAD_PORT_UCHAR Reads a UCHAR value from the given I/O port address.
READ_PORT_USHORT Reads a USHORT value from the given I/O port address.
READ_PORT_ULONG Reads a ULONG value from the given I/O port address.
READ_PORT_BUFFER_UCHAR Reads a given count of UCHAR values from the given I/O port into a given buffer.
READ_PORT_BUFFER_USHORT Reads a given count of USHORT values from the given I/O port into a given buffer.
READ_PORT_BUFFER_ULONG Reads a given count of ULONG values from the given I/O port into a given buffer.
WRITE_PORT_UCHAR Writes a given UCHAR value to the given I/O port address.
WRITE_PORT_USHORT Writes a given USHORT value to the given I/O port address.
WRITE_PORT_ULONG Writes a given ULONG value to the given I/O port address.
WRITE_PORT_BUFFER_UCHAR Writes a given count of UCHAR values from a given buffer to the given I/O port.
WRITE_PORT_BUFFER_USHORT Writes a given count of USHORT values from a given buffer to the given I/O port.
WRITE_PORT_BUFFER_ULONG Writes a given count of ULONG values from a given buffer to the given I/O port.
READ_REGISTER_UCHAR Reads a UCHAR value from the given register address in memory space.
READ_REGISTER_USHORT Reads a USHORT value from the given register address in memory space.
READ_REGISTER_ULONG Reads a ULONG value from the given register address in memory space.
READ_REGISTER_BUFFER_UCHAR Reads a given count of UCHAR values from the given register address into the given buffer.
READ_REGISTER_BUFFER_USHORT Reads a given count of USHORT values from the given register address into the given buffer.
READ_REGISTER_BUFFER_ULONG Reads a given count of ULONG values from the given register address into the given buffer.
WRITE_REGISTER_UCHAR Writes a given UCHAR value to the given register address in memory space.
WRITE_REGISTER_USHORT Writes a given USHORT value to the given register address in memory space.
WRITE_REGISTER_ULONG Writes a given ULONG value to the given register address in memory space.
WRITE_REGISTER_BUFFER_UCHAR Writes a given count of UCHAR values from a given buffer to the given register address.
WRITE_REGISTER_BUFFER_USHORT Writes a given count of USHORT values from a given buffer to the given register address.
WRITE_REGISTER_BUFFER_ULONG Writes a given count of ULONG values from a given buffer to the given register address.

Pageable drivers

The pageable-driver routines are called by kernel-mode drivers to lock and unlock a driver's pageable code or data sections, or make an entire driver pageable.

Function Description
MmLockPagableCodeSection Locks a set of driver routines marked with a special compiler directive into system space.
MmLockPagableDataSection Locks data marked with a special compiler directive into system space, when that data is accessed infrequently, predictably, and at an IRQL of less than DISPATCH_LEVEL.
MmLockPagableSectionByHandle Locks a pageable section into system memory using a handle returned from MmLockPagableCodeSection or MmLockPagableDataSection.
MmUnlockPagableImageSection Releases a section that was previously locked into system space when the driver is no longer processing IRPs, or when the contents of the section are no longer required.
MmPageEntireDriver Lets a driver page all of its code and data regardless of the attributes of the various sections in the driver's image.
MmResetDriverPaging Resets a driver's pageable status to that specified by the sections making up the driver's image.

Sections and views

The section- and view-management routines are called by kernel-mode drivers to set up mapped sections and views of memory.

Function Description
InitializeObjectAttributes Sets up a parameter of type OBJECT_ATTRIBUTES for a subsequent call to a ZwCreateXxx or ZwOpenXxx routine.
ZwOpenSection Obtains a handle for an existing section, provided that the requested access can be allowed.
ZwMapViewOfSection Maps a view of an open section into the virtual address space of a process. Returns an offset into the section (base of the mapped view) and the size mapped.
ZwUnmapViewOfSection Releases a mapped view in the virtual address space of a process.

Physical memory

The physical memory routines are called by kernel-mode drivers to manage regions of physical memory.

Function Description
MmAddPhysicalMemory Adds the specified physical address range to the system.

Access to structures

The structure-access macros are called by kernel-mode drivers to access parts of structures.

Function Description
ARGUMENT_PRESENT Returns FALSE if an argument pointer is NULL; otherwise returns TRUE.
CONTAINING_RECORD Returns the base address of an instance of a structure given the structure type and the address of a field within it.
FIELD_OFFSET Returns the byte offset of a named field in a known structure type.

Plug and Play routines

These routines are used by drivers to implement Plug and Play (PnP) support. For background and task-oriented information about supporting PnP in drivers, see Plug and Play.

The following topics summarize the routines by functionality:

Device information routines

Function Description
oGetDeviceProperty Retrieves information about a device such as configuration information and the name of its PDO.
IoInvalidateDeviceRelations Notifies the PnP manager that the relations for a device have changed.
IoInvalidateDeviceState Notifies the PnP manager that the PnP state of a device has changed. In response, the PnP manager sends an IRP_MN_QUERY_PNP_DEVICE_STATE to the device stack.
IoReportDetectedDevice Reports a non-PnP device to the PnP manager.
IoReportResourceForDetection Claims hardware resources in the configuration registry for a legacy device. This routine is for drivers that detect legacy hardware that cannot be enumerated by PnP.

Registry routines

Function Description
IoOpenDeviceInterfaceRegistryKey Returns a handle to a registry key for storing information about a particular device interface.
IoOpenDeviceRegistryKey Returns a handle to a device-specific or a driver-specific registry key for a particular device instance.

Device interface routines

Function Description
IoRegisterDeviceInterface Registers device functionality (a device interface) that a driver will enable for use by applications or other system components.
IoSetDeviceInterfaceState Enables or disables a previously registered device interface. Applications and other system components can open only interfaces that are enabled.
IoOpenDeviceInterfaceRegistryKey Returns a handle to a registry key for storing information about a particular device interface.
IoGetDeviceInterfaces Returns a list of device interfaces of a particular device interface class (such as all devices on the system that support a HID interface).
IoGetDeviceInterfaceAlias Returns the alias device interface of the specified interface class, if the alias exists. Device interfaces are considered aliases if they are exposed by the same underlying device and have identical interface reference strings, but are of different interface classes.

PnP notification routines

Function Description
IoRegisterPlugPlayNotification Registers a driver callback routine to be called when the specified PnP event occurs.
IoReportTargetDeviceChange Notifies the PnP manager that a custom event has occurred on a device. The PnP manager sends notification of the event to drivers that registered for it. Do not use this routine to report system PnP events, such as GUID_TARGET_DEVICE_REMOVE_COMPLETE.
IoReportTargetDeviceChangeAsynchronous Notifies the PnP manager that a custom event has occurred on a device. Returns immediately and does not wait while the PnP manager sends notification of the event to drivers that registered for it. Do not use this routine to report system PnP events, such as GUID_TARGET_DEVICE_REMOVE_COMPLETE.
IoUnregisterPlugPlayNotification Removes the registration of a driver's callback routine for a PnP event.

Remove lock routines

Function Description
IoInitializeRemoveLock Initializes a remove lock for a device object. A driver can use the lock to track outstanding I/O on a device and to determine when the driver can delete its device object in response to an IRP_MN_REMOVE_DEVICE request.
IoAcquireRemoveLock Increments the count for a remove lock, indicating that the associated device object should not be detached from the device stack nor deleted.
IoReleaseRemoveLock Releases a remove lock acquired with a previous call to IoAcquireRemoveLock.
IoReleaseRemoveLockAndWait Releases a remove lock acquired with a previous call to IoAcquireRemoveLock and waits until all acquisitions of the lock have been released. A driver typically calls this routine in its dispatch code for an IRP_MN_REMOVE_DEVICE request.

Other PnP routines

Function Description
IoAdjustPagingPathCount Increments or decrements a caller-supplied page-file counter as an atomic operation. This routine can be used to adjust other counters, such as counters for hibernation files or crash-dump files.
IoRequestDeviceEject Notifies the PnP manager that the device eject button was pressed. Note that this routine reports a request for a device eject, not media eject.

Windows Management Instrumentation (WMI) routines

This section summarizes kernel-mode support routines that drivers can use to interact with Windows Management Instrumentation (WMI).

The categories of support routines include those that drivers can call to:

Process IRPs that a driver receives (WMI IRP processing routines)

Function Description
WmiCompleteRequest If a driver uses WmiSystemControl to dispatch the WMI IRP to a callback routine, then the callback routine can use WmiCompleteRequest to complete the IRP.
WmiSystemControl Dispatches a WMI IRP to a driver-supplied callback routine.
WmiFireEvent The WmiFireEvent routine sends an event to WMI for delivery to data consumers that have requested notification of the event.
WmiQueryTraceInformation The WmiQueryTraceInformation routine returns information about a WMI event trace.
WmiSystemControl The WmiSystemControl routine is a dispatch routine for drivers that use WMI library support routines to handle WMI IRPs.
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.

Drivers can use these routines in processing WMI IRPs

Function Description
WmiCompleteRequest If a driver uses WmiSystemControl to dispatch the WMI IRP to a callback routine, then the callback routine can use WmiCompleteRequest to complete the IRP.
WmiSystemControl Dispatches a WMI IRP to a driver-supplied callback routine.

Drivers use these routines to send WMI IRPs

Function Description
IoWMIAllocateInstanceIds Allocates unused WMI instance IDs for a given WMI class GUID.
IoWMIDeviceObjectToInstanceName Given a device object, determines the WMI class instance name supported by the corresponding driver. Callers can use this to determine the instance names supported by a particular driver.
IoWMIExecuteMethod Executes the specified WMI class method.
IoWMIHandleToInstanceName Given a file handle, determines the WMI class instance name supported by the corresponding driver. Callers can use this to determine the instance names supported by a particular driver.
IoWMIOpenBlock Opens a WMI data block. Callers use this to submit WMI I/O requests.
IoWMIQueryAllData Fetches the property values for every instance of the specified WMI class GUID.
IoWMIQueryAllDataMultiple Fetches the property values for every instance of the specified set of WMI class GUIDs.
IoWMIQuerySingleInstance Fetches the property values for a particular instance of the specified WMI class GUID.
IoWMIQuerySingleInstanceMultiple Fetches the property values for a particular set of WMI class instances.
IoWMISetNotificationCallback Sets a notification callback for WMI events.
IoWMISetSingleInstance Sets the property values for a particular WMI class instance.
IoWMISetSingleItem Sets the specified property for a particular WMI class instance.

This section describes required and optional routines that a kernel-mode WDM driver contains, if the driver handles WMI Minor IRPs by calling WmiSystemControl. For more information, see Calling WmiSystemControl to Handle WMI IRPs.

The DpWmiXxx names that are used in the Microsoft Windows Driver Kit (WDK) documentation are placeholders. A driver's DpWmiXxx routines can have any names that the driver writer chooses.

ZwXxx / NtXxx routines

The ZwXxx routines provide a set of system entry points that parallel some of the executive's system services. Calling a ZwXxx routine from kernel-mode code results in a call to the corresponding system service. Calling a ZwXxx routine from user mode is not supported; instead, native applications (applications that bypass the Microsoft Win32 subsystem) should call the NtXxx equivalent of the ZwXxx routine.

For a list of NtXxx routines, see NtXxx Routines.

For a call to a ZwXxx routine from a kernel-mode driver, the system does not check the caller's access rights, nor does it set the previous processor mode to UserMode. Before calling a ZwXxx routine, a kernel-mode driver must check all user-supplied parameters for validity.

For more information about the relationship between NtXxx and ZwXxx routines, see Using Nt and Zw Versions of the Native System Services Routines. For a list of the ZwXxx routines in each major functional category, see Summary of Kernel-Mode Support Routines.

The following routines are reserved for system use. Do not use them in your driver.

Routine Replacement
ZwCancelTimer Use KeCancelTimer instead.
ZwCreateTimer Use KeInitializeTimer or KeInitializeTimerEx instead.
ZwOpenTimer
ZwSetTimer Use KeSetTimer instead.
NtRenameTransactionManager Obsolete.

NtRenameTransactionManager and TmRenameTransactionManager are two versions of the same routine. Kernel-mode drivers should not call NtRenameTransactionManager. They should instead call TmRenameTransactionManager.

Function Description
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.
NtSetInformationTransactionManager Do not call this routine from kernel-mode code.
ZwAllocateLocallyUniqueId The ZwAllocateLocallyUniqueId routine allocates a locally unique identifier (LUID).
ZwAllocateVirtualMemory The ZwAllocateVirtualMemory routine reserves, commits, or both, a region of pages within the user-mode virtual address space of a specified process.
ZwClose The ZwClose routine closes an object handle.
ZwCreateDirectoryObject The ZwCreateDirectoryObject routine creates or opens an object-directory object.
ZwCreateEvent The ZwCreateEvent routine creates an event object, sets the initial state of the event to the specified value, and opens a handle to the object with the specified desired access.
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.
ZwCreateSection The ZwCreateSection routine creates a section object.
ZwDeleteFile The ZwDeleteFile routine deletes the specified file.
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.
ZwDeviceIoControlFile The ZwDeviceIoControlFile routine sends a control code directly to a specified device driver, causing the corresponding driver to perform the specified operation.
ZwDuplicateToken The ZwDuplicateToken function creates a handle to a new access token that duplicates an existing token. This function can create either a primary token or an impersonation token.
ZwEnumerateKey The ZwEnumerateKey routine returns information about a subkey of an open registry key.
ZwEnumerateValueKey The ZwEnumerateValueKey routine gets information about the value entries of an open key.
ZwFlushBuffersFile The ZwFlushBuffersFile routine is called by a file system filter driver to send a flush request for the specified file to the file system.
ZwFlushBuffersFileEx The ZwFlushBuffersFileEx routine is called by a file system filter driver to send a flush request for a given file to the file system. An optional flush operation flag can be set to control how file data is written to storage.
ZwFlushKey The ZwFlushKey routine forces a registry key to be committed to disk.
ZwFlushVirtualMemory The ZwFlushVirtualMemory routine flushes a range of virtual addresses within the virtual address space of a specified process which map to a data file back out to the data file if they have been modified.
ZwFreeVirtualMemory The ZwFreeVirtualMemory routine releases, decommits, or both, a region of pages within the virtual address space of a specified process.
ZwFsControlFile The ZwFsControlFile routine sends a control code directly to a specified file system or file system filter driver, causing the corresponding driver to perform the specified action.
ZwLoadDriver The ZwLoadDriver routine loads a driver into the system.
ZwLockFile The ZwLockFile routine requests a byte-range lock for the specified file.
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.
ZwNotifyChangeKey The ZwNotifyChangeKey routine allows a driver to request notification when a registry key changes.
ZwOpenEvent The ZwOpenEvent routine opens a handle to an existing named event object with the specified desired access.
ZwOpenFile The ZwOpenFile routine opens an existing file, directory, device, or volume.
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.
ZwOpenProcess The ZwOpenProcess routine opens a handle to a process object and sets the access rights to this object.
ZwOpenProcessTokenEx The ZwOpenProcessTokenEx routine opens the access token associated with a process.
ZwOpenSection The ZwOpenSection routine opens a handle for an existing section object.
ZwOpenSymbolicLinkObject The ZwOpenSymbolicLinkObject routine opens an existing symbolic link.
ZwOpenThreadTokenEx The ZwOpenThreadTokenEx routine opens the access token associated with a thread.
ZwPowerInformation The ZwPowerInformation routine sets or retrieves system power information.
ZwQueryInformationThread The ZwQueryInformationThread routine retrieves information about the specified thread, such as its page priority.
ZwQueryDirectoryFile The ZwQueryDirectoryFile routine returns various kinds of information about files in the directory specified by a given file handle.
ZwQueryEaFile The ZwQueryEaFile routine returns information about extended-attribute (EA) values for a file.
ZwQueryFullAttributesFile The ZwQueryFullAttributesFile routine supplies network open information for the specified file.
ZwQueryInformationFile The ZwQueryInformationFile routine returns various kinds of information about a file object.
ZwQueryInformationToken The ZwQueryInformationToken routine retrieves a specified type of information about an access token. The calling process must have appropriate access rights to obtain the information.
ZwQueryKey The ZwQueryKey routine provides information about the class of a registry key, and the number and sizes of its subkeys.
ZwQueryObject The ZwQueryObject routine provides information about a supplied object.
ZwQueryQuotaInformationFile The ZwQueryQuotaInformationFile routine retrieves quota entries associated with the volume specified by the FileHandle parameter.
ZwQuerySecurityObject The ZwQuerySecurityObject routine retrieves a copy of an object's security descriptor.
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.
ZwQueryVirtualMemory The ZwQueryVirtualMemory routine determines the state, protection, and type of a region of pages within the virtual address space of the subject process.
ZwQueryVolumeInformationFile The ZwQueryVolumeInformationFile routine retrieves information about the volume associated with a given file, directory, storage device, or volume.
ZwReadFile The ZwReadFile routine reads data from an open file.
ZwSetEaFile The ZwSetEaFile routine sets extended-attribute (EA) values for a file.
ZwSetEvent The ZwSetEvent routine sets an event object to a Signaled state and attempts to satisfy as many waits as possible.
ZwSetInformationFile The ZwSetInformationFile routine changes various kinds of information about a file object.
ZwSetInformationThread The ZwSetInformationThread routine sets the priority of a thread.
ZwSetInformationToken The ZwSetInformationToken routine modifies information in a specified token. The calling process must have appropriate access rights to set the information.
ZwSetInformationVirtualMemory The ZwSetInformationVirtualMemory routine performs an operation on a specified list of address ranges in the user address space of a process.
ZwSetQuotaInformationFile The ZwSetQuotaInformationFile routine changes quota entries for the volume associated with the FileHandle parameter. All of the quota entries in the specified buffer are applied to the volume.
ZwSetSecurityObject The ZwSetSecurityObject routine sets an object's security state.
ZwSetValueKey The ZwSetValueKey routine creates or replaces a registry key's value entry.
ZwSetVolumeInformationFile The ZwSetVolumeInformationFile routine modifies information about the volume associated with a given file, directory, storage device, or volume.
ZwTerminateProcess The ZwTerminateProcess routine terminates a process and all of its threads.
ZwUnloadDriver The ZwUnloadDriver routine unloads a driver from the system. Use this routine with extreme caution. (See the following Remarks section.)
ZwUnlockFile The ZwUnlockFile routine unlocks a byte-range lock in a file.
ZwUnmapViewOfSection The ZwUnmapViewOfSection routine unmaps a view of a section from the virtual address space of a subject process.
ZwWaitForSingleObject The ZwWaitForSingleObject routine waits until the specified object attains a state of Signaled. An optional time-out can also be specified.
ZwWriteFile The ZwWriteFile routine writes data to an open file.

Auxiliary kernel-mode library routines and structures

The Auxiliary Kernel-Mode Library enables drivers to access some system capabilities that are not available from kernel-mode subsystems.

The AuxKlibInitialize routine initializes the Auxiliary Kernel-Mode Library. Drivers that use this library must call AuxKlibInitialize before calling any of the library's other routines.

  • AuxKlibEnumerateSystemFirmwareTables
  • AuxKlibGetBugCheckData
  • AuxKlibGetImageExportDirectory
  • AuxKlibGetSystemFirmwareTable
  • AuxKlibInitialize
  • AuxKlibQueryModuleInformation
  • AUX_MODULE_BASIC_INFO
  • AUX_MODULE_EXTENDED_INFO
  • KBUGCHECK_DATA

Processor group compatibility library

Support is available for kernel-mode drivers that use processor groups. The Processor Group (ProcGrp) compatibility library enables a kernel-mode driver that is written to use processor groups run on earlier versions of Windows, which do not support processor groups. When this driver runs on, it can take advantage of multiple processor groups, if the hardware platform supports them. When this same driver runs on an earlier version of Windows, it is limited to a single processor group, regardless of the capabilities of the hardware platform. To use the ProcGrp library, the driver must call a library initialization routine. Additionally, the driver must be compiled for the Windows 7 environment in the WDK, and must be linked with Procgrp.lib.

The ProcGrp library is designed to meet the compatibility requirements of drivers that call the following KeXxx routines but must also run on versions of Windows that do not implement these routines:

  • KeGetCurrentProcessorNumberEx
  • KeGetProcessorIndexFromNumber
  • KeGetProcessorNumberFromIndex
  • KeQueryActiveGroupCount
  • KeQueryActiveProcessorCountEx
  • KeQueryGroupAffinity
  • KeQueryMaximumProcessorCount
  • KeQueryMaximumProcessorCountEx
  • KeQueryMaximumGroupCount
  • KeSetSystemAffinityThreadEx
  • KeSetSystemGroupAffinityThread
  • KeRevertToUserAffinityThreadEx
  • KeRevertToUserGroupAffinityThread
  • KeSetTargetProcessorDpcEx

The ProcGrp library implements wrapper functions for the KeXxx routines in the preceding list. If the library runs on Windows 7 or Windows Server 2008 R2, the wrapper functions simply call the corresponding KeXxx routines. The wrapper functions have the same names as these KeXxx routines, and their behavior is identical to that of the KeXxx routines that they replace.

Earlier versions of Windows do not support processor groups and do not implement the KeXxx routines in the preceding list. If the ProcGrp library is linked to a driver that runs on one of these earlier versions of Windows, the library initialization function, WdmlibProcgrpInitialize, detects that the operating system does not support processor groups. To deal with this case, each wrapper function contains a simplified implementation of the corresponding KeXxx routine. This implementation supports only one processor group, group number 0. For example, the wrapper function for the KeQueryMaximumGroupCount routine always returns a count of one. For another example, the wrapper function for the KeGetCurrentProcessorNumberEx routine emulates this routine by calling the KeGetCurrentProcessorNumber routine. KeGetCurrentProcessorNumber is similar to KeGetCurrentProcessorNumberEx, but lacks support for processor groups, which, in this case, has the same effect as supporting just one processor group.

For more information about the support for processor groups in Windows 7, see the Supporting Systems That Have More Than 64 Processors white paper on the WHDC website.

The ProcGrp library is contained in the Windows 7 version of the WDK. The library functions are declared in the Procgrp.h header file and are implemented in the Procgrp.lib library file.

In addition to the KeXxx wrapper functions, the ProcGrp library implements the following function to initialize the library:

  • WdmlibProcgrpInitialize

DMA library routines

Drivers use the routines documented in this section to perform direct memory access (DMA) operations. The routines are accessed through pointers and cannot be called directly by name.

Drivers performing DMA operations use IoGetDmaAdapter to get a pointer to the DMA_ADAPTER structure for the device. The DmaOperations member of the structure points to a DMA_OPERATIONS structure, which is a table of pointers to the DMA routines for the physical device object of that device.

Function Description
IoGetDmaAdapter Returns a pointer to an adapter object that represents either the DMA channel to which the driver's device is connected or the driver's bus-master adapter. Also returns the maximum number of map registers the driver can specify for each DMA transfer.
MmGetMdlVirtualAddress Returns the base virtual address of a buffer described by a given MDL. The returned address, used as an index to a physical address entry in the MDL, can be input to MapTransfer.
MmGetSystemAddressForMdlSafe Returns a nonpaged system-space virtual address for the base of the memory area described by an MDL. It maps the physical pages described by the MDL into system space, if they are not already mapped to system space.
ADDRESS_AND_SIZE_TO_SPAN_PAGES Returns the number of pages spanned by the virtual range defined by a virtual address and a length in bytes. A driver can use this macro to determine whether a transfer request must be split into partial transfers.
AllocateAdapterChannel Reserves exclusive access to a DMA channel and map registers for a device. When the channel and registers are available, this routine calls a driver-supplied AdapterControl routine to carry out an I/O operation through either the system DMA controller or a bus-master adapter.
AllocateCommonBuffer Allocates and maps a logically contiguous region of memory that is simultaneously accessible from both the processor and a device. This routine returns TRUE if the requested length was allocated.
BuildMdlFromScatterGatherList Builds an MDL corresponding to a scatter/gather list.
BuildScatterGatherList Prepares the system for scatter/gather DMA for a device and calls a driver-supplied routine to carry out the I/O operation. This function provides the same functionality as GetScatterGatherList, except it uses a driver-supplied buffer to hold the scatter/gather list.
CalculateScatterGatherList Computes the buffer size needed to hold a scatter/gather list for a memory buffer.
FlushAdapterBuffers Forces any data remaining in either a bus-master adapter's or the system DMA controller's internal buffers to be written into memory or to the device.
FreeAdapterChannel Releases an adapter object that represents a system DMA channel, and optionally releases any allocated map registers.
FreeCommonBuffer Releases and unmaps a previously allocated common buffer. Arguments must match those passed in an earlier call to AllocateCommonBuffer.
FreeMapRegisters Releases a set of map registers that were saved from a call to AllocateAdapterChannel. A driver calls this routine after using the registers in one or more calls to MapTransfer, flushing the cache by calling FlushAdapterBuffers, and completing the bus-master DMA transfer.
GetDmaAlignment Returns the buffer alignment requirements for a DMA controller or device.
GetScatterGatherList Prepares the system for scatter/gather DMA for a device and calls a driver-supplied routine to carry out the I/O operation. For devices that support scatter/gather DMA, this routine combines the functionality of AllocateAdapterChannel and MapTransfer.
KeFlushIoBuffers Flushes the memory region described by an MDL from all processors' caches into memory.
MapTransfer Sets up map registers for an adapter object previously allocated by AllocateAdapterChannel to map a transfer from a locked-down buffer. Returns the logical address of the mapped region and, for bus-master devices that support scatter/gather, the number of bytes mapped.
PutDmaAdapter Frees an adapter object previously allocated by IoGetDmaAdapter.
PutScatterGatherList Frees map registers and scatter/gather list previously allocated by GetScatterGatherList.
ReadDmaCounter Returns the number of bytes yet to be transferred during the current system DMA operation (in auto-initialize mode).

PIO

Function Description
MmProbeAndLockPages Probes the pages specified in an MDL for a particular kind of access, makes the pages resident, and locks them in memory; returns the MDL updated with corresponding physical addresses.
MmGetSystemAddressForMdlSafe Returns a system-space virtual address that maps the physical pages described by a given MDL for drivers whose devices must use PIO. If no virtual address exists, one is assigned.
KeFlushIoBuffers Flushes the memory region described by a given MDL from all processors' caches into memory.
MmUnlockPages Unlocks the previously probed and locked pages specified in an MDL.
MmMapIoSpace Maps a physical address range to a cached or non-cached virtual address range in nonpaged system space.
MmUnmapIoSpace Unmaps a virtual address range from a physical address range.

Interrupts

Function Description
IoConnectInterrupt Registers a driver's interrupt handling routine. Drivers should use IoConnectInterruptEx instead.
IoDisconnectInterrupt Unregisters an interrupt handling routine that IoConnectInterrupt registered.
IoConnectInterruptEx Registers a driver's interrupt handling routine. Drivers can register either an InterruptService routine for line-based interrupts or an InterruptMessageService routine for message-signaled interrupts.
IoDisconnectInterruptEx Unregisters an interrupt-handling routine that IoConnectInterruptEx registered.
IoInitializeDpcRequest Associates a driver-supplied DpcForIsr routine with a given device object, so that the DpcForIsr routine can complete interrupt-driven I/O operations.
KeSynchronizeExecution Synchronizes the execution of a driver-supplied SynchCritSection routine with that of the ISR associated with a set of interrupt objects, given a pointer to the interrupt objects.
KeAcquireInterruptSpinLock Acquires the spin lock that synchronizes access with an interrupt's ISR.
KeReleaseInterruptSpinLock Releases the spin lock that synchronized access with an interrupt's ISR.
KeRegisterNmiCallback Registers a routine to be called whenever a nonmaskable interrupt (NMI) occurs.
KeDeregisterNmiCallback Deregisters a routine registered by KeRegisterNmiCallback.

Driver-managed queues

Function Description
KeInitializeSpinLock Initializes a variable of type KSPIN_LOCK. An initialized spin lock is a required parameter to the ExInterlockedXxxList routines.
InitializeListHead Sets up a queue header for a driver's internal queue, given a pointer to driver-supplied storage for the queue header and queue. An initialized queue header is a required parameter to the ExInterlockedInsert/RemoveXxxList routines.
ExInterlockedInsertTailList Inserts an entry at the tail of a doubly linked list, using a spin lock to ensure multiprocessor-safe access to the list and atomic modification of the list links.
ExInterlockedInsertHeadList Inserts an entry at the head of a doubly linked list, using a spin lock to ensure multiprocessor-safe access to the list and atomic modification of the links in the list.
ExInterlockedRemoveHeadList Removes an entry from the head of a doubly linked list, using a spin lock to ensure multiprocessor-safe access to the list and atomic modification of the links in the list.
ExInterlockedPopEntryList Removes an entry from the head of a singly linked list as an atomic operation, using a spin lock to ensure multiprocessor-safe access to the list.
ExInterlockedPushEntryList Inserts an entry at the head of a singly linked list as an atomic operation, using a spin lock to ensure multiprocessor-safe access to the list.
IsListEmpty Returns TRUE if a queue is empty. (This type of doubly linked list is not protected by a spin lock, unless the caller explicitly manages synchronization to queued entries with an initialized spin lock for which the caller supplies the storage.)
InsertTailList Queues an entry at the end of the list.
InsertHeadList Queues an entry at the head of the list.
RemoveHeadList Dequeues an entry at the head of the list.
RemoveTailList Dequeues an entry at the end of the list.
RemoveEntryList Returns whether a given entry is in the given list and dequeues the entry if it is.
PushEntryList Inserts an entry into the queue. (This type of singly linked list is not protected by a spin lock, unless the caller explicitly manages synchronization to queued entries with an initialized spin lock for which the caller supplies the storage.)
PopEntryList Removes an entry from the queue.
ExInterlockedPopEntrySList Removes an entry from the head of a sequenced, singly linked list that was set up with ExInitializeSListHead.
ExInterlockedPushEntrySList Queues an entry at the head of a sequenced, singly linked list that was set up with ExInitializeSListHead.
ExQueryDepthSList Returns the number of entries currently queued in a sequenced, singly linked list.
ExInitializeNPagedLookasideList Sets up a lookaside list, protected by a system-supplied spin lock, in nonpaged pool from which the driver can allocate and free blocks of a fixed size.
KeInitializeDeviceQueue Initializes a device queue object to a not-busy state, setting up an associated spin lock for multiprocessor-safe access to device queue entries.
KeInsertDeviceQueue Acquires the device queue spin lock and queues an entry to a device driver if the device queue is not empty; otherwise, inserts the entry at the tail of the device queue.
KeInsertByKeyDeviceQueue Acquires the device queue spin lock and queues an entry to a device driver if the device queue is not empty; otherwise, inserts the entry into the queue according to the given sort-key value.
KeRemoveDeviceQueue Removes an entry from the head of a given device queue.
KeRemoveByKeyDeviceQueue Removes an entry, selected according to the specified sort-key value, from the given device queue.
KeRemoveEntryDeviceQueue Determines whether a given entry is in the given device queue and, if so, dequeues the entry.

Driver system processes and threads

Function Description
PsCreateSystemThread Creates a kernel-mode thread associated with a given process object or with the default system process. Returns a handle for the thread.
PsTerminateSystemThread Terminates the current thread and satisfies as many waits as possible for the current thread object.
PsGetCurrentThread Returns a handle for the current thread.
KeGetCurrentThread Returns a pointer to the opaque thread object that represents the current thread.
KeQueryPriorityThread Returns the current priority of a given thread.
KeSetBasePriorityThread Sets up the run-time priority, relative to the system process, for a driver-created thread.
KeSetPriorityThread Sets up the run-time priority for a driver-created thread with a real-time priority attribute.
KeDelayExecutionThread Puts the current thread into an alertable or nonalertable wait state for a given interval.
IoQueueWorkItem Queues an initialized work queue item so the driver-supplied routine will be called when a system worker thread is given control.
ZwSetInformationThread Sets the priority of a given thread for which the caller has a handle.
Function Description
PsGetCurrentProcessId The PsGetCurrentProcessId routine identifies the current thread's process.
PsGetProcessCreateTimeQuadPart The PsGetProcessCreateTimeQuadPart routine returns a LONGLONG value that represents the time at which the process was created.
PsGetProcessId The PsGetProcessId routine returns the process identifier (process ID) that is associated with a specified process.
PsQueryTotalCycleTimeProcess The PsQueryTotalCycleTimeProcess routine returns the accumulated cycle time for the specified process.
PCREATE_PROCESS_NOTIFY_ROUTINE Process-creation callback implemented by a driver to track the system-wide creation and deletion of processes against the driver's internal state.
PsSetCreateProcessNotifyRoutine The PsSetCreateProcessNotifyRoutine routine adds a driver-supplied callback routine to, or removes it from, a list of routines to be called whenever a process is created or deleted.
PCREATE_PROCESS_NOTIFY_ROUTINE_EX A callback routine implemented by a driver to notify the caller when a process is created or exits.
PsSetCreateProcessNotifyRoutineEx The PsSetCreateProcessNotifyRoutineEx routine registers or removes a callback routine that notifies the caller when a process is created or exits.
PsSetCreateProcessNotifyRoutineEx2 The PsSetCreateProcessNotifyRoutineEx2 routine registers or removes a callback routine that notifies the caller when a process is created or deleted.
Function Description
PLOAD_IMAGE_NOTIFY_ROUTINE Called by the operating system to notify the driver when a driver image or a user image (for example, a DLL or EXE) is mapped into virtual memory.
PsSetLoadImageNotifyRoutine The PsSetLoadImageNotifyRoutine routine registers a driver-supplied callback that is subsequently notified whenever an image is loaded (or mapped into memory).
PsSetLoadImageNotifyRoutineEx The PsSetLoadImageNotifyRoutineEx routine registers a driver-supplied callback that is subsequently notified whenever an image is loaded (or mapped into memory).
PsTerminateSystemThread The PsTerminateSystemThread routine terminates the current system thread.

This set of guidelines applies to these callback routines:

  • PCREATE_PROCESS_NOTIFY_ROUTINE
  • PCREATE_PROCESS_NOTIFY_ROUTINE_EX
  • PCREATE_THREAD_NOTIFY_ROUTINE
  • PLOAD_IMAGE_NOTIFY_ROUTINE

Keep notify routines short and simple.

  • Do not make calls into a user mode service to validate the process, thread, or image.

  • Do not make registry calls.

  • Do not make blocking and/or Interprocess Communication (IPC) function calls.

  • Do not synchronize with other threads because it can lead to re-entrancy deadlocks.

  • Use System Worker Threads to queue work especially work involving:

    • Slow API's or API's that call into other process.

    • Any blocking behavior which could interrupt threads in core services.

  • Be considerate of best practices for kernel mode stack usage. For examples, see How do I keep my driver from running out of kernel-mode stack? and Key Driver Concepts and Tips.

Run-time library (RTL) routines

For information about functions that copy, concatenate, and format strings in a manner that prevents buffer overrun errors, see Safe String Functions, below. Other string manipulation functions include the following:

Function Description
RtlInitString Initializes the specified string in a buffer.
RtlInitAnsiString Initializes the specified ANSI string in a buffer.
RtlInitUnicodeString Initializes the specified Unicode string in a buffer.
RtlAnsiStringToUnicodeSize Returns the size in bytes required to hold a Unicode version of a given buffered ANSI string.
RtlAnsiStringToUnicodeString Converts a buffered ANSI string to a Unicode string, given a pointer to the source-string buffer and the address of caller-supplied storage for a pointer to the destination buffer. (This routine allocates a destination buffer if the caller does not supply the storage.) You can also use the string manipulation routines provided by a compiler to convert ANSI strings to Unicode.
RtlFreeUnicodeString Releases a buffer containing a Unicode string, given a pointer to the buffer returned by RtlAnsiStringToUnicodeString.
RtlUnicodeStringToAnsiString Converts a buffered Unicode string to an ANSI string, given a pointer to the source-string buffer and the address of caller-supplied storage for a pointer to the destination buffer. (This routine allocates a destination buffer if the caller does not supply the storage.)
RtlFreeAnsiString Releases a buffer containing an ANSI string, given a pointer to the buffer returned by RtlUnicodeStringToAnsiString.
RtlAppendUnicodeStringToString Concatenates a copy of a buffered Unicode string with a buffered Unicode string, given pointers to both buffers.
RtlAppendUnicodeToString Concatenates a given input string with a buffered Unicode string, given a pointer to the buffer.
RtlCopyString Copies the source string to the destination, given pointers to both buffers, or sets the length of the destination string (but not the length of the destination buffer) to zero if the optional pointer to the source-string buffer is NULL.
RtlCopyUnicodeString Copies the source string to the destination, given pointers to both buffers, or sets the length of the destination string (but not the length of the destination buffer) to zero if the optional pointer to the source-string buffer is NULL.
RtlEqualString Returns TRUE if the given ANSI alphabetic strings are equivalent.
RtlEqualUnicodeString Returns TRUE if the given buffered strings are equivalent.
RtlCompareString Compares two buffered, single-byte character strings and returns a signed value indicating whether they are equivalent or which is greater.
RtlCompareUnicodeString Compares two buffered Unicode strings and returns a signed value indicating whether they are equivalent or which is greater.
RtlUpperString Converts a copy of a buffered string to uppercase and stores the copy in a destination buffer.
RtlUpcaseUnicodeString Converts a copy of a buffered Unicode string to uppercase and stores the copy in a destination buffer.
RtlIntegerToUnicodeString Converts an unsigned integer value in the specified base to one or more Unicode characters in a buffer.
RtlUnicodeStringToInteger RtlUnicodeStringToInteger converts the Unicode string representation of an integer into its integer equivalent.

The following routines are reserved for system use. Do not use them in your driver.

Routine Replacement
RtlAssert Use ASSERT instead.
RtlGetCallersAddress Use the intrinsic _ReturnAddress instead.
RtlInterlockedAndBits Use InterlockedAnd instead.
RtlInterlockedAndBitsDiscardReturn Use InterlockedAnd instead.
RtlInterlockedClearBits Use InterlockedAnd instead.
RtlInterlockedClearBitsDiscardReturn Use InterlockedAnd instead.
RtlInterlockedSetBits Use InterlockedOr instead.
RtlInterlockedSetBitsDiscardReturn Use InterlockedOr instead.
RtlInterlockedSetClearBits
RtlInterlockedXorBits Use InterlockedXor instead
RtlWalkFrameChain

Safe string functions for Unicode and ANSI characters

Use the functions in this section to manipulate Unicode and ANSI strings in kernel-mode drivers.

Each function is available in two versions:

  • A W-suffixed version that supports two-byte Unicode characters.

  • An A-suffixed version that supports one-byte ANSI characters.

If you use the safe string functions instead of the string manipulation functions that are provided by C-language run-time libraries, you protect your code from buffer overrun errors that can make code untrustworthy. For more information, see Using Safe String Functions.

Function Description
RtlStringCbCatW The RtlStringCbCatW and RtlStringCbCatA functions concatenate two byte-counted strings.
RtlStringCbCatExW The RtlStringCbCatExW and RtlStringCbCatExA functions concatenate two byte-counted strings.
RtlStringCbCatNW The RtlStringCbCatNW and RtlStringCbCatNA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNExW The RtlStringCbCatNExW and RtlStringCbCatNExA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCopyW The RtlStringCbCopyW and RtlStringCbCopyA functions copy a byte-counted string into a buffer.
RtlStringCbCopyExW The RtlStringCbCopyExW and RtlStringCbCopyExA functions copy a byte-counted string into a buffer.
RtlStringCbCopyNW The RtlStringCbCopyNW and RtlStringCbCopyNA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNExW The RtlStringCbCopyNExW and RtlStringCbCopyNExA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbLengthW The RtlStringCbLengthW and RtlStringCbLengthA functions determine the length, in bytes, of a supplied string.
RtlStringCbPrintfW The RtlStringCbPrintfW and RtlStringCbPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfExW The RtlStringCbPrintfExW and RtlStringCbPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfW The RtlStringCbVPrintfW and RtlStringCbVPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfExW The RtlStringCbVPrintfExW and RtlStringCbVPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchCatW The RtlStringCchCatW and RtlStringCchCatA functions concatenate two character-counted strings.
RtlStringCchCatExW The RtlStringCchCatExW and RtlStringCchCatExA functions concatenate two character-counted strings.
RtlStringCchCatNW The RtlStringCchCatNW and RtlStringCchCatNA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNExW The RtlStringCchCatNExW and RtlStringCchCatNExA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCopyW The RtlStringCchCopyW and RtlStringCchCopyA functions copy a null-terminated source string into a destination buffer of specified length.
RtlStringCchCopyExW The RtlStringCchCopyExW and RtlStringCchCopyExA functions copy a character-counted string into a buffer.
RtlStringCchCopyNW The RtlStringCchCopyNW and RtlStringCchCopyNA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNExW The RtlStringCchCopyNExW and RtlStringCchCopyNExA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchLengthW The RtlStringCchLengthW and RtlStringCchLengthA functions determine the length, in characters, of a supplied string.
RtlStringCchPrintfW The RtlStringCchPrintfW and RtlStringCchPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfExW The RtlStringCchPrintfExW and RtlStringCchPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfW The RtlStringCchVPrintfW and RtlStringCchVPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfExW The RtlStringCchVPrintfExW and RtlStringCchVPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlUnalignedStringCbLength The RtlUnalignedStringCbLengthW function is a version of the RtlStringCbLength function that accepts an unaligned pointer to a string of Unicode characters.
RtlUnalignedStringCchLengthW The RtlUnalignedStringCchLengthW function is a version of the RtlStringCchLength function that accepts an unaligned pointer to a string of Unicode characters.

Safe string functions for UNICODE_STRING structures

Use the functions in this section to manipulate strings within UNICODE_STRING structures in kernel-mode drivers.

If you use the safe string functions instead of the string manipulation functions that C-language run-time libraries provide, you protect your code from buffer overrun errors that can make code untrustworthy. For more information about safe string functions, see Using Safe String Functions.

Function Description
RtlStringCbCopyUnicodeString The RtlStringCbCopyUnicodeString function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCbCopyUnicodeStringEx The RtlStringCbCopyUnicodeStringEx function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCchCopyUnicodeString The RtlStringCchCopyUnicodeString function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCchCopyUnicodeStringEx The RtlStringCchCopyUnicodeStringEx function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlUnicodeStringCat The RtlUnicodeStringCat function concatenates two strings that are contained in UNICODE_STRING structures.
RtlUnicodeStringCatEx The RtlUnicodeStringCatEx function concatenates two strings that are contained in UNICODE_STRING structures.
RtlUnicodeStringCatString The RtlUnicodeStringCatString function concatenates two strings when the destination string is contained in a UNICODE_STRING structure.
RtlUnicodeStringCatStringEx The RtlUnicodeStringCatStringEx function concatenates two strings when the destination string is contained in a UNICODE_STRING structure.
RtlUnicodeStringCbCatN The RtlUnicodeStringCbCatN function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCbCatNEx The RtlUnicodeStringCbCatNEx function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCbCatStringN The RtlUnicodeStringCbCatStringN function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCbCatStringNEx The RtlUnicodeStringCbCatStringNEx function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCbCopyN The RtlUnicodeStringCbCopyN function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCbCopyNEx The RtlUnicodeStringCbCopyNEx function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCbCopyStringN The RtlUnicodeStringCbCopyStringN function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCbCopyStringNEx The RtlUnicodeStringCbCopyStringNEx function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCchCatN The RtlUnicodeStringCchCatN function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCchCatNEx The RtlUnicodeStringCchCatNEx function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCchCatStringN The RtlUnicodeStringCchCatStringN function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCchCatStringNEx The RtlUnicodeStringCchCatStringNEx function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCchCopyN The RtlUnicodeStringCchCopyN function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCchCopyNEx The RtlUnicodeStringCchCopyNEx function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCchCopyStringN The RtlUnicodeStringCchCopyStringN function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCchCopyStringNEx The RtlUnicodeStringCchCopyStringNEx function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCopy The RtlUnicodeStringCopy function copies a string from one UNICODE_STRING structure to another.
RtlUnicodeStringCopyEx The RtlUnicodeStringCopyEx function copies a string from one UNICODE_STRING structure to another.
RtlUnicodeStringCopyString The RtlUnicodeStringCopyString function copies a string into a UNICODE_STRING structure.
RtlUnicodeStringCopyStringEx The RtlUnicodeStringCopyStringEx function copies a string into a UNICODE_STRING structure.
RtlUnicodeStringInit The RtlUnicodeStringInit function initializes a UNICODE_STRING structure.
RtlUnicodeStringInitEx The RtlUnicodeStringInitEx function initializes a UNICODE_STRING structure.
RtlUnicodeStringPrintf The RtlUnicodeStringPrintf function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.
RtlUnicodeStringPrintfEx The RtlUnicodeStringPrintfEx function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.
RtlUnicodeStringValidate The RtlUnicodeStringValidate function validates the contents of a UNICODE_STRING structure.
RtlUnicodeStringValidateEx The RtlUnicodeStringValidateEx function validates the contents of a UNICODE_STRING structure.
RtlUnicodeStringVPrintf The RtlUnicodeStringVPrintf function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.
RtlUnicodeStringVPrintfEx The RtlUnicodeStringVPrintfEx function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.

Safe integer library routines

This section describes the safe integer functions for drivers. These functions are defined as inline functions in the Ntintsafe.h header file in the WDK. The safe integer functions are designed to help drivers to avoid arithmetic overflow errors. These functions are divided into two sets; the first converts integer values from one type to another, and the second performs math functions. For more information about these functions, see Using Safe Integer Functions.

The Intsafe.h header file in the Windows SDK defines a similar set of safe integer functions for use by applications. For more information about this version of the safe integer functions, see Intsafe.h Functions.

Data conversions

Function Description
InterlockedExchange Sets a variable of type LONG to a given value as an atomic operation; returns the original value of the variable.
RtlConvertLongToLargeInteger Converts a given LONG value to a LARGE_INTEGER value.
RtlConvertUlongToLargeInteger Converts a given ULONG value to a LARGE_INTEGER value.
RtlTimeFieldsToTime Converts information in a TIME_FIELDS structure to system time.
RtlTimeToTimeFields Converts a system time value into a buffered TIME_FIELDS value.
ExSystemTimeToLocalTime Adds the time-zone bias for the current locale to GMT system time, converting it to local time.
ExLocalTimeToSystemTime Subtracts the time-zone bias from the local time, converting it to GMT system time.
RtlAnsiStringToUnicodeString Converts a buffered ANSI string to a Unicode string, given a pointer to the source-string buffer and the address of caller-supplied storage for a pointer to the destination buffer. (This routine allocates a destination buffer if the caller does not supply the storage.)
RtlUnicodeStringToAnsiString Converts a buffered Unicode string to an ANSI string, given a pointer to the source-string buffer and the address of caller-supplied storage for a pointer to the destination buffer. (This routine allocates a destination buffer if the caller does not supply the storage.)
RtlUpperString Converts a copy of a buffered string to uppercase and stores the copy in a destination buffer.
RtlUpcaseUnicodeString Converts a copy of a buffered Unicode string to uppercase and stores the copy in a destination buffer.
RtlCharToInteger Converts a single-byte character value into an integer in the specified base.
RtlIntegerToUnicodeString Converts an unsigned integer value in the specified base to one or more Unicode characters in the given buffer.
RtlUnicodeStringToInteger Converts a Unicode string representation of an integer into its integer equivalent.

Access to driver-managed objects

Function Description
ExCreateCallback Creates or opens a callback object.
ExNotifyCallback Calls the callback routines registered with a previously created or opened callback object.
ExRegisterCallback Registers a callback routine with a previously created or opened callback object, so that the caller can be notified when conditions defined for the callback routine occur.
ExUnregisterCallback Cancels the registration of a callback routine with a callback object.
IoRegisterDeviceInterface Registers device functionality (a device interface) that a driver can enable for use by applications or other system components.
IoSetDeviceInterfaceState Enables or disables a previously registered device interface. Applications and other system components can open only interfaces that are enabled.
IoGetDeviceInterfaceAlias Returns the alias device interface of the specified interface class, if the alias exists. Device interfaces are considered aliases if they are exposed by the same underlying device and have identical interface reference strings, but are of different interface classes.
IoGetDeviceInterfaces Returns a list of device interfaces of a particular device interface class (such as all devices on the system that support a HID interface).
IoGetFileObjectGenericMapping Returns information about the mapping between generic access rights and specific access rights for file objects.
IoSetShareAccess Sets the access allowed to a given file object representing a device. (Only highest-level drivers can call this routine.)
IoCheckShareAccess Checks whether a request to open a file object specifies a desired access that is compatible with the current shared access permissions for the open file object. (Only highest-level drivers can call this routine.)
IoUpdateShareAccess Modifies the current shared access permissions on the given file object. (Only highest-level drivers can call this routine.)
IoRemoveShareAccess Restores the shared access permissions on the given file object that were modified by a preceding call to IoUpdateShareAccess.
RtlLengthSecurityDescriptor Returns the size in bytes of a given security descriptor.
RtlValidSecurityDescriptor Returns whether a given security descriptor is valid.
RtlCreateSecurityDescriptor Initializes a new security descriptor to an absolute format with default values (in effect, with no security constraints).
RtlSetDaclSecurityDescriptor Sets the discretionary ACL information for a given security descriptor in absolute format.
SeAssignSecurity Builds a security descriptor for a new object, given the security descriptor of its parent directory (if any) and an originally requested security for the object.
SeDeassignSecurity Deallocates the memory associated with a security descriptor that was created with SeAssignSecurity.
SeValidSecurityDescriptor Returns whether a given security descriptor is structurally valid.
SeAccessCheck Returns a Boolean value indicating whether the requested access rights can be granted to an object protected by a security descriptor and, possibly, a current owner.
SeSinglePrivilegeCheck Returns a Boolean value indicating whether the current thread has at least the given privilege level.

Error handling

Function Description
IoAllocateErrorLogEntry Allocates and initializes an error log packet; returns a pointer so the caller can supply error log data and call IoWriteErrorLogEntry with the packet.
IoFreeErrorLogEntry Frees an error log entry allocated by IoAllocateErrorLogEntry.
IoWriteErrorLogEntry Queues a previously allocated error log packet, filled in by the driver, to the system error logging thread.
IoIsErrorUserInduced Returns a Boolean value indicating whether an I/O request failed due to one of the following (user-correctable) conditions: STATUS_IO_TIMEOUT, STATUS_DEVICE_NOT_READY, STATUS_UNRECOGNIZED_MEDIA, STATUS_VERIFY_REQUIRED, STATUS_WRONG_VOLUME, STATUS_MEDIA_WRITE_PROTECTED, or STATUS_NO_MEDIA_IN_DEVICE. If the result is TRUE, a removable-media driver must call IoSetHardErrorOrVerifyDevice before completing the IRP.
IoSetHardErrorOrVerifyDevice Supplies the device object for which the given IRP was failed due to a user-induced error, such as supplying the incorrect media for the requested operation or changing the media before the requested operation was completed. (A file system driver uses the associated device object to send a dialog box to the user; the user can then correct the error or retry the operation.)
IoSetThreadHardErrorMode Enables or disables error reporting for the current thread using IoRaiseHardError or IoRaiseInformationalHardError.
IoRaiseHardError Causes a dialog box to be sent to the user indicating that the given IRP was failed on the given device object for an optional VPB, so that the user can correct the error or retry the operation.
IoRaiseInformationalHardError Causes a dialog box to be sent to the user, showing an I/O error status and optional string supplying more information.
ExRaiseStatus Raises an error status so that a caller-supplied structured exception handler is called. (This routine is useful only to highest-level drivers that supply exception handlers, in particular to file systems.)
KeBugCheckEx Brings down the system in a controlled manner, displaying the bug-check code and possibly more information, after the caller discovers an unrecoverable inconsistency that will corrupt the system unless it is brought down. After the system is brought down, this routine displays bug-check and possibly other information. (This routine can be called when debugging under-development drivers. Otherwise, drivers should never call this routine when they can handle an error by failing an IRP and by calling IoAllocateErrorLogEntry and IoWriteErrorLogEntry.)
KeBugCheck Brings down the system in a controlled manner when the caller discovers an unrecoverable inconsistency that will corrupt the system if the caller continues to run. KeBugCheckEx is preferable.
KeInitializeCallbackRecord Initializes a bug-check callback record before a device driver calls KeRegisterBugCheckCallback.
KeRegisterBugCheckCallback Registers the device driver's bug-check callback routine, which is called if a system bug check occurs. Such a driver-supplied routine saves driver-determined state information, such as the contents of device registers, that would not otherwise be written into the system crash-dump file.
KeDeregisterBugCheckCallback Removes a device driver's callback routine from the set of registered bug-check callback routines.

IOCTLs

 
IOCTL_SYSENV_ENUM_VARIABLES

Returns information about system environment variables using SysEnv device.
IOCTL_SYSENV_GET_VARIABLE

Gets the value of the specified system environment variables using SysEnv device.
IOCTL_SYSENV_QUERY_VARIABLE_INFO

IOCTL_SYSENV_QUERY_VARIABLE_INFO returns information about system environment variables using SysEnv device.
IOCTL_SYSENV_SET_VARIABLE

Sets the value of the specified system environment variables using SysEnv device.

Enumerations

 
BDCB_CALLBACK_TYPE

The BDCB_CALLBACK_TYPE enumeration specifies whether the callback being passed to a BOOT_DRIVER_CALLBACK_FUNCTION routine is a status update or a boot-start driver initialization notification.
BDCB_CLASSIFICATION

The BDCB_CLASSIFICATION enumeration lists different classifications of boot start images.
BDCB_STATUS_UPDATE_TYPE

The BDCB_STATUS_UPDATE_TYPE enumeration lists the types of boot-driver callback status updates.
BOUND_CALLBACK_STATUS

The BOUND_CALLBACK_STATUS enumeration indicates how a user-mode bounds exception was processed by the BoundCallback function.
BUS_DATA_TYPE

The _BUS_DATA_TYPE enumeration (miniport.h) defines values that indicate the type of bus configuration space.
BUS_DATA_TYPE

The _BUS_DATA_TYPE enumeration (ntddk.h) defines values that indicate the type of bus configuration space.
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

The DEVICE_POWER_STATE enumeration type indicates a device power 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.
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_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
GPIO_PIN_CONFIG_TYPE

Learn how the GPIO_PIN_CONFIG_TYPE enumeration describes a connection IO resource.
GPIO_PIN_CONFIG_TYPE

The GPIO_PIN_CONFIG_TYPE enumeration describes a connection IO resource.
GPIO_PIN_IORESTRICTION_TYPE

Learn how the GPIO_PIN_IORESTRICTION_TYPE enumeration describes the functions that a GPIO pin is limited to performing.
GPIO_PIN_IORESTRICTION_TYPE

The GPIO_PIN_IORESTRICTION_TYPE enumeration describes the functions that a GPIO pin is limited to performing.
HAL_APIC_DESTINATION_MODE

This topic describes the HAL_APIC_DESTINATION_MODE enumeration (ntddk.h).
HAL_QUERY_INFORMATION_CLASS

The HAL_QUERY_INFORMATION_CLASS enumeration is reserved for system use only. Do not use.
HAL_SET_INFORMATION_CLASS

The _HAL_SET_INFORMATION_CLASS enumeration defines values used by the pHalSetSystemInformation callback function that are reserved for internal use.
HARDWARE_COUNTER_TYPE

The HARDWARE_COUNTER_TYPE enumeration specifies the type of a hardware counter.
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 (miniport.h) defines values that indicate the type of bus driver that published the interface.
INTERFACE_TYPE

The _INTERFACE_TYPE enumeration (wdm.h) defines values that indicate the type of bus driver that published the interface.
IO_ACCESS_MODE

Defines the types of access mode for Scheduled File I/O (SFIO).
IO_ACCESS_MODE

_IO_ACCESS_MODE defines the types of access mode for Scheduled File I/O (SFIO).
IO_ACCESS_TYPE

Defines the access rights 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 (miniport.h) type indicates the operating system policy used to assign interrupts from a device to different processors.
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 (miniport.h) type indicates the priority the system should give to servicing a device's interrupts.
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.
KD_CALLBACK_ACTION

This topic describes the KD_CALLBACK_ACTION enumeration (ntddk.h).
KD_NAMESPACE_ENUM

This topic describes the KD_NAMESPACE_ENUM enumeration (ntddk.h).
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 (miniport.h) type indicates whether an interrupt is level-triggered or edge-triggered.
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 (miniport.h) contains values that indicate how a device signals an interrupt request on an interrupt line.
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.
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 (miniport.h) type specifies the permitted caching behavior when allocating or mapping memory.
MEMORY_CACHING_TYPE

The _MEMORY_CACHING_TYPE enumeration (wdm.h) type specifies the permitted caching behavior when allocating or mapping memory.
MONITOR_DISPLAY_STATE

Indicates the power state of the monitor being displayed on.
MONITOR_DISPLAY_STATE

Learn how this method indicates the power state of the monitor being displayed on.
PCI_BUS_WIDTH

This topic describes the PCI_BUS_WIDTH enumeration.
PCI_BUS_WIDTH

This topic describes the PCI_BUS_WIDTH enumeration (ntddk.h).
PCI_DEVICE_D3COLD_STATE_REASON

This topic describes the PCI_DEVICE_D3COLD_STATE_REASON enumeration.
PCI_DEVICE_D3COLD_STATE_REASON

This topic describes the PCI_DEVICE_D3COLD_STATE_REASON enumeration (ntddk.h).
PCI_EXPRESS_ASPM_CONTROL

This topic describes the PCI_EXPRESS_ASPM_CONTROL enumeration.
PCI_EXPRESS_ASPM_CONTROL

This topic describes the PCI_EXPRESS_ASPM_CONTROL enumeration (ntddk.h).
PCI_EXPRESS_ASPM_SUPPORT

This topic describes the PCI_EXPRESS_ASPM_SUPPORT enumeration.
PCI_EXPRESS_ASPM_SUPPORT

This topic describes the PCI_EXPRESS_ASPM_SUPPORT enumeration (ntddk.h).
PCI_EXPRESS_CARD_PRESENCE

This topic describes the PCI_EXPRESS_CARD_PRESENCE enumeration.
PCI_EXPRESS_CARD_PRESENCE

This topic describes the PCI_EXPRESS_CARD_PRESENCE enumeration (ntddk.h).
PCI_EXPRESS_DEVICE_TYPE

This topic describes the PCI_EXPRESS_DEVICE_TYPE enumeration.
PCI_EXPRESS_DEVICE_TYPE

This topic describes the PCI_EXPRESS_DEVICE_TYPE enumeration (ntddk.h).
PCI_EXPRESS_INDICATOR_STATE

This topic describes the PCI_EXPRESS_INDICATOR_STATE enumeration.
PCI_EXPRESS_INDICATOR_STATE

This topic describes the PCI_EXPRESS_INDICATOR_STATE enumeration (ntddk.h).
PCI_EXPRESS_L0s_EXIT_LATENCY

This topic describes the PCI_EXPRESS_L0s_EXIT_LATENCY enumeration.
PCI_EXPRESS_L0s_EXIT_LATENCY

This topic describes the PCI_EXPRESS_L0s_EXIT_LATENCY enumeration (ntddk.h).
PCI_EXPRESS_L1_EXIT_LATENCY

This topic describes the PCI_EXPRESS_L1_EXIT_LATENCY enumeration.
PCI_EXPRESS_L1_EXIT_LATENCY

This topic describes the PCI_EXPRESS_L1_EXIT_LATENCY enumeration (ntddk.h).
PCI_EXPRESS_LINK_SUBSTATE

This topic describes the PCI_EXPRESS_LINK_SUBSTATE enumeration.
PCI_EXPRESS_LINK_SUBSTATE

This topic describes the PCI_EXPRESS_LINK_SUBSTATE enumeration (ntddk.h).
PCI_EXPRESS_MAX_PAYLOAD_SIZE

This topic describes the PCI_EXPRESS_MAX_PAYLOAD_SIZE enumeration (ntddk.h).
PCI_EXPRESS_MRL_STATE

This topic describes the PCI_EXPRESS_MRL_STATE enumeration.
PCI_EXPRESS_MRL_STATE

This topic describes the PCI_EXPRESS_MRL_STATE enumeration (ntddk.h).
PCI_EXPRESS_POWER_STATE

This topic describes the PCI_EXPRESS_POWER_STATE enumeration.
PCI_EXPRESS_POWER_STATE

This topic describes the PCI_EXPRESS_POWER_STATE enumeration (ntddk.h).
PCI_EXPRESS_RCB

This topic describes the PCI_EXPRESS_RCB enumeration.
PCI_EXPRESS_RCB

This topic describes the PCI_EXPRESS_RCB enumeration (ntddk.h).
PCR_BTI_VBAR_INDEX

Describes the PCR_BTI_VBAR_INDEX enumeration.
PEP_ACPI_OBJECT_TYPE

Learn how the PEP_ACPI_OBJECT_TYPE enumeration indicates the type of ACPI object.
PEP_ACPI_OBJECT_TYPE

The PEP_ACPI_OBJECT_TYPE enumeration indicates the type of ACPI object.
PEP_ACPI_RESOURCE_TYPE

Learn how the PEP_ACPI_RESOURCE_TYPE enumeration is used to identify the type of ACPI resource that is contained in the PEP_ACPI_RESOURCE union.
PEP_ACPI_RESOURCE_TYPE

The PEP_ACPI_RESOURCE_TYPE enumeration is used to identify the type of ACPI resource that is contained in the PEP_ACPI_RESOURCE union.
PEP_DEVICE_ACCEPTANCE_TYPE

Learn how the PEP_DEVICE_ACCEPTANCE_TYPE enumeration indicates whether a PEP accepts ownership of a device.
PEP_DEVICE_ACCEPTANCE_TYPE

The PEP_DEVICE_ACCEPTANCE_TYPE enumeration indicates whether a PEP accepts ownership of a device.
PEP_PERF_STATE_TYPE

Learn how the PEP_PERF_STATE_TYPE enumeration indicates the type of performance information that is specified for a performance state (P-state) of a component.
PEP_PERF_STATE_TYPE

The PEP_PERF_STATE_TYPE enumeration indicates the type of performance information that is specified for a performance state (P-state) of a component.
PEP_PERF_STATE_UNIT

Learn how the PEP_PERF_STATE_UNIT enumeration indicates the measurement units in which the performance state (P-state) of a component is specified.
PEP_PERF_STATE_UNIT

The PEP_PERF_STATE_UNIT enumeration indicates the measurement units in which the performance state (P-state) of a component is specified.
PEP_PROCESSOR_IDLE_CANCEL_CODE

The PEP_PROCESSOR_IDLE_CANCEL_CODE enumeration values indicate reasons why a processor cannot enter an idle state that was previously selected by the platform extension plug-in (PEP).
PEP_PROCESSOR_IDLE_TYPE

The PEP_PROCESSOR_IDLE_TYPE enumeration indicates whether idle constraints apply to just the current processor or to all processors in the hardware platform.
PEP_WORK_TYPE

Learn how the PEP_WORK_TYPE enumeration describes the type of work that the platform extension plug-in (PEP) is requesting.
PEP_WORK_TYPE

The PEP_WORK_TYPE enumeration describes the type of work that the platform extension plug-in (PEP) is requesting.
PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE

The PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE enumeration contains constants that indicate the type of hardware performance counter resource that is described by a PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR structure.
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.
PO_INTERNAL_WAKE_SOURCE_TYPE

Learn more about: PO_INTERNAL_WAKE_SOURCE_TYPE enumeration
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

The POWER_ACTION enumeration identifies the system power actions that can occur on a computer.
POWER_ACTION

Learn how the POWER_ACTION enumeration (wdm.h) identifies the system power actions that can occur on a computer.
POWER_INFORMATION_LEVEL

Indicates power level information.
POWER_INFORMATION_LEVEL

POWER_INFORMATION_LEVEL enumerates power level information indicators.
POWER_MONITOR_REQUEST_REASON

Defines values for power transitions reasons for a monitor.
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

The POWER_REQUEST_TYPE enumeration indicates the power request type.
POWER_REQUEST_TYPE

Learn how the POWER_REQUEST_TYPE enumeration indicates the power request type.
POWER_STATE_TYPE

The POWER_STATE_TYPE enumeration type indicates that a power state value is a system power state or a device power state.
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.
PROCESS_MITIGATION_POLICY

Enumerates process mitigation policies.
PSCREATEPROCESSNOTIFYTYPE

Indicates the type of process notification. This enumeration is used in PsSetCreateProcessNotifyRoutineEx2 to register callback notifications.
PSCREATETHREADNOTIFYTYPE

Indicates the type of thread notification. This enumeration is used in PsSetCreateThreadNotifyRoutineEx to register callback notifications associated with thread creation or deletion.
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
STATE_LOCATION_TYPE

Defines values for persisted state locations for device and driver files.
SUBSYSTEM_INFORMATION_TYPE

Indicates the type of subsystem for a process or thread. This enumeration is used in NtQueryInformationProcess and NtQueryInformationThread calls.
SYSTEM_POWER_CONDITION

This topic describes the SYSTEM_POWER_CONDITION enumeration.
SYSTEM_POWER_STATE

The SYSTEM_POWER_STATE enumeration type is used to indicate a system power state.
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.
WHEA_PCI_RECOVERY_SIGNAL

Describes the WHEA_PCI_RECOVERY_SIGNAL enumeration.
WHEA_PCI_RECOVERY_STATUS

Describes the WHEA_PCI_RECOVERY_STATUS enumeration.
WHEAP_DPC_ERROR_EVENT_TYPE

This topic describes the WHEAP_DPC_ERROR_EVENT_TYPE enumeration.
WORK_QUEUE_TYPE

The WORK_QUEUE_TYPE enumeration type indicates the type of system worker thread that handles a work item.

Functions

 
_BitTest64

This topic describes the _BitTest64 function.
_BitTest64

The _BitTest64 function...
_BitTestAndComplement64

This topic describes the _BitTestAndComplement64 function.
_BitTestAndComplement64

The _BitTestAndComplement64 function...
_BitTestAndReset64

This topic describes the _BitTestAndReset64 function.
_BitTestAndReset64

The _BitTestAndReset64 function...
_BitTestAndSet64

This topic describes the _BitTestAndSet64 function.
_BitTestAndSet64

The _BitTestAndSet64 function...
_ReadWriteBarrier

Describes the ReadWriteBarrier~r1 function (miniport.h).
_ReadWriteBarrier

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

This topic describes the _WHEA_SIGNAL_HANDLER_OVERRIDE_CALLBACK callback function.
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.
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.
AuxKlibEnumerateSystemFirmwareTables

The AuxKlibEnumerateSystemFirmwareTables routine enumerates all system firmware tables of the specified type.
AuxKlibGetBugCheckData

The AuxKlibGetBugCheckData routine retrieves information about a bug check that has just occurred.
AuxKlibGetImageExportDirectory

The AuxKlibGetImageExportDirectory routine returns an image module's export directory.
AuxKlibGetSystemFirmwareTable

The AuxKlibGetSystemFirmwareTable routine retrieves the specified firmware table from the firmware table provider.
AuxKlibInitialize

The AuxKlibInitialize routine initializes the Auxiliary Kernel-Mode Library.
AuxKlibQueryModuleInformation

The AuxKlibQueryModuleInformation routine retrieves information about the image modules that the operating system has loaded.
BarrierAfterRead

Describes the BarrierAfterRead function (miniport.h).
BarrierAfterRead

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

Describes the BarrierAfterRead~r2 function (miniport.h).
BarrierAfterRead

Describes the BarrierAfterRead function (wdm.h).
BarrierAfterRead

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

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

Learn more about: BOOT_DRIVER_CALLBACK_FUNCTION callback function
BOUND_CALLBACK

The BoundCallback routine is executed whenever the system issues a bounds exception for a user-mode thread.
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.
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.
CUSTOM_SYSTEM_EVENT_TRIGGER_INIT

Initializes the CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG structure.
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_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_REINITIALIZE

The Reinitialize routine continues driver and device initialization after the driver's DriverEntry routine returns.
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.
EtwSetInformation

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

A filter driver's RegistryCallback routine can monitor, block, or modify a registry operation.
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 macro (ntddk.h) routine deallocates a specified block of pool memory that was previously allocated.
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.
ExInitializeRundownProtectionCacheAwareEx

ExInitializeSetTimerParameters

The ExInitializeSetTimerParameters routine initializes an EXT_SET_PARAMETERS structure.
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.
EXPAND_STACK_CALLOUT

The ExpandedStackCall routine executes with a guaranteed stack size.
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.
ExRaiseAccessViolation

The ExRaiseAccessViolation routine can be used with structured exception handling to throw a driver-determined exception for a memory access violation that occurs when a driver processes I/O requests.
ExRaiseDatatypeMisalignment

The ExRaiseDatatypeMisalignment routine can be used with structured exception handling to throw a driver-determined exception for a misaligned data type that occurs when a driver processes I/O requests.
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.
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.
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.
ExUuidCreate

The ExUuidCreate routine initializes a UUID (GUID) structure to a newly generated value.
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 (miniport.h) returns the byte offset of the specified field in the specified known structure type.
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.
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.
HalAllocateHardwareCounters

The HalAllocateHardwareCounters routine allocates a set of hardware performance counters.
HalExamineMBR

The HalExamineMBR function reads the master boot record (MBR) of a disk and returns the MBR data if the MBR is of the specified type.
HalFreeHardwareCounters

The HalFreeHardwareCounters routine frees a set of hardware performance counters that was acquired in a previous call to HalAllocateHardwareCounters routine.
HalGetBusDataByOffset

This function retrieves information, starting at the offset, about a slot or address on an I/O bus.
HalSetBusDataByOffset

This function sets bus-configuration data for a device on a dynamically configurable I/O bus with a published, standard interface.
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 (miniport.h) macro atomically computes a bitwise AND operation with the specified variable and specified value.
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 Comparand.
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 Comparand.
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 (miniport.h) decrements a caller-supplied variable of type LONG as an atomic operation.
InterlockedDecrement

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

The InterlockedExchange function (miniport.h) sets an integer variable to a given value 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 (miniport.h) adds a value to a given integer as an atomic operation and returns the original value of the given integer.
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 (miniport.h) performs an atomic operation that sets a pointer to a new value.
InterlockedExchangePointer

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

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

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

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

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

The InterlockedXor function (miniport.h) atomically computes a bitwise exclusive 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.
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.
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.
IoAllocateAdapterChannel

Deprecated. Use PALLOCATE_ADAPTER_CHANNEL.
IoAllocateController

The IoAllocateController routine sets up the call to a driver-supplied ControllerControl routine as soon as the device controller, represented by the given controller object, is available to carry out an I/O operation for the target device, represented by the given device object.
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.
IoAssignArcName

The IoAssignArcName routine creates a symbolic link between the ARC name of a physical device and the name of the corresponding device object when it has been created.
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.
IoCheckFileObjectOpenedAsCopyDestination

Learn more about the IoCheckFileObjectOpenedAsCopyDestination function.
IoCheckFileObjectOpenedAsCopySource

Learn more about the IoCheckFileObjectOpenedAsCopySource function.
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.
IoClearActivityIdThread

The IoClearActivityIdThread routine clears the activity ID of the current thread.
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.
IoCreateController

The IoCreateController routine allocates memory for and initializes a controller object with a controller extension of a driver-determined size.
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.
IoDeassignArcName

The IoDeassignArcName routine removes a symbolic link between the ARC name for a device and the named device object.
IoDecrementKeepAliveCount

The IoDecrementKeepAliveCount routine decrements a reference count associated with a Windows app on a specific device.
IoDeleteController

The IoDeleteController routine removes a given controller object from the system, for example, when the driver that created it is being unloaded.
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.
IoFreeController

The IoFreeController routine releases a previously allocated controller object when the driver has completed an I/O request.
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.
IoGetActivityIdIrp

The IoGetActivityIdIrp routine retrieves the current activity ID associated with an IRP.
IoGetActivityIdThread

The IoGetActivityIdThread routine returns the activity ID associated with the current thread.
IoGetAffinityInterrupt

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

Learn more about the IoGetAttachedDeviceReference routine.
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.
IoGetConfigurationInformation

The IoGetConfigurationInformation function (ntddk.h) returns a pointer to the I/O manager's global configuration information structure.
IoGetConfigurationInformation

Learn more about the IoGetConfigurationInformation function.
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.
IoGetFileObjectGenericMapping

The IoGetFileObjectGenericMapping routine returns information about the mapping between each generic access right and the set of specific access rights for file objects.
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.
IoGetInitiatorProcess

The IoGetInitiatorProcess routine retrieves the process which initiated the creation of a file object if different than the process which is issuing the create.
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.
IoGetPagingIoPriority

The IoGetPagingIoPriority routine indicates the priority level of a paging I/O request.
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.
IoGetShadowFileInformation

This topic describes the IoGetShadowFileInformation function.
IoGetStackLimits

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

The IoIncrementKeepAliveCount routine increments a reference count associated with a Windows app process on a specific device.
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.
IoIsValidIrpStatus

The IoIsValidIrpStatus routine validates the specified NTSTATUS status code value.
IoIsWdmVersionAvailable

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

This routine is reserved for use by file systems and file system filter drivers.
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.
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.
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.
IoPropagateActivityIdToThread

The IoPropagateActivityIdToThread routine associates the activity ID from an IRP with the current thread.
IoQueryFullDriverPath

The IoQueryFullDriverPath routine retrieves the full path name of the binary file that is loaded for the specified driver object.
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.
IoRaiseHardError

The IoRaiseHardError routine causes a dialog box to appears that warns the user that a device I/O error has occurred, which might indicate that a physical device is failing.
IoRaiseInformationalHardError

The IoRaiseInformationalHardError routine sends a dialog box to the user, warning about a device I/O error that indicates why a user I/O request failed.
IoRegisterBootDriverCallback

The IoRegisterBootDriverCallback routine registers a BOOT_DRIVER_CALLBACK_FUNCTION routine to be called during the initialization of a boot-start driver and its dependent DLLs.
IoRegisterBootDriverReinitialization

The IoRegisterBootDriverReinitialization routine is called by a boot driver to register the driver's reinitialization routine with the I/O manager to be called after all devices have been enumerated and started.
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.
IoRegisterDriverReinitialization

The IoRegisterDriverReinitialization routine is called by a driver during its initialization or reinitialization to register its Reinitialize routine to be called again before the driver's and, possibly the system's, initialization is complete.
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.
IoRemoveShareAccess

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

The IoReportDetectedDevice routine reports a non-PnP device to the PnP manager.
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.
IoReportResourceForDetection

The IoReportResourceForDetection routine claims hardware resources in the configuration registry for a legacy device.
IoReportRootDevice

The IoReportRootDevice routine reports a device that cannot be detected by a PnP bus driver to the PnP Manager. IoReportRootDevice allows only one device per driver to be created.
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...
IoSetActivityIdIrp

The IoSetActivityIdIrp routine associates an activity ID with an IRP.
IoSetActivityIdThread

The IoSetActivityIdThread routine associates an activity ID with the current thread. Drivers should use this routine when they are tracing aware and are issuing I/O on a worker thread.
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.
IoSetHardErrorOrVerifyDevice

Lower-level drivers call the IoSetHardErrorOrVerifyDevice routine to identify a removable media device that has encountered an error, so that a file system driver can prompt the user to verify that the medium is valid.
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.
IoSetMasterIrpStatus

The IoSetMasterIrpStatus routine conditionally replaces the Status value in an IRP with the specified NTSTATUS value.
IoSetNextIrpStackLocation

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

This topic describes the IoSetShadowFileInformation function.
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 ntifs.h sets attributes for the driver's StartIo routine.
IoSetStartIoAttributes

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

The IoSetSystemPartition routine sets the boot partition for the system.
IoSetThreadHardErrorMode

The IoSetThreadHardErrorMode routine enables or disables hard error reporting for the current thread.
IoSizeOfIrp

Learn more about the IoSizeOfIrp routine.
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.
IoStartNextPacket

Learn more about the IoStartNextPacket routine.
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

Learn more about the IoStartNextPacketByKey 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

Learn more about the IoStartPacket routine.
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

Learn more about the IoStartTimer routine.
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

Learn more about the IoStopTimer routine.
IoStopTimer

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

The IoTransferActivityId routine logs an ETW transfer event using the I/O tracing provider on behalf of the caller. This allows a driver to associate two related activity IDs without requiring a specific provider to be enabled.
IoUninitializeWorkItem

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

The IoUnRegisterBootDriverCallback routine unregisters a previously registered BOOT_DRIVER_CALLBACK_FUNCTION routine.
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.
IoVerifyPartitionTable

The IoVerifyPartitionTable routine checks the validity of the partition table for a disk.
IoVolumeDeviceToDosName

The IoVolumeDeviceToDosName routine returns the MS-DOS path for a specified device object that represents a file system volume.
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

Learn more about the IoWriteErrorLogEntry routine.
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.
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.
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 (ntddk.h) returns a value that indicates whether the calling thread is within a critical region or a guarded region.
KeAreApcsDisabled

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

The KeBugCheck 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.
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 (ntddk.h) temporarily disables the execution of normal kernel APCs, but does not prevent special kernel APCs from running.
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 (ntddk.h) enters a guarded region, which disables all kernel-mode APC delivery to the current thread.
KeEnterGuardedRegion

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

The KeExpandKernelStackAndCallout routine calls a routine with a guaranteed amount of stack space.
KeExpandKernelStackAndCalloutEx

Learn more about: KeExpandKernelStackAndCalloutEx
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 (ntddk.h) returns the NUMA node number for the logical processor that the caller is running on.
KeGetCurrentNodeNumber

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

The KeGetCurrentProcessorNumber routine returns the system-assigned number of the current processor on which the caller is running.
KeGetCurrentProcessorNumberEx

The KeGetCurrentProcessorNumberEx function (ntddk.h) returns the processor number of 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 ntifs.h converts a group number and a group-relative processor number to a systemwide processor index.
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 ntifs.h converts a systemwide processor index to a group number and a group-relative processor number.
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.
KeInitializeCrashDumpHeader

The KeInitializeCrashDumpHeader routine supplies the header information the system requires for a crash dump file.
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.
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.
KeInvalidateAllCaches

The KeInvalidateAllCaches routine flushes all processor caches.
KeInvalidateRangeAllCaches

The KeInvalidateRangeAllCaches routine flushes the specified virtual address range from all processor caches.
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

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

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

The KeLeaveGuardedRegion routine exits a guarded region entered by KeEnterGuardedRegion.
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.
KePulseEvent

The KePulseEvent routine atomically sets an event object to a signaled state, attempts to satisfy as many waits as possible, and then resets the event object to a not-signaled state.
KeQueryActiveGroupCount

The KeQueryActiveGroupCount routine returns the number of active processor groups in a multiprocessor system.
KeQueryActiveGroupCount

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

The KeQueryActiveProcessorCount routine returns the number of currently active processors.
KeQueryActiveProcessorCount

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

The KeQueryActiveProcessorCountEx routine returns the number of active logical processors in a specified group in a multiprocessor system or in the entire system.
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

The KeQueryActiveProcessors routine returns a bitmask of the currently active processors.
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

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

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

The KeQueryHardwareCounterConfiguration routine queries the operating system for the list of hardware counters to use for thread profiling.
KeQueryHighestNodeNumber

The KeQueryHighestNodeNumber routine returns the highest node number in a multiprocessor system that has a non-uniform memory access (NUMA) architecture.
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

The KeQueryMaximumGroupCount routine returns the maximum number of groups in a multiprocessor system.
KeQueryMaximumGroupCount

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

The KeQueryMaximumProcessorCount routine returns the maximum number of processors.
KeQueryMaximumProcessorCount

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

The KeQueryMaximumProcessorCountEx routine returns the maximum number of logical processors in a specified group in a multiprocessor system.
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

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

The KeQueryTickCount routine maintains a count of the interval timer interrupts that have occurred since the system was booted.
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

The KeRaiseIrqlToDpcLevel routine raises the hardware priority to IRQL = DISPATCH_LEVEL, 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.
KeSetBasePriorityThread

The KeSetBasePriorityThread routine sets the run-time priority, relative to the current process, for a given thread.
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.
KeSetHardwareCounterConfiguration

The KeSetHardwareCounterConfiguration routine specifies a list of hardware counters to use for thread profiling.
KeSetImportanceDpc

The KeSetImportanceDpc routine specifies how soon the DPC routine is run.
KeSetImportanceDpc

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

Learn more about the KeSetKernelStackSwapEnable routine.
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

The KeSetTargetProcessorDpc routine specifies the processor that a DPC routine will be run on.
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

Learn more about the KeStallExecutionProcessor routine.
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.
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.
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.
MM_MDL_ROUTINE

A driver-supplied callback routine that is invoked after a memory descriptor list (MDL) is mapped by calling the MmMapMdl function.
MmAddPhysicalMemory

The MmAddPhysicalMemory function adds a range of physical memory to the system.
MmAdvanceMdl

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

The MmAllocateContiguousMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
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

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

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

The MmAllocateContiguousMemorySpecifyCacheNode 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

The MmAllocateContiguousNodeMemory 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.
MmAllocateNonCachedMemory

The MmAllocateNonCachedMemory routine allocates a virtual address range of non-cached and cache-aligned 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.
MmCopyMemory

The MmCopyMemory routine copies the specified range of virtual or physical memory into the caller-supplied buffer.
MmFreeContiguousMemory

The MmFreeContiguousMemory routine releases a range of physically contiguous memory that was allocated by an MmAllocateContiguousMemoryXxx routine.
MmFreeContiguousMemory

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

The MmFreeContiguousMemorySpecifyCache routine frees a buffer that was allocated by an MmAllocateContiguousMemorySpecifyCacheXxx 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.
MmFreeNonCachedMemory

The MmFreeNonCachedMemory routine releases a range of noncached memory that was allocated by the MmAllocateNonCachedMemory 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.
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).
MmGetPhysicalAddress

The MmGetPhysicalAddress routine returns the physical address corresponding to a valid nonpaged virtual address.
MmGetPhysicalMemoryRangesEx2

The MmGetPhysicalMemoryRangesEx2 routine returns the virtual address of a nonpaged pool block which contains the physical memory ranges in the system.
MmGetSystemAddressForMdl

The MmGetSystemAddressForMdl routine is obsolete. Use MmGetSystemAddressForMdlSafe instead.
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.
MmIsAddressValid

The MmIsAddressValid routine checks whether a page fault will occur for a read or write operation at a given virtual address.Warning  We do not recommend using this function.
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.
MmIsThisAnNtAsSystem

The MmIsThisAnNtAsSystem routine is obsolete for Windows XP and later versions of Windows. Use RtlGetVersion or RtlVerifyVersionInfo instead.
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.
MmLockPagableSectionByHandle

The MmLockPagableSectionByHandle routine locks a pageable code or data section into system memory by incrementing the reference count on the handle to the section.
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.
MmMapViewInSystemSpace

The MmMapViewInSystemSpace function maps the specified section into the system's address space.
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.
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.
MmSecureVirtualMemory

The MmSecureVirtualMemory routine secures a user-space memory address range so that it cannot be freed and its protection type cannot be made more restrictive.
MmSecureVirtualMemoryEx

This routine probes the requested address range and protects the specified address range from having its protection made more restrictive and being deleted.
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.
MmUnmapViewInSystemSpace

Learn more about: MmUnmapViewInSystemSpace function
MmUnsecureVirtualMemory

The MmUnsecureVirtualMemory routine unsecures a memory address range secured by the MmSecureVirtualMemory routine.
NtAllocateVirtualMemory

Learn more about the NtAllocateVirtualMemory routine.
NtClose

Learn more about the NtClose 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.
NtCopyFileChunk

Learn more about the NtCopyFileChunk function.
NtCreateEnlistment

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

Learn more about the NtCreateFile function.
NtCreateResourceManager

The ZwCreateResourceManager routine creates a resource manager object.
NtCreateSection

The NtCreateSection routine in ntifs.h creates a section object. Once the handle pointed to is no longer in use, the driver must close it.
NtCreateSectionEx

Creates a section object.
NtCreateTransaction

The ZwCreateTransaction routine creates a transaction object.
NtCreateTransactionManager

The ZwCreateTransactionManager routine creates a new transaction manager object.
NtDeviceIoControlFile

Learn more about the NtDeviceIoControlFile function.
NtDuplicateToken

Learn more about the NtDuplicateToken function.
NtEnumerateTransactionObject

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

Learn more about the NtFlushBuffersFileEx routine.
NtFreeVirtualMemory

Learn more about the NtFreeVirtualMemory routine.
NtFsControlFile

Learn more about the NtFsControlFile routine.
NtGetNotificationResourceManager

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

The NtLockFile routine requests a byte-range lock for the specified file.
NtManagePartition

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

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

Learn more about the NtOpenFile routine.
NtOpenProcess

The ZwOpenProcess routine opens a handle to a process object and sets the access rights to this object.
NtOpenProcessToken

The NtOpenProcessToken routine opens the access token associated with a process, and returns a handle that can be used to access that token.
NtOpenProcessTokenEx

The NtOpenProcessTokenEx routine opens the access token associated with a process, and returns a handle that can be used to access that token.
NtOpenResourceManager

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

The NtOpenThreadToken routine opens the access token associated with a thread, and returns a handle that can be used to access that token.
NtOpenThreadTokenEx

The NtOpenThreadTokenEx routine opens the access token associated with a thread.
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 sets or retrieves system power information.
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.
NtPrivilegeCheck

The NtPrivilegeCheck routine determines whether a specified set of privileges is enabled in the subject's access token.
NtQueryDirectoryFile

The NtQueryDirectoryFile routine returns various kinds of information about files in the directory specified by a given file handle.
NtQueryDirectoryFileEx

Learn more about NtQueryDirectoryFileEx
NtQueryInformationEnlistment

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

The NtQueryInformationFile routine returns various kinds of information about a file object.
NtQueryInformationResourceManager

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

The NtQueryInformationToken routine retrieves a specified type of information about an access token.
NtQueryInformationTransaction

The ZwQueryInformationTransaction routine retrieves information about a specified transaction.
NtQueryInformationTransactionManager

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

The NtQueryObject routine provides information about a supplied object. If the call occurs in user mode, use the name NtQueryObject.
NtQueryQuotaInformationFile

The NtQueryQuotaInformationFile routine retrieves quota entries associated with the volume specified by the FileHandle parameter.
NtQuerySecurityObject

The NtQuerySecurityObject routine retrieves a copy of an object's security descriptor. A security descriptor can be in absolute or self-relative form.
NtQueryVirtualMemory

Learn more about the NtQueryVirtualMemory function.
NtQueryVolumeInformationFile

This routine retrieves information about the volume associated with a given file, directory, storage device, or volume.
NtReadFile

Learn more about the NtReadFile routine.
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.
NtSetInformationFile

The NtSetInformationFile routine in ntifs.h changes various kinds of information about a file object.
NtSetInformationResourceManager

The ZwSetInformationResourceManager routine is not used.
NtSetInformationThread

Learn how the ZwSetInformationThread routine sets the priority of a thread.
NtSetInformationToken

The NtSetInformationToken routine modifies information in a specified token. The calling process must have access rights to set the information.
NtSetInformationTransaction

The ZwSetInformationTransaction routine sets information for a specified transaction.
NtSetInformationTransactionManager

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

The NtSetQuotaInformationFile routine changes quota entries for the volume associated with the FileHandle parameter.
NtSetSecurityObject

Learn more about the NtSetSecurityObject routine.
NtSinglePhaseReject

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

The NtUnlockFile routine in unlocks a byte-range lock in a file. If the call is in user mode, use the name NtUnlockFile instead of ZwUnlockFile.
NtWriteFile

Learn more about the NtWriteFile routine.
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.
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_PROCESS_NOTIFY_ROUTINE

Process-creation callback implemented by a driver to track the system-wide creation and deletion of processes against the driver's internal state.
PCREATE_PROCESS_NOTIFY_ROUTINE_EX

A callback routine implemented by a driver to notify the caller when a process is created or exits.
PCREATE_THREAD_NOTIFY_ROUTINE

A callback routine implemented by a driver to notify the caller when a thread is created or deleted.
PEP_ACPI_INITIALIZE_EXTENDED_IO_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_EXTENDED_IO_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_EXTENDED_ADDRESS structure.
PEP_ACPI_INITIALIZE_EXTENDED_IO_RESOURCE

The PEP_ACPI_INITIALIZE_EXTENDED_IO_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_EXTENDED_ADDRESS structure.
PEP_ACPI_INITIALIZE_EXTENDED_MEMORY_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_EXTENDED_MEMORY_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_EXTENDED_ADDRESS structure.
PEP_ACPI_INITIALIZE_EXTENDED_MEMORY_RESOURCE

The PEP_ACPI_INITIALIZE_EXTENDED_MEMORY_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_EXTENDED_ADDRESS structure.
PEP_ACPI_INITIALIZE_GPIO_INT_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_GPIO_INT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_GPIO_RESOURCE structure.
PEP_ACPI_INITIALIZE_GPIO_INT_RESOURCE

The PEP_ACPI_INITIALIZE_GPIO_INT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_GPIO_RESOURCE structure.
PEP_ACPI_INITIALIZE_GPIO_IO_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_GPIO_IO_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_GPIO_RESOURCE structure.
PEP_ACPI_INITIALIZE_GPIO_IO_RESOURCE

The PEP_ACPI_INITIALIZE_GPIO_IO_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_GPIO_RESOURCE structure.
PEP_ACPI_INITIALIZE_INTERRUPT_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_INTERRUPT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_INTERRUPT_RESOURCE structure.
PEP_ACPI_INITIALIZE_INTERRUPT_RESOURCE

The PEP_ACPI_INITIALIZE_INTERRUPT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_INTERRUPT_RESOURCE structure.
PEP_ACPI_INITIALIZE_IOPORT_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_IOPORT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_IO_MEMORY_RESOURCE structure.
PEP_ACPI_INITIALIZE_IOPORT_RESOURCE

The PEP_ACPI_INITIALIZE_IOPORT_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_IO_MEMORY_RESOURCE structure.
PEP_ACPI_INITIALIZE_MEMORY_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_MEMORY_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_IO_MEMORY_RESOURCE structure.
PEP_ACPI_INITIALIZE_MEMORY_RESOURCE

The PEP_ACPI_INITIALIZE_MEMORY_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_IO_MEMORY_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_I2C_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_SPB_I2C_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_I2C_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_I2C_RESOURCE

The PEP_ACPI_INITIALIZE_SPB_I2C_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_I2C_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_SPI_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_SPB_SPI_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_SPI_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_SPI_RESOURCE

The PEP_ACPI_INITIALIZE_SPB_SPI_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_SPI_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_UART_RESOURCE

Learn how the PEP_ACPI_INITIALIZE_SPB_UART_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_UART_RESOURCE structure.
PEP_ACPI_INITIALIZE_SPB_UART_RESOURCE

The PEP_ACPI_INITIALIZE_SPB_UART_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_UART_RESOURCE structure.
PEPCALLBACKNOTIFYACPI

Learn how an AcceptAcpiNotification event callback routine handles ACPI notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYACPI

An AcceptAcpiNotification event callback routine handles ACPI notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYDPM

Learn how an AcceptDeviceNotification event callback routine handles device power management (DPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYDPM

An AcceptDeviceNotification event callback routine handles device power management (DPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYPPM

Learn how an AcceptProcessorNotification event callback routine handles processor power management (PPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYPPM

An AcceptProcessorNotification event callback routine handles processor power management (PPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKPOWERONCRASHDUMPDEVICE

Learn how the PowerOnDumpDeviceCallback callback routine turns on the crash-dump device.
PEPCALLBACKPOWERONCRASHDUMPDEVICE

The PowerOnDumpDeviceCallback callback routine turns on the crash-dump device.
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_LOCATION_STRING

The PnpGetLocationString routine provides the device-specific part of the device's SPDRP_LOCATION_PATHS property.
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.
pHalExamineMBR

The pHalExamineMBR callback function is invoked to read the master boot record (MBR) of a disk and return the MBR data if the MBR is of the specified type.
pHalQuerySystemInformation

The pHalQuerySystemInformation callback function reads the MCA banks' status registers.
pHalSetSystemInformation

Register MCA driver with the HAL.
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 (miniport.h) decrements the reference count on a driver-defined interface.
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 (miniport.h) increments 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.
PLOAD_IMAGE_NOTIFY_ROUTINE

Called by the operating system to notify the driver when a driver image or a user image (for example, a DLL or EXE) is mapped into virtual memory.
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.
PoCallDriver

The PoCallDriver routine in ntifs.h passes a power IRP to the next-lower driver in the device stack. (Windows Server 2003, Windows XP, and Windows 2000 only.).
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

Learn more about the PoClearPowerRequest routine.
PoClearPowerRequest

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

Learn more about the PoCreatePowerRequest routine.
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

Learn more about the PoDeletePowerRequest routine.
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

Learn more about the PoEndDeviceBusy routine.
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.
POFXCALLBACKCRITICALRESOURCE

Learn how the TransitionCriticalResource routine changes the active/inactive state of a core system component.
POFXCALLBACKCRITICALRESOURCE

The TransitionCriticalResource routine changes the active/inactive state of a core system component.
POFXCALLBACKENUMERATEUNMASKEDINTERRUPTS

Learn how the EnumerateUnmaskedInterrupts routine enumerates interrupt sources whose interrupts are unmasked and enabled.
POFXCALLBACKENUMERATEUNMASKEDINTERRUPTS

The EnumerateUnmaskedInterrupts routine enumerates interrupt sources whose interrupts are unmasked and enabled.
POFXCALLBACKPLATFORMIDLEVETO

Learn how the PlatformIdleVeto routine increments or decrements the veto count for a veto code for a platform idle state.
POFXCALLBACKPLATFORMIDLEVETO

The PlatformIdleVeto routine increments or decrements the veto count for a veto code for a platform idle state.
POFXCALLBACKPROCESSORHALT

Learn how the ProcessorHalt routine prepares the processor to be halted.
POFXCALLBACKPROCESSORHALT

The ProcessorHalt routine prepares the processor to be halted.
POFXCALLBACKPROCESSORIDLEVETO

Learn how the ProcessorIdleVeto routine increments or decrements the veto count for a veto code for a processor idle state.
POFXCALLBACKPROCESSORIDLEVETO

The ProcessorIdleVeto routine increments or decrements the veto count for a veto code for a processor idle state.
POFXCALLBACKREQUESTCOMMON

Learn how the RequestCommon routine is a generic request handler.
POFXCALLBACKREQUESTCOMMON

The RequestCommon routine is a generic request handler.
POFXCALLBACKREQUESTINTERRUPT

Learn how the RequestInterrupt routine requests that the operating system replay an edge-triggered interrupt that might have been lost while the hardware platform was in a low-power state.
POFXCALLBACKREQUESTINTERRUPT

The RequestInterrupt routine requests that the operating system replay an edge-triggered interrupt that might have been lost while the hardware platform was in a low-power state.
POFXCALLBACKREQUESTWORKER

Learn how the RequestWorker routine is called by a platform extension plug-in (PEP) to inform the Windows power management framework (PoFx) that the platform extension plug-in (PEP) has a work request to submit on behalf of the specified device.
POFXCALLBACKREQUESTWORKER

The RequestWorker routine is called by a platform extension plug-in (PEP) to inform the Windows power management framework (PoFx) that the platform extension plug-in (PEP) has a work request to submit on behalf of the specified device.
POFXCALLBACKUPDATEPLATFORMIDLESTATE

Learn how the UpdatePlatformIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified platform idle state.
POFXCALLBACKUPDATEPLATFORMIDLESTATE

The UpdatePlatformIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified platform idle state.
POFXCALLBACKUPDATEPROCESSORIDLESTATE

Learn how the UpdateProcessorIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified processor idle state.
POFXCALLBACKUPDATEPROCESSORIDLESTATE

The UpdateProcessorIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified processor idle state.
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).
PoFxRegisterCoreDevice

Learn how the PoFxRegisterCoreDevice routine registers a new core system resource with the Windows power management framework (PoFx).
PoFxRegisterCoreDevice

The PoFxRegisterCoreDevice routine registers a new core system resource with the Windows 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).
PoFxRegisterPlugin

Learn how the PoFxRegisterPlugin routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterPlugin

The PoFxRegisterPlugin routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterPluginEx

Learn how the PoFxRegisterPluginEx routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterPluginEx

The PoFxRegisterPluginEx routine registers a platform extension plug-in (PEP) with the Windows 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

Learn more about the PoQueryWatchdogTime routine.
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

Learn more about the PoRegisterDeviceForIdleDetection routine.
PoRegisterDeviceForIdleDetection

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

Learn more about the PoRegisterPowerSettingCallback routine.
PoRegisterPowerSettingCallback

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

Learn more about the PoRegisterSystemState routine.
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

Learn more about the PoSetDeviceBusyEx routine.
PoSetDeviceBusyEx

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

Learn more about the PoSetPowerRequest function.
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

Learn more about the PoSetPowerState function.
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 ntifs.h marks the start of a period of time in which the device is busy.
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 ntifs.h signals the power manager that the driver is ready to handle the next power IRP.
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 ntifs.h unregisters a power-setting callback routine that a driver previously registered.
PoUnregisterPowerSettingCallback

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

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

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

Learn more about: PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER callback function
PPHYSICAL_COUNTER_OVERFLOW_HANDLER

The PPHYSICAL_COUNTER_OVERFLOW_HANDLER is implemented by the client driver to handle overflows from the counters resources acquired through the HalAllocateHardwareCounters routine.
PPO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK

Learn how an EnumerateInterruptSource callback routine supplies a platform extension plug-in (PEP) with information about an interrupt source.
PPO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK

An EnumerateInterruptSource callback routine supplies a platform extension plug-in (PEP) with information about an interrupt source.
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.
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.
PROCESSOR_HALT_ROUTINE

A Halt callback routine transitions the processor to an idle state.
PsAllocateAffinityToken

The PsAllocateAffinityToken function allocates a thread affinity token.
PsAllocSiloContextSlot

This routine allocates a slot that can be used to insert, retrieve, and delete an object in all silos.
PsAttachSiloToCurrentThread

This routine places a thread temporarily into the specified Silo.
PsCreateSiloContext

This routine creates an object that will be inserted in a Silo.
PsCreateSystemThread

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

This routine decrements the reference count on the object.
PsDetachSiloFromCurrentThread

This routine removes a thread from a silo which was added by an attach. For more info about attaching, see the PsAttachSiloToCurrentThread routine.
PsFreeAffinityToken

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

This routine frees the specified slot and makes it available in the system. It undoes the effects of the PsAllocSiloContextSlot routine.
PsGetCurrentProcessId

The PsGetCurrentProcessId routine identifies the current thread's process.
PsGetCurrentServerSilo

This routine returns the effective server silo for the thread.
PsGetCurrentSilo

This routine returns the current silo for the calling thread. First the thread is checked to see if it has been attached to a silo. If not, then the thread is checked to see if it is in a silo.
PsGetCurrentThread

The PsGetCurrentThread routine identifies the current thread.
PsGetCurrentThread

Learn how the PsGetCurrentThread routine identifies the current thread.
PsGetCurrentThread

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

The PsGetCurrentThreadId routine identifies the current thread.
PsGetCurrentThreadTeb

The PsGetCurrentThreadTeb routine returns the Thread Environment Block (TEB) of the current thread. The call must be made in kernel-mode.
PsGetEffectiveServerSilo

This routine traverses the parent chain of the Silo until finding the effective server silo or host silo.
PsGetHostSilo

This routine returns the host silo.
PsGetJobServerSilo

This routine returns the effective ServerSilo for the job. The returned pointer is valid as long as the supplied Job object remains referenced.
PsGetJobSilo

This routine returns the first job in the hierarchy that is a Silo. The returned pointer is valid as long as the supplied Job object remains referenced.
PsGetParentSilo

Retrieves the most immediate parent silo in the hierarchy for a given job object.
PsGetPermanentSiloContext

This routine retrieves an object that was inserted in the Silo without incrementing the reference count.
PsGetProcessCreateTimeQuadPart

The PsGetProcessCreateTimeQuadPart routine returns a LONGLONG value that represents the time at which the process was created.
PsGetProcessExitStatus

PsGetProcessId

The PsGetProcessId routine returns the process identifier (process ID) that is associated with a specified process.
PsGetProcessStartKey

PsGetServerSiloActiveConsoleId

Gets the active console for the current server silo context for the supplied thread.
PsGetSiloContainerId

Gets the ContainerId for the given Silo.
PsGetSiloContext

This routine retrieves the silo context from the specified silo and slot.
PsGetSiloMonitorContextSlot

This routine returns the silo context slot that was allocated by the monitor during the registration.
PsGetThreadCreateTime

PsGetThreadExitStatus

PsGetThreadId

PsGetThreadProcessId

The PsGetThreadProcessId routine returns the process identifier that is associated with a specified thread's process.
PsGetThreadProperty

PsGetThreadServerSilo

Determines whether the given thread is a silo.
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.
PsInsertPermanentSiloContext

This routine inserts an object in an empty slot in a Silo.
PsInsertSiloContext

Learn how this routine inserts an object in an empty slot in a Silo.
PsIsHostSilo

This routine will check if the supplied Silo is the host silo.
PsIsSystemThread

The PsIsSystemThread routine checks whether a given thread is a system thread.
PsMakeSiloContextPermanent

This routine makes the slot in a silo instance read-only, allowing the object in the slot to be retrieved without affecting the reference count on that object.
PsQueryTotalCycleTimeProcess

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

This routine increments the reference count on the object.
PsRegisterSiloMonitor

This routine registers a server silo monitor that can receive notifications about server silo events.
PsRemoveCreateThreadNotifyRoutine

The PsRemoveCreateThreadNotifyRoutine routine removes a callback routine that was registered by the PsSetCreateThreadNotifyRoutine routine.
PsRemoveLoadImageNotifyRoutine

The PsRemoveLoadImageNotifyRoutine routine removes a callback routine that was registered by the PsSetLoadImageNotifyRoutine routine.
PsRemoveSiloContext

This routine removes an object that was inserted in the Silo.
PsReplaceSiloContext

This routine inserts an object in a Silo.
PsRevertToUserMultipleGroupAffinityThread

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

The PsSetCreateProcessNotifyRoutine routine adds a driver-supplied callback routine to, or removes it from, a list of routines to be called whenever a process is created or deleted.
PsSetCreateProcessNotifyRoutineEx

The PsSetCreateProcessNotifyRoutineEx routine registers or removes a callback routine that notifies the caller when a process is created or exits.
PsSetCreateProcessNotifyRoutineEx2

The PsSetCreateProcessNotifyRoutineEx2 routine registers or removes a callback routine that notifies the caller when a process is created or deleted.
PsSetCreateThreadNotifyRoutine

The PsSetCreateThreadNotifyRoutine routine registers a driver-supplied callback that is subsequently notified when a new thread is created and when such a thread is deleted.
PsSetCreateThreadNotifyRoutineEx

The PsSetCreateThreadNotifyRoutineEx routine registers a driver-supplied callback that is subsequently notified when a new thread is created and when such a thread is deleted.
PsSetLoadImageNotifyRoutine

The PsSetLoadImageNotifyRoutine routine registers a driver-supplied callback that is subsequently notified whenever an image is loaded (or mapped into memory).
PsSetLoadImageNotifyRoutineEx

The PsSetLoadImageNotifyRoutineEx routine registers a driver-supplied callback that is subsequently notified whenever an image is loaded (or mapped into memory).
PsSetSystemMultipleGroupAffinityThread

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

This routine tries to start the server silo monitor.
PsTerminateServerSilo

This routine terminates the specified silo.
PsTerminateSystemThread

The PsTerminateSystemThread routine terminates the current system thread.
PsUnregisterSiloMonitor

This routine unregisters a server silo monitor.
PTM_RM_NOTIFICATION

A resource manager's ResourceManagerNotification callback routine receives and handles transaction notifications.
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 (miniport.h) reads a number of bytes from the specified port address into a buffer.
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 (miniport.h) reads a number of ULONG values 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 (miniport.h) reads a number of USHORT 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 (ioaccess.h) returns a byte that is read from the specified port address in resident, mapped device memory.
READ_PORT_UCHAR

The READ_PORT_UCHAR function (miniport.h) returns a byte that is read from the specified port address in resident, mapped device memory.
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 (ioaccess.h) returns a ULONG value that is read from the specified port address in resident, mapped device memory.
READ_PORT_ULONG

The READ_PORT_ULONG function (miniport.h) returns a ULONG value 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 (ioaccess.h) returns a USHORT value that is read from the specified port address in resident, mapped device memory.
READ_PORT_USHORT

The READ_PORT_USHORT function (miniport.h) returns a USHORT 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 (miniport.h) reads a number of bytes from the specified register address into a buffer.
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 (miniport.h) reads a number of ULONG values 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 (miniport.h) reads a number of USHORT 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 (ioaccess.h) returns a byte read from the specified register address in resident, mapped device memory.
READ_REGISTER_UCHAR

The READ_REGISTER_UCHAR function (miniport.h) returns a byte read from the specified register address in resident, mapped device memory.
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 (ioaccess.h) returns a ULONG value read from the specified register address in resident, mapped device memory.
READ_REGISTER_ULONG

The READ_REGISTER_ULONG function (miniport.h) returns a ULONG value 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 (ioaccess.h) returns a USHORT value read from the specified register address in resident, mapped device memory.
READ_REGISTER_USHORT

The READ_REGISTER_USHORT function (miniport.h) returns a USHORT value read from the specified register address in resident, mapped device memory.
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

Describes the ReadBooleanRaw function.
ReadBooleanRaw

This topic describes the ReadBooleanRaw function.
ReadInt32Acquire

This topic describes the ReadInt32Acquire function.
ReadInt32Acquire

The ReadInt32Acquire function...
ReadInt32NoFence

This topic describes the ReadInt32NoFence function.
ReadInt32NoFence

The ReadInt32NoFence function...
ReadInt32Raw

This topic describes the ReadInt32Raw function.
ReadInt32Raw

The ReadInt32Raw function...
ReadUInt32Acquire

This topic describes the ReadUInt32Acquire function.
ReadUInt32Acquire

The ReadUInt32Acquire function...
ReadUInt32NoFence

This topic describes the ReadUInt32NoFence function.
ReadUInt32NoFence

The ReadUInt32NoFence function...
ReadUInt32Raw

This topic describes the ReadUInt32Raw 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.
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.
RTL_RUN_ONCE_INIT_FN

The RunOnceInitialization routine performs a one-time initialization operation.
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.
RtlByteToChar

Converts a value of type BYTE to a value of type CHAR.
RtlByteToInt8

Converts a value of type BYTE to a value of type INT8.
RtlCharToInteger

The RtlCharToInteger routine converts a single-byte character string to an integer value in the specified base.
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.
RtlCompareString

The RtlCompareString routine compares two counted strings.
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.
RtlConvertLongToLuid

The RtlConvertLongToLuid routine converts a long integer to a locally unique identifier (LUID), which is used by the system to represent a security privilege.
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.
RtlConvertUlongToLuid

The RtlConvertUlongToLuid routine converts an unsigned long integer to a locally unique identifier (LUID), which is used by the system to represent a security privilege.
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.
RtlCopyString

The RtlCopyString routine copies a source string to a destination string.
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.
RtlDWordPtrAdd

Adds two values of type DWORD_PTR.
RtlDWordPtrMult

Multiplies one value of type DWORD_PTR by another.
RtlDWordPtrSub

Subtracts one value of type DWORD_PTR from another.
RtlEqualMemory

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

The RtlEqualString routine compares two counted strings to determine whether they are equal.
RtlEqualUnicodeString

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

This routine extends the supplied correlation vector. For a correlation vector of the form X.i, the extended value is X.i.0.
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.
RtlGetEnabledExtendedFeatures

The RtlGetEnabledExtendedFeatures routine returns a mask of extended processor features that are enabled by the system.
RtlGetPersistedStateLocation

Retrieves the redirected location for the specified SourceID from the redirection map.
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.
RtlIncrementCorrelationVector

Increments the specified correlation vector. For a correlation vector of the form X.i, the incremented value is be X.(i+1).
RtlInitAnsiString

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

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

Initializes the specified correlation vector with the supplied GUID.
RtlInitString

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

The RtlInitStringEx routine in ntifs.h initializes a counted string of 8-bit characters. RtlInitStringEx does not alter the source string.
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.
RtlInt8Add

Adds two values of type INT8.
RtlInt8Mult

Multiplies one value of type INT8 by another.
RtlInt8Sub

Subtracts one value of type INT8 from another.
RtlInt8ToUChar

Converts a value of type INT8 to a value of type UCHAR.
RtlInt8ToUInt

Converts a value of type INT8 to a value of type UINT.
RtlInt8ToUInt8

Converts a value of type INT8 to a value of type UINT8.
RtlInt8ToUIntPtr

Converts a value of type INT8 to a value of type UINT_PTR.
RtlInt8ToULong

Converts a value of type INT8 to a value of type ULONG.
RtlInt8ToULongLong

Converts a value of type INT8 to a value of type ULONGLONG.
RtlInt8ToULongPtr

Converts a value of type INT8 to a value of type ULONG_PTR.
RtlInt8ToUShort

Converts a value of type INT8 to a value of type USHORT.
RtlIntAdd

Adds two values of type INT.
RtlIntegerToUnicodeString

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

Multiplies one value of type INT by another.
RtlIntPtrAdd

Adds two values of type INT_PTR.
RtlIntPtrMult

Multiplies one value of type INT_PTR by another.
RtlIntPtrSub

Subtracts one value of type INT_PTR from another.
RtlIntPtrToChar

Converts a value of type INT_PTR to a value of type CHAR.
RtlIntPtrToInt

Converts a value of type INT_PTR to a value of type INT.
RtlIntPtrToInt8

Converts a value of type INT_PTR to a value of type INT8.
RtlIntPtrToLong

Converts a value of type INT_PTR to a value of type LONG.
RtlIntPtrToLongPtr

Converts a value of type INT_PTR to a value of type LONG_PTR.
RtlIntPtrToShort

Converts a value of type INT_PTR to a value of type SHORT.
RtlIntPtrToUChar

Converts a value of type INT_PTR to a value of type UCHAR.
RtlIntPtrToUInt

Converts a value of type INT_PTR to a value of type UINT.
RtlIntPtrToUInt8

Converts a value of type INT_PTR to a value of type UINT8.
RtlIntPtrToUIntPtr

Converts a value of type INT_PTR to a value of type UINT_PTR.
RtlIntPtrToULong

Converts a value of type INT_PTR to a value of type ULONG.
RtlIntPtrToULongLong

Converts a value of type INT_PTR to a value of type ULONGLONG.
RtlIntPtrToULongPtr

Converts a value of type INT_PTR to a value of type ULONG_PTR.
RtlIntPtrToUnicodeString

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

Converts a value of type INT_PTR to a value of type USHORT.
RtlIntSub

Subtracts one value of type INT from another.
RtlIntToChar

Converts a value of type INT to a value of type CHAR.
RtlIntToInt8

Converts a value of type INT to a value of type INT8.
RtlIntToShort

Converts a value of type INT to a value of type SHORT.
RtlIntToUChar

Converts a value of type INT to a value of type UCHAR.
RtlIntToUInt

Converts a value of type INT to a value of type UINT.
RtlIntToUInt8

Converts a value of type INT to a value of type UINT8.
RtlIntToULong

Converts a value of type INT to a value of type ULONG.
RtlIntToULongLong

Converts a value of type INT to a value of type ULONGLONG.
RtlIntToUShort

Converts a value of type INT to a value of type USHORT.
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.
RtlIsStateSeparationEnabled

Checks if the SKU for the current context supports multiple sessions.
RtlIsZeroMemory

This routine checks if a block of unaligned memory is all zero.
RtlLengthSecurityDescriptor

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

Adds two values of type LONG.
RtlLongLongAdd

Adds two values of type LONGLONG.
RtlLongLongMult

Multiplies one value of type LONGLONG by another.
RtlLongLongSub

Subtracts one value of type LONGLONG from another.
RtlLongLongToChar

Converts a value of type LONGLONG to a value of type CHAR.
RtlLongLongToInt

Converts a value of type LONGLONG to a value of type INT.
RtlLongLongToInt8

Converts a value of type LONGLONG to a value of type INT8.
RtlLongLongToIntPtr

Converts a value of type LONGLONG to a value of type INT_PTR.
RtlLongLongToLong

Converts a value of type LONGLONG to a value of type LONG.
RtlLongLongToLongPtr

Converts a value of type LONGLONG to a value of type LONG_PTR.
RtlLongLongToShort

Converts a value of type LONGLONG to a value of type SHORT.
RtlLongLongToUChar

Converts a value of type LONGLONG to a value of type UCHAR.
RtlLongLongToUInt

Converts a value of type LONGLONG to a value of type UINT.
RtlLongLongToUInt8

Converts a value of type LONGLONG to a value of type UNIT8.
RtlLongLongToULong

Converts a value of type LONGLONG to a value of type ULONG.
RtlLongLongToULongLong

Converts a value of type LONGLONG to a value of type LONGLONG.
RtlLongLongToUShort

Converts a value of type LONGLONG to a value of type USHORT.
RtlLongMult

Multiplies one value of type LONG by another.
RtlLongPtrAdd

Adds two values of type LONG_PTR.
RtlLongPtrMult

Multiplies one value of type LONG_PTR by another.
RtlLongPtrSub

Subtracts one value of type LONG_PTR from another.
RtlLongPtrToChar

Converts a value of type LONG_PTR to a value of type CHAR.
RtlLongPtrToInt

Converts a value of type LONG_PTR to a value of type INT.
RtlLongPtrToInt8

Converts a value of type LONG_PTR to a value of type INT8.
RtlLongPtrToIntPtr

Converts a value of type LONG_PTR to a value of type INT_PTR.
RtlLongPtrToLong

Converts a value of type LONG_PTR to a value of type LONG.
RtlLongPtrToShort

Converts a value of type LONG_PTR to a value of type SHORT.
RtlLongPtrToUChar

Converts a value of type LONG_PTR to a value of type UCHAR.
RtlLongPtrToUInt

Converts a value of type LONG_PTR to a value of type UINT.
RtlLongPtrToUInt8

Converts a value of type LONG_PTR to a value of type UINT8.
RtlLongPtrToUIntPtr

Converts a value of type LONG_PTR to a value of type UINT_PTR.
RtlLongPtrToULong

Converts a value of type LONG_PTR to a value of type ULONG.
RtlLongPtrToULongLong

Converts a value of type LONG_PTR to a value of type ULONGLONG.
RtlLongPtrToULongPtr

Converts a value of type LONG_PTR to a value of type ULONG_PTR.
RtlLongPtrToUShort

Converts a value of type LONG_PTR to a value of type USHORT.
RtlLongSub

Subtracts one value of type LONG from another.
RtlLongToChar

Converts a value of type LONG to a value of type CHAR.
RtlLongToInt

Converts a value of type LONG to a value of type INT.
RtlLongToInt8

Converts a value of type LONG to a value of type INT8.
RtlLongToIntPtr

Converts a value of type LONG to a value of type INT_PTR.
RtlLongToShort

Converts a value of type LONG to a value of type SHORT.
RtlLongToUChar

Converts a value of type LONG to a value of type UCHAR.
RtlLongToUInt

Converts a value of type LONG to a value of type UINT.
RtlLongToUInt8

Converts a value of type LONG to a value of type UINT8.
RtlLongToUIntPtr

Converts a value of type LONG to a value of type UINT_PTR.
RtlLongToULong

Converts a value of type LONG to a value of type ULONG.
RtlLongToULongLong

Converts a value of type LONG to a value of type ULONGLONG.
RtlLongToULongPtr

Converts a value of type LONG to a value of type ULONG_PTR.
RtlLongToUShort

Converts a value of type LONG to a value of type USHORT.
RtlMapGenericMask

The RtlMapGenericMask routine determines the nongeneric access rights specified by an ACCESS_MASK.
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.
RtlNormalizeSecurityDescriptor

Examines a security descriptor for ways to modify its layout.
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.
RtlPrefixUnicodeString

The RtlPrefixUnicodeString routine compares two Unicode strings to determine whether one string is a prefix of the other.
RtlPtrdiffTAdd

Adds two values of type PTRDIFF_T.
RtlPtrdiffTMult

Multiplies one value of type PTRDIFF_T by another.
RtlPtrdiffTSub

Subtracts one value of type PTRDIFF_T from another.
RtlQueryRegistryValues

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

Retrieves a value entry for a registry key by using, a primary handle; if not found, uses the fallback handle.
RtlRaiseCustomSystemEventTrigger

Allows NT services and kernel-mode and user-mode drivers to raise a custom trigger for a device.
RtlRunOnceBeginInitialize

The RtlRunOnceBeginInitialize routine begins a one-time initialization.
RtlRunOnceComplete

The RtlRunOnceComplete routine completes the one-time initialization began by RtlRunOnceBeginInitialize.
RtlRunOnceExecuteOnce

The RtlRunOnceExecuteOnce performs a one-time initialization.
RtlRunOnceInitialize

The RtlRunOnceInitialize routine initializes a RTL_RUN_ONCE structure.
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.
RtlShortAdd

Adds two values of type SHORT.
RtlShortMult

Multiplies one value of type SHORT by another.
RtlShortSub

Subtracts one value of type SHORT from another.
RtlShortToChar

Converts a value of type SHORT to a value of type CHAR.
RtlShortToDWordPtr

Converts a value of type SHORT to a value of type DWORD_PTR.
RtlShortToInt8

Converts a value of type SHORT to a value of type INT8.
RtlShortToUChar

Converts a value of type SHORT to a value of type UCHAR.
RtlShortToUInt

Converts a value of type SHORT to a value of type UINT.
RtlShortToUInt8

Converts a value of type SHORT to a value of type UINT8.
RtlShortToUIntPtr

Converts a value of type SHORT to a value of type UINT_PTR.
RtlShortToULong

Converts a value of type SHORT to a value of type ULONG.
RtlShortToULongLong

Converts a value of type SHORT to a value of type ULONGLONG.
RtlShortToULongPtr

Converts a value of type SHORT to a value of type ULONG_PTR.
RtlShortToUShort

Converts a value of type SHORT to a value of type USHORT.
RtlSizeTAdd

Adds two values of type SIZE_T.
RtlSizeTMult

Multiplies one value of type SIZE_T by another.
RtlSizeTSub

Subtracts one value of type SIZE_T from another.
RtlSSIZETAdd

Adds two values of type SSIZE_T.
RtlSSIZETMult

Multiplies one value of type SSIZE_T by another.
RtlSSIZETSub

Subtracts one value of type SSIZE_T from another.
RtlStringCbCatA

The RtlStringCbCatW and RtlStringCbCatA functions concatenate two byte-counted strings.
RtlStringCbCatExA

The RtlStringCbCatExW and RtlStringCbCatExA functions concatenate two byte-counted strings.
RtlStringCbCatExW

Learn how the RtlStringCbCatExW and RtlStringCbCatExA functions concatenate two byte-counted strings.
RtlStringCbCatNA

The RtlStringCbCatNW and RtlStringCbCatNA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNExA

The RtlStringCbCatNExW and RtlStringCbCatNExA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNExW

Learn how the RtlStringCbCatNExW and RtlStringCbCatNExA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNW

Learn how the RtlStringCbCatNW and RtlStringCbCatNA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatW

Learn how the RtlStringCbCatW and RtlStringCbCatA functions concatenate two byte-counted strings.
RtlStringCbCopyA

The RtlStringCbCopyW and RtlStringCbCopyA functions copy a byte-counted string into a buffer.
RtlStringCbCopyExA

The RtlStringCbCopyExW and RtlStringCbCopyExA functions copy a byte-counted string into a buffer.
RtlStringCbCopyExW

Learn how the RtlStringCbCopyExW and RtlStringCbCopyExA functions copy a byte-counted string into a buffer.
RtlStringCbCopyNA

The RtlStringCbCopyNW and RtlStringCbCopyNA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNExA

The RtlStringCbCopyNExW and RtlStringCbCopyNExA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNExW

Learn how the RtlStringCbCopyNExW and RtlStringCbCopyNExA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNW

Learn how the RtlStringCbCopyNW and RtlStringCbCopyNA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyUnicodeString

The RtlStringCbCopyUnicodeString function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCbCopyUnicodeStringEx

The RtlStringCbCopyUnicodeStringEx function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCbCopyW

Learn how the RtlStringCbCopyW and RtlStringCbCopyA functions copy a byte-counted string into a buffer.
RtlStringCbLengthA

The RtlStringCbLengthW and RtlStringCbLengthA functions determine the length, in bytes, of a supplied string.
RtlStringCbLengthW

Learn how the RtlStringCbLengthW and RtlStringCbLengthA functions determine the length, in bytes, of a supplied string.
RtlStringCbPrintfA

The RtlStringCbPrintfW and RtlStringCbPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfExA

The RtlStringCbPrintfExW and RtlStringCbPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfExW

Learn how the RtlStringCbPrintfExW and RtlStringCbPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfW

Learn how the RtlStringCbPrintfW and RtlStringCbPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfA

The RtlStringCbVPrintfW and RtlStringCbVPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfExA

The RtlStringCbVPrintfExW and RtlStringCbVPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfExW

Learn how the RtlStringCbVPrintfExW and RtlStringCbVPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfW

Learn how the RtlStringCbVPrintfW and RtlStringCbVPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchCatA

The RtlStringCchCatW and RtlStringCchCatA functions concatenate two character-counted strings.
RtlStringCchCatExA

The RtlStringCchCatExW and RtlStringCchCatExA functions concatenate two character-counted strings.
RtlStringCchCatExW

Learn how the RtlStringCchCatExW and RtlStringCchCatExA functions concatenate two character-counted strings.
RtlStringCchCatNA

The RtlStringCchCatNW and RtlStringCchCatNA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNExA

The RtlStringCchCatNExW and RtlStringCchCatNExA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNExW

Learn how the RtlStringCchCatNExW and RtlStringCchCatNExA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNW

Learn how the RtlStringCchCatNW and RtlStringCchCatNA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatW

Learn how the RtlStringCchCatW and RtlStringCchCatA functions concatenate two character-counted strings.
RtlStringCchCopyA

The RtlStringCchCopyW and RtlStringCchCopyA functions copy a null-terminated source string into a destination buffer of specified length.
RtlStringCchCopyExA

The RtlStringCchCopyExW and RtlStringCchCopyExA functions copy a character-counted string into a buffer.
RtlStringCchCopyExW

Learn how the RtlStringCchCopyExW and RtlStringCchCopyExA functions copy a character-counted string into a buffer.
RtlStringCchCopyNA

The RtlStringCchCopyNW and RtlStringCchCopyNA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNExA

The RtlStringCchCopyNExW and RtlStringCchCopyNExA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNExW

Learn how the RtlStringCchCopyNExW and RtlStringCchCopyNExA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNW

Learn how the RtlStringCchCopyNW and RtlStringCchCopyNA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyUnicodeString

The RtlStringCchCopyUnicodeString function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCchCopyUnicodeStringEx

The RtlStringCchCopyUnicodeStringEx function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCchCopyW

Learn how the RtlStringCchCopyW and RtlStringCchCopyA functions copy a null-terminated source string into a destination buffer of specified length.
RtlStringCchLengthA

The RtlStringCchLengthW and RtlStringCchLengthA functions determine the length, in characters, of a supplied string.
RtlStringCchLengthW

Learn how the RtlStringCchLengthW and RtlStringCchLengthA functions determine the length, in characters, of a supplied string.
RtlStringCchPrintfA

The RtlStringCchPrintfW and RtlStringCchPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfExA

The RtlStringCchPrintfExW and RtlStringCchPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfExW

Learn how the RtlStringCchPrintfExW and RtlStringCchPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfW

Learn how the RtlStringCchPrintfW and RtlStringCchPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfA

The RtlStringCchVPrintfW and RtlStringCchVPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfExA

The RtlStringCchVPrintfExW and RtlStringCchVPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfExW

Learn how the RtlStringCchVPrintfExW and RtlStringCchVPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfW

Learn how the RtlStringCchVPrintfW and RtlStringCchVPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
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.
RtlUInt8Add

Adds two values of type UINT8.
RtlUInt8Mult

Multiplies one value of type UINT8 by another.
RtlUInt8Sub

The RtlUInt8Sub routine subtracts one value of type UINT8 from another.
RtlUInt8ToChar

Converts a value of type UINT8 to a value of type CHAR.
RtlUInt8ToInt8

Converts a value of type UINT8 to a value of type INT8.
RtlUIntAdd

Adds two values of type UINT.
RtlUIntMult

Multiplies one value of type UINT by another.
RtlUIntPtrAdd

Adds two values of type UINT_PTR.
RtlUIntPtrMult

Multiplies one value of type UINT_PTR by another.
RtlUIntPtrSub

Subtracts one value of type UINT_PTR from another.
RtlUIntPtrToChar

Converts a value of type UINT_PTR to a value of type CHAR.
RtlUIntPtrToInt

Converts a value of type UINT_PTR to a value of type INT.
RtlUIntPtrToInt16

Converts a value of type UINT_PTR to a value of type INT16.
RtlUIntPtrToInt8

Converts a value of type UINT_PTR to a value of type INT8.
RtlUIntPtrToIntPtr

Converts a value of type UINT_PTR to a value of type INT_PTR.
RtlUIntPtrToLong

Converts a value of type UINT_PTR to a value of type LONG.
RtlUIntPtrToLongLong

Converts a value of type UINT_PTR to a value of type LONGLONG.
RtlUIntPtrToLongPtr

Converts a value of type UINT_PTR to a value of type LONG_PTR.
RtlUIntPtrToShort

Converts a value of type UINT_PTR to a value of type SHORT.
RtlUIntPtrToUChar

Converts a value of type UINT_PTR to a value of type UCHAR.
RtlUIntPtrToUInt

Converts a value of type UINT_PTR to a value of type UINT.
RtlUIntPtrToUInt16

Converts a value of type UINT_PTR to a value of type UINT16.
RtlUIntPtrToUInt8

Converts a value of type UINT_PTR to a value of type UINT8.
RtlUIntPtrToULong

Learn how this function converts a value of type UINT_PTR to a value of type LONG.
RtlUIntPtrToUShort

Converts a value of type UINT_PTR to a value of type USHORT.
RtlUIntSub

Subtracts one value of type UINT from another.
RtlUIntToChar

Converts a value of type UINT to a value of type CHAR.
RtlUIntToInt

Converts a value of type UINT to a value of type INT.
RtlUIntToInt8

Converts a value of type UINT to a value of type INT8.
RtlUIntToIntPtr

Converts a value of type UINT to a value of type INT_PTR.
RtlUIntToLong

Converts a value of type UINT to a value of type LONG.
RtlUIntToLongPtr

Converts a value of type UINT to a value of type LONG_PTR.
RtlUIntToShort

Converts a value of type UINT to a value of type SHORT.
RtlUIntToUChar

Converts a value of type UINT to a value of type UCHAR.
RtlUIntToUInt8

Converts a value of type UINT to a value of type UINT8.
RtlUIntToUShort

Converts a value of type UINT to a value of type USHORT.
RtlULongAdd

Adds two values of type ULONG.
RtlUlongByteSwap

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

Adds two values of type ULONGLONG.
RtlUlonglongByteSwap

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

Multiplies one value of type ULONGLONG by another.
RtlULongLongSub

Subtracts one value of type ULONGLONG from another.
RtlULongLongToChar

Converts a value of type ULONGLONG to a value of type CHAR.
RtlULongLongToInt

Converts a value of type ULONGLONG to a value of type INT.
RtlULongLongToInt8

Converts a value of type ULONGLONG to a value of type INT8.
RtlULongLongToLong

Converts a value of type ULONGLONG to a value of type LONG.
RtlULongLongToLongLong

Converts a value of type ULONGLONG to a value of type LONGLONG.
RtlULongLongToLongPtr

Converts a value of type ULONGLONG to a value of type LONG_PTR.
RtlULongLongToShort

Converts a value of type ULONGLONG to a value of type SHORT.
RtlULongLongToUChar

Converts a value of type ULONGLONG to a value of type UCHAR.
RtlULongLongToUInt

Converts a value of type ULONGLONG to a value of type UINT.
RtlULongLongToUInt8

Converts a value of type ULONGLONG to a value of type UINT8.
RtlULongLongToUIntPtr

Converts a value of type ULONGLONG to a value of type UINT_PTR.
RtlULongLongToULong

Converts a value of type ULONGLONG to a value of type ULONG.
RtlULongLongToULongPtr

Converts a value of type ULONGLONG to a value of type ULONG_PTR.
RtlULongLongToUShort

Converts a value of type ULONGLONG to a value of type USHORT.
RtlULongMult

Multiplies one value of type ULONG by another.
RtlULongPtrAdd

Adds two values of type ULONG_PTR.
RtlULongPtrMult

Multiplies one value of type ULONG_PTR by another.
RtlULongPtrSub

Subtracts one value of type ULONG_PTR from another.
RtlULongPtrToChar

Converts a value of type ULONG_PTR to a value of type CHAR.
RtlULongPtrToInt

Converts a value of type ULONG_PTR to a value of type INT.
RtlULongPtrToInt8

Converts a value of type ULONG_PTR to a value of type INT8.
RtlULongPtrToIntPtr

Converts a value of type ULONG_PTR to a value of type INT_PTR.
RtlULongPtrToLong

Converts a value of type ULONG_PTR to a value of type LONG.
RtlULongPtrToLongLong

Converts a value of type ULONG_PTR to a value of type LONGLONG.
RtlULongPtrToLongPtr

Converts a value of type ULONG_PTR to a value of type LONG_PTR.
RtlULongPtrToShort

Converts a value of type ULONG_PTR to a value of type SHORT.
RtlULongPtrToUChar

Converts a value of type ULONG_PTR to a value of type UCHAR.
RtlULongPtrToUInt

Converts a value of type ULONG_PTR to a value of type UINT.
RtlULongPtrToUInt8

Converts a value of type ULONG_PTR to a value of type UINT8.
RtlULongPtrToUIntPtr

Converts a value of type ULONG_PTR to a value of type UINT_PTR.
RtlULongPtrToULong

Converts a value of type ULONG_PTR to a value of type ULONG.
RtlULongPtrToUShort

Converts a value of type ULONG_PTR to a value of type USHORT.
RtlULongSub

Subtracts one value of type ULONG from another.
RtlULongToChar

Converts a value of type ULONG to a value of type CHAR.
RtlULongToInt

Converts a value of type ULONG to a value of type INT.
RtlULongToInt8

Converts a value of type ULONG to a value of type INT8.
RtlULongToIntPtr

Converts a value of type ULONG to a value of type INT_PTR.
RtlULongToLong

Converts a value of type ULONG to a value of type LONG.
RtlULongToLongPtr

Converts a value of type ULONG to a value of type LONG_PTR.
RtlULongToShort

Converts a value of type ULONG to a value of type SHORT.
RtlULongToUChar

Converts a value of type ULONG to a value of type UCHAR.
RtlULongToUInt

Converts a value of type ULONG to a value of type UINT.
RtlULongToUInt8

Learn how this function converts a value of type ULONG_PTR to a value of type UINT8.
RtlULongToUIntPtr

Learn how this method converts a value of type ULONG_PTR to a value of type UINT_PTR.
RtlULongToUShort

Converts a value of type ULONG to a value of type USHORT.
RtlUnalignedStringCbLengthW

The RtlUnalignedStringCbLengthW function is a version of the RtlStringCbLength function that accepts an unaligned pointer to a string of Unicode characters.
RtlUnalignedStringCchLengthW

The RtlUnalignedStringCchLengthW function is a version of the RtlStringCchLength function that accepts an unaligned pointer to a string of Unicode characters.
RtlUnicodeStringCat

The RtlUnicodeStringCat function concatenates two strings that are contained in UNICODE_STRING structures.
RtlUnicodeStringCatEx

The RtlUnicodeStringCatEx function concatenates two strings that are contained in UNICODE_STRING structures.
RtlUnicodeStringCatString

The RtlUnicodeStringCatString function concatenates two strings when the destination string is contained in a UNICODE_STRING structure.
RtlUnicodeStringCatStringEx

The RtlUnicodeStringCatStringEx function concatenates two strings when the destination string is contained in a UNICODE_STRING structure.
RtlUnicodeStringCbCatN

The RtlUnicodeStringCbCatN function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCbCatNEx

The RtlUnicodeStringCbCatNEx function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCbCatStringN

The RtlUnicodeStringCbCatStringN function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCbCatStringNEx

The RtlUnicodeStringCbCatStringNEx function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCbCopyN

The RtlUnicodeStringCbCopyN function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCbCopyNEx

The RtlUnicodeStringCbCopyNEx function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCbCopyStringN

The RtlUnicodeStringCbCopyStringN function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCbCopyStringNEx

The RtlUnicodeStringCbCopyStringNEx function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCchCatN

The RtlUnicodeStringCchCatN function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCchCatNEx

The RtlUnicodeStringCchCatNEx function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCchCatStringN

The RtlUnicodeStringCchCatStringN function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCchCatStringNEx

The RtlUnicodeStringCchCatStringNEx function concatenates two strings when the destination string is contained in a UNICODE_STRING structure, while limiting the size of the appended string.
RtlUnicodeStringCchCopyN

The RtlUnicodeStringCchCopyN function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCchCopyNEx

The RtlUnicodeStringCchCopyNEx function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCchCopyStringN

The RtlUnicodeStringCchCopyStringN function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCchCopyStringNEx

The RtlUnicodeStringCchCopyStringNEx function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCopy

The RtlUnicodeStringCopy function copies a string from one UNICODE_STRING structure to another.
RtlUnicodeStringCopyEx

The RtlUnicodeStringCopyEx function copies a string from one UNICODE_STRING structure to another.
RtlUnicodeStringCopyString

The RtlUnicodeStringCopyString function copies a string into a UNICODE_STRING structure.
RtlUnicodeStringCopyStringEx

The RtlUnicodeStringCopyStringEx function copies a string into a UNICODE_STRING structure.
RtlUnicodeStringInit

The RtlUnicodeStringInit function initializes a UNICODE_STRING structure.
RtlUnicodeStringInitEx

The RtlUnicodeStringInitEx function initializes a UNICODE_STRING structure.
RtlUnicodeStringPrintf

The RtlUnicodeStringPrintf function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.
RtlUnicodeStringPrintfEx

The RtlUnicodeStringPrintfEx function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.
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.
RtlUnicodeStringValidate

The RtlUnicodeStringValidate function validates the contents of a UNICODE_STRING structure.
RtlUnicodeStringValidateEx

The RtlUnicodeStringValidateEx function validates the contents of a UNICODE_STRING structure.
RtlUnicodeStringVPrintf

The RtlUnicodeStringVPrintf function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.
RtlUnicodeStringVPrintfEx

The RtlUnicodeStringVPrintfEx function creates a text string, with formatting that is based on supplied formatting information, and stores the string in a UNICODE_STRING structure.
RtlUnicodeToUTF8N

The RtlUnicodeToUTF8N routine in ntifs.h converts a Unicode string to a UTF-8 string. The UTF-8 output is null-terminated only if the Unicode input string is.
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.
RtlUpcaseUnicodeString

The RtlUpcaseUnicodeString routine converts a copy of the source string to uppercase and writes the converted string in the destination buffer.
RtlUpperChar

The RtlUpperChar routine converts the specified character to uppercase.
RtlUpperString

The RtlUpperString routine copies the given SourceString to the DestinationString buffer, converting it to uppercase.
RtlUShortAdd

Adds two values of type USHORT.
RtlUshortByteSwap

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

Multiplies one value of type USHORT by another.
RtlUShortSub

Subtracts one value of type USHORT from another.
RtlUShortToChar

Converts a value of type USHORT to a value of type CHAR.
RtlUShortToInt8

Converts a value of type USHORT to a value of type INT8.
RtlUShortToShort

Converts a value of type USHORT to a value of type SHORT.
RtlUShortToUChar

Converts a value of type USHORT to a value of type UCHAR.
RtlUShortToUInt8

Converts a value of type USHORT to a value of type UINT8.
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 ntifs.h converts a UTF-8 string to a Unicode string. The Unicode output is null-terminated only if the UTF-8 input string is.
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.
RtlValidateCorrelationVector

Validates the specified correlation vector to check whether it conforms to the Correlation Vector Specification (v2).
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.
RtlVolumeDeviceToDosName

The RtlVolumeDeviceToDosName routine is obsolete for Windows XP and later versions of Windows. Use IoVolumeDeviceToDosName instead.RtlVolumeDeviceToDosName returns the MS-DOS path for a specified device object that represents a file system volume.
RtlWalkFrameChain

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

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

The SeFreePrivileges routine frees a privilege set returned by SeAccessCheck.
SeSinglePrivilegeCheck

The SeSinglePrivilegeCheck routine checks for the passed privilege value in the context of the current thread.
SET_D3COLD_SUPPORT

The SetD3ColdSupport routine enables or disables transitions to the D3cold device power state.
SeValidSecurityDescriptor

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

This callback is invoked when the context object reaches a reference count of zero.
SILO_MONITOR_CREATE_CALLBACK

This is callback is invoked when a new silo is created.
SILO_MONITOR_TERMINATE_CALLBACK

This callback is invoked when a silo is terminated.
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.
TRANSLATE_BUS_ADDRESS

The TranslateBusAddress routine translates addresses on the parent bus to logical addresses.
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.
WdmlibIoConnectInterruptEx

The WdmlibIoConnectInterruptEx function registers an interrupt-handling routine for a device's interrupts.
WdmlibIoCreateDeviceSecure

The WdmlibIoCreateDeviceSecure function (or IoCreateDeviceSecure) creates a named device object and applies the specified security settings.
WdmlibIoDisconnectInterruptEx

The WdmlibIoDisconnectInterruptEx function unregisters an interrupt service routine (ISR) that was registered by a previous call to the WdmlibIoConnectInterruptEx function.
WdmlibIoGetAffinityInterrupt

The WdmlibIoGetAffinityInterrupt function gets the group affinity of an interrupt object.
WdmlibIoValidateDeviceIoControlAccess

The WdmlibIoValidateDeviceIoControlAccess function verifies that the sender of an IRP_MJ_DEVICE_CONTROL or IRP_MJ_FILE_SYSTEM_CONTROL IRP has the specified access to the device object.
WdmlibProcgrpInitialize

The WdmlibProcgrpInitialize function initializes the Processor Group (ProcGrp) compatibility library.
WdmlibRtlInitUnicodeStringEx

The WdmlibRtlInitUnicodeStringEx function initializes a counted string of Unicode characters.
WheaAdd2Ptr

This topic describes the WheaAdd2Ptr macro.
WheaErrorRecordBuilderAddPacket

This routine adds a packet into an error record.
WheaErrorRecordBuilderAddSection

The WheaErrorRecordBuilderAddSection function finds the next section, initializes its descriptor, and returns a pointer for the caller to populate with data.
WheaErrorRecordBuilderInit

The WheaErrorRecordBuilderInit function initializes an error record for the record builder helper functions.
WheaRegisterErrorSourceOverride

This topic describes the WheaRegisterErrorSourceOverride function.
WheaSignalHandlerOverride

This topic describes the WheaSignalHandlerOverride function.
WheaUnregisterErrorSourceOverride

This topic describes the WheaUnregisterErrorSourceOverride function.
WMI_EXECUTE_METHOD_CALLBACK

The DpWmiExecuteMethod routine executes a method associated with a data block. This routine is optional.
WMI_FUNCTION_CONTROL_CALLBACK

The DpWmiFunctionControl routine enables or disables notification of events, and enables or disables data collection for data blocks that the driver registered as expensive to collect. This routine is optional.
WMI_QUERY_DATABLOCK_CALLBACK

The DpWmiQueryDataBlock routine returns either a single instance or all instances of a data block. This routine is required.
WMI_QUERY_REGINFO_CALLBACK

The DpWmiQueryReginfo routine provides information about the data blocks and event blocks to be registered by a driver. This routine is required.
WMI_SET_DATABLOCK_CALLBACK

The DpWmiSetDataBlock routine changes all data items in a single instance of a data block. This routine is optional.
WMI_SET_DATAITEM_CALLBACK

The DpWmiSetDataItem routine changes a single data item in an instance of a data block. This routine is optional.
WmiCompleteRequest

The WmiCompleteRequest routine indicates that a driver has finished processing a WMI request in a DpWmiXxx routine.
WmiFireEvent

The WmiFireEvent routine sends an event to WMI for delivery to data consumers that have requested notification of the event.
WmiQueryTraceInformation

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

The WmiSystemControl routine is a dispatch routine for drivers that use WMI library support routines to handle WMI IRPs.
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 (miniport.h) writes a number of bytes from a buffer to the specified port.
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 (miniport.h) writes a number of ULONG values from a buffer to the specified port address.
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 (miniport.h) writes a number of USHORT 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 (ioaccess.h) writes a byte to the specified port address in resident, mapped device memory.
WRITE_PORT_UCHAR

The WRITE_PORT_UCHAR function (miniport.h) writes a byte to the specified port address in resident, mapped device memory.
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 (ioaccess.h) writes a ULONG value to the specified port address in resident, mapped device memory.
WRITE_PORT_ULONG

The WRITE_PORT_ULONG function (miniport.h) writes a ULONG value 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 (ioaccess.h) writes a USHORT value to the specified port address in resident, mapped device memory.
WRITE_PORT_USHORT

The WRITE_PORT_USHORT function (miniport.h) writes a USHORT 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 (miniport.h) writes a number of bytes from a buffer to the specified register.
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 (miniport.h) writes a number of ULONG values 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 (miniport.h) writes a number of USHORT 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 (ioaccess.h) writes a byte to the specified register address in resident, mapped device memory.
WRITE_REGISTER_UCHAR

The WRITE_REGISTER_UCHAR function (miniport.h) writes a byte to the specified register address in resident, mapped device memory.
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 (ioaccess.h) writes a ULONG value to the specified register address in resident, mapped device memory.
WRITE_REGISTER_ULONG

The WRITE_REGISTER_ULONG function (miniport.h) writes a ULONG value 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 (ioaccess.h) writes a USHORT value to the specified register address in resident, mapped device memory.
WRITE_REGISTER_USHORT

The WRITE_REGISTER_USHORT function (miniport.h) writes a USHORT value to the specified register address in resident, mapped device memory.
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

This topic describes the WriteInt32NoFence function.
WriteInt32NoFence

The WriteInt32NoFence function...
WriteInt32Raw

This topic describes the WriteInt32Raw function.
WriteInt32Raw

The WriteInt32Raw function...
WriteInt32Release

This topic describes the WriteInt32Release function.
WriteInt32Release

The WriteInt32Release function...
WriteUInt32NoFence

This topic describes the WriteUInt32NoFence function.
WriteUInt32NoFence

The WriteUInt32NoFence function...
WriteUInt32Raw

This topic describes the WriteUInt32Raw function.
WriteUInt32Raw

The WriteUInt32Raw function...
WriteUInt32Release

This topic describes the WriteUInt32Release function.
WriteUInt32Release

The WriteUInt32Release function...
ZwAllocateLocallyUniqueId

The ZwAllocateLocallyUniqueId routine allocates a locally unique identifier (LUID).
ZwAllocateVirtualMemory

The ZwAllocateVirtualMemory routine reserves, commits, or both, a region of pages within the user-mode virtual address space of a specified process.
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.
ZwCreateEvent

The ZwCreateEvent routine creates an event object, sets the initial state of the event to the specified value, and opens a handle to the object with the specified desired access.
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.
ZwDeleteFile

Learn more about the ZwDeleteFile function.
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.
ZwDeviceIoControlFile

This routine sends a control code directly to a specified device driver, causing the corresponding driver to perform the specified operation.
ZwDeviceIoControlFile

Learn how the ZwDeviceIoControlFile routine sends a control code directly to a specified device driver, causing the corresponding driver to perform the specified operation.
ZwDuplicateObject

The ZwDuplicateObject routine creates a handle that is a duplicate of the specified source handle.
ZwDuplicateToken

Learn more about the ZwDuplicateToken function.
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.
ZwFlushBuffersFile

The ZwFlushBuffersFile routine is called by a file system filter driver to send a flush request for the specified file to the file system.
ZwFlushBuffersFileEx

The ZwFlushBuffersFileEx routine is called by a file system filter driver to send a flush request for a given file to the file system. An optional flush operation flag can be set to control how file data is written to storage.
ZwFlushKey

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

The ZwFlushVirtualMemory routine flushes a range of virtual addresses within the virtual address space of a specified process which map to a data file back out to the data file if they have been modified.
ZwFreeVirtualMemory

The ZwFreeVirtualMemory routine releases, decommits, or both, a region of pages within the virtual address space of a specified process.
ZwFsControlFile

The ZwFsControlFile routine sends a control code directly to a specified file system or file system filter driver, causing the corresponding driver to perform the specified action.
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.
ZwLockFile

Learn more about the ZwLockFile routine.
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.
ZwNotifyChangeKey

Learn more about the ZwNotifyChangeKey function.
ZwOpenDirectoryObject

The ZwOpenDirectoryObject routine opens an existing directory object.
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.
ZwOpenProcess

Learn how the ZwOpenProcess routine opens a handle to a process object and sets the access rights to this object.
ZwOpenProcessTokenEx

The ZwOpenProcessTokenEx routine opens the access token associated with a process.
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.
ZwOpenThreadTokenEx

The ZwOpenThreadTokenEx routine opens the access token associated with a thread.
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.
ZwPowerInformation

The ZwPowerInformation routine sets or retrieves system power information.
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.
ZwQueryDirectoryFile

The ZwQueryDirectoryFile routine returns various kinds of information about files in the directory specified by a given file handle.
ZwQueryDirectoryFileEx

Learn more about the ZwQueryDirectoryFileEx function.
ZwQueryEaFile

The ZwQueryEaFile routine returns information about extended-attribute (EA) values for a file.
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.
ZwQueryInformationToken

The ZwQueryInformationToken routine retrieves a specified type of information about an access token.
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.
ZwQueryObject

The ZwQueryObject routine provides information about a supplied object. If the call to NtQueryObject is in user mode, use the name NtQueryObject.
ZwQueryQuotaInformationFile

The ZwQueryQuotaInformationFile routine retrieves quota entries associated with the volume specified by the FileHandle parameter.
ZwQuerySecurityObject

The ZwQuerySecurityObject routine retrieves a copy of an object's security descriptor. A security descriptor can be in absolute or self-relative form.
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.
ZwQueryVirtualMemory

The ZwQueryVirtualMemory routine determines the state, protection, and type of a region of pages within the virtual address space of the subject process.
ZwQueryVolumeInformationFile

Learn how this routine retrieves information about the volume associated with a given file, directory, storage device, or volume.
ZwQueryVolumeInformationFile

Learn how the ZwQueryVolumeInformationFile routine retrieves information about the volume associated with a given file, directory, storage device, or volume.
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.
ZwSetEaFile

The ZwSetEaFile routine sets extended-attribute (EA) values for a file.
ZwSetEvent

The ZwSetEvent routine sets an event object to a Signaled state and attempts to satisfy as many waits as possible.
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.
ZwSetInformationThread

The ZwSetInformationThread routine sets the priority of a thread.
ZwSetInformationToken

The ZwSetInformationToken routine modifies information in a specified token. The calling process must have appropriate access rights to set the information.
ZwSetInformationTransaction

Learn how the ZwSetInformationTransaction routine sets information for a specified transaction.
ZwSetInformationVirtualMemory

The ZwSetInformationVirtualMemory routine performs an operation on a specified list of address ranges in the user address space of a process.
ZwSetQuotaInformationFile

The ZwSetQuotaInformationFile routine changes quota entries for the volume associated with the FileHandle parameter. All of the quota entries in the specified buffer are applied to the volume.
ZwSetSecurityObject

The ZwSetSecurityObject routine sets an object's security state.
ZwSetValueKey

The ZwSetValueKey routine creates or replaces a registry key's value entry.
ZwSetVolumeInformationFile

The ZwSetVolumeInformationFile routine modifies information about the volume associated with a given file, directory, storage device, or volume.
ZwSinglePhaseReject

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

The ZwTerminateProcess routine terminates a process and all of its threads.
ZwUnloadDriver

The ZwUnloadDriver routine unloads a driver from the system.
ZwUnlockFile

The ZwUnlockFile routine unlocks a byte-range lock in a file.
ZwUnmapViewOfSection

The ZwUnmapViewOfSection routine unmaps a view of a section from the virtual address space of a subject process.
ZwWaitForSingleObject

Learn more about the ZwWaitForSingleObject routine.
ZwWriteFile

The ZwWriteFile routine writes data to an open file.

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

This topic describes the ACPI_INTERFACE_STANDARD2 structure.
AUX_MODULE_BASIC_INFO

The AUX_MODULE_BASIC_INFO structure contains basic information about a loaded image module.
AUX_MODULE_EXTENDED_INFO

The AUX_MODULE_EXTENDED_INFO structure contains extended information about a loaded image module.
BATTERY_REPORTING_SCALE

Battery miniclass drivers fill in this structure in response to certain BatteryMiniQueryInformation requests.
BDCB_IMAGE_INFORMATION

The BDCB_IMAGE_INFORMATION structure describes information about a boot-start driver that is about to be initialized, provided by Windows to a boot-start driver's BOOT_DRIVER_CALLBACK_FUNCTION routine.
BDCB_STATUS_UPDATE_CONTEXT

The BDCB_STATUS_UPDATE_CONTEXT structure describes a status update provided by Windows to a boot-start driver's BOOT_DRIVER_CALLBACK_FUNCTION routine.
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 (miniport.h) defines detailed EISA configuration information returned by HalGetBusData or HalGetBusDataByOffset.
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 (miniport.h) defines EISA configuration header information returned by HalGetBusData or by 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 (miniport.h) is obsolete. It defines IBM-compatible MCA POS configuration information for a slot.
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

The CM_POWER_DATA structure contains information about a device's power management state and capabilities.
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.
CONFIGURATION_INFORMATION

Learn more about the CONFIGURATION_INFORMATION structure.
CONTEXT

Learn more about: CONTEXT structure
CONTROLLER_OBJECT

A controller object represents a hardware adapter or controller with homogenous devices that are the actual targets for I/O requests.
COPY_INFORMATION

Learn more about the COPY_INFORMATION structure.
CORRELATION_VECTOR

Store the correlation vector that is used to reference events and the generated logs for diagnostic purposes.
COUNTED_REASON_CONTEXT

The COUNTED_REASON_CONTEXT structure contains one or more strings that give reasons for a power request.
COUNTED_REASON_CONTEXT

Learn how the COUNTED_REASON_CONTEXT structure contains one or more strings that give reasons for a power request.
CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG

Contains information about a custom system event trigger.
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.
DEBUG_DEVICE_ADDRESS

This topic describes the DEBUG_DEVICE_ADDRESS structure.
DEBUG_MEMORY_REQUIREMENTS

This topic describes the DEBUG_MEMORY_REQUIREMENTS structure.
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_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.
EFI_ACPI_RAS_SIGNAL_TABLE

This topic describes the EFI_ACPI_RAS_SIGNAL_TABLE structure.
EMULATOR_ACCESS_ENTRY

The _EMULATOR_ACCESS_ENTRY structure (miniport.h) defines a range of I/O ports and how they can be accessed by a V86 emulator on x86-based platforms.
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.
FILE_ACCESS_INFORMATION

The FILE_ACCESS_INFORMATION structure is used to query for or set the access rights of a file.
FILE_ALIGNMENT_INFORMATION

The FILE_ALIGNMENT_INFORMATION structure is used as an argument to the ZwQueryInformationFile routine.
FILE_ALL_INFORMATION

The FILE_ALL_INFORMATION structure is a container for several FILE_XXX_INFORMATION structures.
FILE_ATTRIBUTE_TAG_INFORMATION

The FILE_ATTRIBUTE_TAG_INFORMATION structure is used as an argument to ZwQueryInformationFile.
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_DISPOSITION_INFORMATION

The FILE_DISPOSITION_INFORMATION structure is used as an argument to the ZwSetInformationFile routine.
FILE_EA_INFORMATION

The FILE_EA_INFORMATION structure is used to query for the size of the extended attributes (EA) for a file.
FILE_END_OF_FILE_INFORMATION

The FILE_END_OF_FILE_INFORMATION structure is used as an argument to the ZwSetInformationFile routine.
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_MODE_INFORMATION

The FILE_MODE_INFORMATION structure is used to query or set the access mode of a file.
FILE_NAME_INFORMATION

The FILE_NAME_INFORMATION structure is used as argument to the ZwQueryInformationFile and ZwSetInformationFile routines.
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_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.
FILE_VALID_DATA_LENGTH_INFORMATION

The FILE_VALID_DATA_LENGTH_INFORMATION structure is used as an argument to ZwSetInformationFile.
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.
GROUP_AFFINITY

The _GROUP_AFFINITY structure (miniport.h) specifies a group number and the processor affinity within that group.
HAL_DISPATCH

This topic describes the HAL_DISPATCH structure.
HARDWARE_COUNTER

The HARDWARE_COUNTER structure contains information about a hardware counter.
HWPROFILE_CHANGE_NOTIFICATION

The HWPROFILE_CHANGE_NOTIFICATION structure describes an event related to a hardware profile configuration change.
IMAGE_INFO

Used by driver's load-image routine (PLOAD_IMAGE_NOTIFY_ROUTINE) to specify image information.
IMAGE_INFO_EX

IMAGE_INFO_EX is the extended version of the IMAGE_INFO load image information structure.
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 (miniport.h) describes an interface that is exported by a driver for use by other drivers.
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_FOEXT_SHADOW_FILE

This topic describes the IO_FOEXT_SHADOW_FILE structure.
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 (miniport.h) describes a range of raw hardware resources, of one type, that can be used by a device.
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 (miniport.h) describes a range of raw hardware resources, of various types, 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 (miniport.h) describes sets of resource configurations representing raw resource types 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_DATA

The KBUGCHECK_DATA structure contains bug check parameters.
KBUGCHECK_DUMP_IO

The KBUGCHECK_DUMP_IO structure describes an I/O operation on the crash dump file.
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.
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_CACHED_INFORMATION

The KEY_CACHED_INFORMATION structure holds the cached information available for a registry key or subkey.
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_NAME_INFORMATION

The KEY_NAME_INFORMATION structure holds the name and name length of the key.
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_VIRTUALIZATION_INFORMATION

The KEY_VIRTUALIZATION_INFORMATION structure defines the basic information that is available for a registry key or subkey.
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.
KUSER_SHARED_DATA

This topic describes the KUSER_SHARED_DATA structure.
LINK_SHARE_ACCESS

The share access structure used by file systems for only link files.
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_BASIC_INFORMATION

Contains information about a range of pages in the virtual address space of a process.
MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION

Defines the MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION structure.
MM_COPY_ADDRESS

The MM_COPY_ADDRESS structure contains either a virtual memory address or a physical memory address.
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.
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_COMMON_CONFIG

TThe _PCI_COMMON_CONFIG structure (miniport.h) is obsolete. It defines standard PCI configuration information.
PCI_COMMON_CONFIG

The _PCI_COMMON_CONFIG structure (wdm.h) defines standard PCI configuration information.
PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER

Describes the PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER union.
PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER

This topic describes the PCI_EXPRESS_LINK_CAPABILITIES_2_REGISTER union.
PCI_EXPRESS_LINK_CONTROL_2_REGISTER

Describes the PCI_EXPRESS_LINK_CONTROL_2_REGISTER union.
PCI_EXPRESS_LINK_CONTROL_2_REGISTER

This topic describes the PCI_EXPRESS_LINK_CONTROL_2_REGISTER union.
PCI_EXPRESS_LINK_STATUS_2_REGISTER

Describes the PCI_EXPRESS_LINK_STATUS_2_REGISTER union.
PCI_EXPRESS_LINK_STATUS_2_REGISTER

This topic describes the PCI_EXPRESS_LINK_STATUS_2_REGISTER union.
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_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 (miniport.h) is obsolete. It defines the format of the Slot parameter to the obsolete HalXxxBusData routines.
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_VENDOR_SPECIFIC_CAPABILITY

This topic describes the PCI_VENDOR_SPECIFIC_CAPABILITY structure.
PEP_ABANDON_DEVICE

Learn how the PEP_ABANDON_DEVICE structure identifies a device that has been abandoned and will no longer be used by the operating system.
PEP_ABANDON_DEVICE

The PEP_ABANDON_DEVICE structure identifies a device that has been abandoned and will no longer be used by the operating system.
PEP_ACPI_ABANDON_DEVICE

Learn how the PEP_ACPI_ABANDON_DEVICE structure indicates whether the platform extension plug-in (PEP) accepts ownership of an abandoned device.
PEP_ACPI_ABANDON_DEVICE

The PEP_ACPI_ABANDON_DEVICE structure indicates whether the platform extension plug-in (PEP) accepts ownership of an abandoned device.
PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE

Learn how the PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE structure contains an enumeration of the objects in the namespace of the device.
PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE

The PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE structure contains an enumeration of the objects in the namespace of the device.
PEP_ACPI_EVALUATE_CONTROL_METHOD

Learn how the PEP_ACPI_EVALUATE_CONTROL_METHOD structure specifies an ACPI control method to evaluate, an input argument to supply to this method, and an output buffer for the result of the evaluation.
PEP_ACPI_EVALUATE_CONTROL_METHOD

The PEP_ACPI_EVALUATE_CONTROL_METHOD structure specifies an ACPI control method to evaluate, an input argument to supply to this method, and an output buffer for the result of the evaluation.
PEP_ACPI_EXTENDED_ADDRESS

Learn how the PEP_ACPI_EXTENDED_ADDRESS structure is used to report resource usage in the address space such as memory and IO.
PEP_ACPI_EXTENDED_ADDRESS

The PEP_ACPI_EXTENDED_ADDRESS structure is used to report resource usage in the address space such as memory and IO.
PEP_ACPI_GPIO_RESOURCE

Learn how the PEP_ACPI_GPIO_RESOURCE structure describes the ACPI configuration for a general purpose input/output (GPIO) resource.
PEP_ACPI_GPIO_RESOURCE

The PEP_ACPI_GPIO_RESOURCE structure describes the ACPI configuration for a general purpose input/output (GPIO) resource.
PEP_ACPI_INTERRUPT_RESOURCE

Learn how the PEP_ACPI_INTERRUPT_RESOURCE structure describes an ACPI interrupt resource.
PEP_ACPI_INTERRUPT_RESOURCE

The PEP_ACPI_INTERRUPT_RESOURCE structure describes an ACPI interrupt resource.
PEP_ACPI_IO_MEMORY_RESOURCE

Learn how the PEP_ACPI_IO_MEMORY_RESOURCE structure describes an ACPI IO port descriptor resource.
PEP_ACPI_IO_MEMORY_RESOURCE

The PEP_ACPI_IO_MEMORY_RESOURCE structure describes an ACPI IO port descriptor resource.
PEP_ACPI_OBJECT_NAME

Learn how the PEP_ACPI_OBJECT_NAME union contains the four-character name of an ACPI object.
PEP_ACPI_OBJECT_NAME

The PEP_ACPI_OBJECT_NAME union contains the four-character name of an ACPI object.
PEP_ACPI_OBJECT_NAME_WITH_TYPE

Learn how the PEP_ACPI_OBJECT_NAME_WITH_TYPE structure that specifies both the path-relative name of an ACPI object and the type of this object.
PEP_ACPI_OBJECT_NAME_WITH_TYPE

The PEP_ACPI_OBJECT_NAME_WITH_TYPE structure that specifies both the path-relative name of an ACPI object and the type of this object.
PEP_ACPI_PREPARE_DEVICE

Learn how the PEP_ACPI_PREPARE_DEVICE structure indicates whether a platform extension plug-in (PEP) is prepared to provide ACPI services for the specified device.
PEP_ACPI_PREPARE_DEVICE

The PEP_ACPI_PREPARE_DEVICE structure indicates whether a platform extension plug-in (PEP) is prepared to provide ACPI services for the specified device.
PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES

Learn how the PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES structure contains a list of raw resources that are needed to control power to the device.
PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES

The PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES structure contains a list of raw resources that are needed to control power to the device.
PEP_ACPI_QUERY_OBJECT_INFORMATION

Learn how the PEP_ACPI_QUERY_OBJECT_INFORMATION structure contains information about an ACPI object.
PEP_ACPI_QUERY_OBJECT_INFORMATION

The PEP_ACPI_QUERY_OBJECT_INFORMATION structure contains information about an ACPI object.
PEP_ACPI_REGISTER_DEVICE

Learn how the PEP_ACPI_REGISTER_DEVICE structure contains registration information about a device for which the platform extension plug-in (PEP) is to provide ACPI services.
PEP_ACPI_REGISTER_DEVICE

The PEP_ACPI_REGISTER_DEVICE structure contains registration information about a device for which the platform extension plug-in (PEP) is to provide ACPI services.
PEP_ACPI_REQUEST_CONVERT_TO_BIOS_RESOURCES

Learn how the PEP_ACPI_REQUEST_CONVERT_TO_BIOS_RESOURCES structure is used in the process of converting ACPI resources to BIOS resources by one of the PEP initialization functions.
PEP_ACPI_REQUEST_CONVERT_TO_BIOS_RESOURCES

The PEP_ACPI_REQUEST_CONVERT_TO_BIOS_RESOURCES structure is used in the process of converting ACPI resources to BIOS resources by one of the PEP initialization functions.
PEP_ACPI_RESOURCE

Learn how the PEP_ACPI_RESOURCE structure contains hardware details for a specific ACPI resource.
PEP_ACPI_RESOURCE

The PEP_ACPI_RESOURCE structure contains hardware details for a specific ACPI resource.
PEP_ACPI_RESOURCE_FLAGS

Learn how the PEP_ACPI_RESOURCE_FLAGS structure contains flags describing an ACPI resource.
PEP_ACPI_RESOURCE_FLAGS

The PEP_ACPI_RESOURCE_FLAGS structure contains flags describing an ACPI resource.
PEP_ACPI_SPB_I2C_RESOURCE

Learn how the PEP_ACPI_SPB_I2C_RESOURCE structure describes an ACPI I2C serial bus resource.
PEP_ACPI_SPB_I2C_RESOURCE

The PEP_ACPI_SPB_I2C_RESOURCE structure describes an ACPI I2C serial bus resource.
PEP_ACPI_SPB_RESOURCE

Learn how the PEP_ACPI_SPB_RESOURCE structure describes an ACPI serial bus connection resource.
PEP_ACPI_SPB_RESOURCE

The PEP_ACPI_SPB_RESOURCE structure describes an ACPI serial bus connection resource.
PEP_ACPI_SPB_SPI_RESOURCE

Learn how the PEP_ACPI_SPB_SPI_RESOURCE structure describes an ACPI SPI serial bus resource.
PEP_ACPI_SPB_SPI_RESOURCE

The PEP_ACPI_SPB_SPI_RESOURCE structure describes an ACPI SPI serial bus resource.
PEP_ACPI_SPB_UART_RESOURCE

Learn how the PEP_ACPI_SPB_UART_RESOURCE structure describes an ACPI UART serial bus resource.
PEP_ACPI_SPB_UART_RESOURCE

The PEP_ACPI_SPB_UART_RESOURCE structure describes an ACPI UART serial bus resource.
PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES

Learn how the PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES structure contains a list of translated power-control resources for the platform extension plug-in (PEP) to use.
PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES

The PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES structure contains a list of translated power-control resources for the platform extension plug-in (PEP) to use.
PEP_ACPI_UNREGISTER_DEVICE

Learn how the PEP_ACPI_UNREGISTER_DEVICE structure contains information about a device that has been unregistered from ACPI services.
PEP_ACPI_UNREGISTER_DEVICE

The PEP_ACPI_UNREGISTER_DEVICE structure contains information about a device that has been unregistered from ACPI services.
PEP_COMPONENT_ACTIVE

The PEP_COMPONENT_ACTIVE structure identifies a component that is making a transition between the idle condition and the active condition.
PEP_COMPONENT_PERF_INFO

Learn how the PEP_COMPONENT_PERF_INFO structure describes the performance states (P-states) of a component.
PEP_COMPONENT_PERF_INFO

The PEP_COMPONENT_PERF_INFO structure describes the performance states (P-states) of a component.
PEP_COMPONENT_PERF_SET

Learn how the PEP_COMPONENT_PERF_SET structure describes the performance states (P-states) in a P-state set.
PEP_COMPONENT_PERF_SET

The PEP_COMPONENT_PERF_SET structure describes the performance states (P-states) in a P-state set.
PEP_COMPONENT_PERF_STATE_REQUEST

Learn how the PEP_COMPONENT_PERF_STATE_REQUEST structure specifies a performance state (P-state) set and a new performance level to assign to this set.
PEP_COMPONENT_PERF_STATE_REQUEST

The PEP_COMPONENT_PERF_STATE_REQUEST structure specifies a performance state (P-state) set and a new performance level to assign to this set.
PEP_COMPONENT_PLATFORM_CONSTRAINTS

Learn how the PEP_COMPONENT_PLATFORM_CONSTRAINTS structure describes the lowest-powered Fx state of that a component can be in when the platform is in a particular idle state.
PEP_COMPONENT_PLATFORM_CONSTRAINTS

The PEP_COMPONENT_PLATFORM_CONSTRAINTS structure describes the lowest-powered Fx state of that a component can be in when the platform is in a particular idle state.
PEP_COMPONENT_V2

Learn how the PEP_COMPONENT_V2 structure specifies the power state attributes of a component in the device.
PEP_COMPONENT_V2

The PEP_COMPONENT_V2 structure specifies the power state attributes of a component in the device.
PEP_COORDINATED_DEPENDENCY_OPTION

Learn how the PEP_COORIDNATED_DEPENDENCY_OPTION structure describes a coordinated idle state's dependency to the OS.
PEP_COORDINATED_DEPENDENCY_OPTION

The PEP_COORIDNATED_DEPENDENCY_OPTION structure describes a coordinated idle state's dependency to the OS.
PEP_COORDINATED_IDLE_STATE

Learn how the PEP_COORIDNATED_IDLE_STATE structure describes a coordinated idle state to the OS.
PEP_COORDINATED_IDLE_STATE

The PEP_COORIDNATED_IDLE_STATE structure describes a coordinated idle state to the OS.
PEP_CRASHDUMP_INFORMATION

Learn how the PEP_CRASHDUMP_INFORMATION structure contains information about a crash-dump device.
PEP_CRASHDUMP_INFORMATION

The PEP_CRASHDUMP_INFORMATION structure contains information about a crash-dump device.
PEP_DEBUGGER_TRANSITION_REQUIREMENTS

Learn how the PEP_DEBUGGER_TRANSITION_REQUIREMENTS structure indicates the platform idle states for which the debugger device must be turned on.
PEP_DEBUGGER_TRANSITION_REQUIREMENTS

The PEP_DEBUGGER_TRANSITION_REQUIREMENTS structure indicates the platform idle states for which the debugger device must be turned on.
PEP_DEVICE_PLATFORM_CONSTRAINTS

Learn how the PEP_DEVICE_PLATFORM_CONSTRAINTS structure specifies the constraints for entry to the various Dx power states that are supported by a device.
PEP_DEVICE_PLATFORM_CONSTRAINTS

The PEP_DEVICE_PLATFORM_CONSTRAINTS structure specifies the constraints for entry to the various Dx power states that are supported by a device.
PEP_DEVICE_POWER_STATE

Learn how the PEP_DEVICE_POWER_STATE structure indicates the status of a transition to a new Dx (device power) state.
PEP_DEVICE_POWER_STATE

The PEP_DEVICE_POWER_STATE structure indicates the status of a transition to a new Dx (device power) state.
PEP_DEVICE_REGISTER_V2

Learn how the PEP_DEVICE_REGISTER structure describes all the components in a particular device.
PEP_DEVICE_REGISTER_V2

The PEP_DEVICE_REGISTER structure describes all the components in a particular device.
PEP_DEVICE_STARTED

Learn how the PEP_DEVICE_STARTED structure identifies a device whose driver has completed its registration with the Windows power management framework (PoFx).
PEP_DEVICE_STARTED

The PEP_DEVICE_STARTED structure identifies a device whose driver has completed its registration with the Windows power management framework (PoFx).
PEP_INFORMATION

Learn how the PEP_INFORMATION structure specifies the interface that the platform extension plug-in (PEP) uses to receive notifications from the Windows power management framework (PoFx).
PEP_INFORMATION

The PEP_INFORMATION structure specifies the interface that the platform extension plug-in (PEP) uses to receive notifications from the Windows power management framework (PoFx).
PEP_KERNEL_INFORMATION_STRUCT_V1

The PEP_KERNEL_INFORMATION_STRUCT_V1 structure specifies the interface that the power extension plug-in (PEP) uses to request services from the Windows power management framework (PoFx).
PEP_KERNEL_INFORMATION_STRUCT_V2

Learn how the PEP_KERNEL_INFORMATION_STRUCT_V2 structure specifies the interface that the power extension plug-in (PEP) uses to request services from the Windows power management framework (PoFx).
PEP_KERNEL_INFORMATION_STRUCT_V3

Learn how the PEP_KERNEL_INFORMATION_STRUCT_V3 structure specifies the interface that the power extension plug-in (PEP) uses to request services from the Windows power management framework (PoFx).
PEP_KERNEL_INFORMATION_STRUCT_V3

The PEP_KERNEL_INFORMATION_STRUCT_V3 structure specifies the interface that the power extension plug-in (PEP) uses to request services from the Windows power management framework (PoFx).
PEP_LOW_POWER_EPOCH

Learn how the PEP_LOW_POWER_EPOCH structure is used to provide data for a PEP_DPM_LOW_POWER_EPOCH notification (deprecated).
PEP_LOW_POWER_EPOCH

The PEP_LOW_POWER_EPOCH structure is used to provide data for a PEP_DPM_LOW_POWER_EPOCH notification (deprecated).
PEP_NOTIFY_COMPONENT_IDLE_STATE

Learn how the PEP_NOTIFY_COMPONENT_IDLE_STATE structure contains status information about a component's pending transition to a new Fx power state.
PEP_NOTIFY_COMPONENT_IDLE_STATE

The PEP_NOTIFY_COMPONENT_IDLE_STATE structure contains status information about a component's pending transition to a new Fx power state.
PEP_PERF_STATE

Learn how the PEP_PERF_STATE structure describes a performance state (P-state) in a P-state set in which the P-states are specified as a list of one or more discrete values.
PEP_PERF_STATE

The PEP_PERF_STATE structure describes a performance state (P-state) in a P-state set in which the P-states are specified as a list of one or more discrete values.
PEP_PLATFORM_IDLE_STATE

Learn how the PEP_PLATFORM_IDLE_STATE structure specifies the properties of a platform idle state.
PEP_PLATFORM_IDLE_STATE

The PEP_PLATFORM_IDLE_STATE structure specifies the properties of a platform idle state.
PEP_PLATFORM_IDLE_STATE_UPDATE

Learn how the PEP_PLATFORM_IDLE_STATE_UPDATE structure contains the updated properties of a platform idle state.
PEP_PLATFORM_IDLE_STATE_UPDATE

The PEP_PLATFORM_IDLE_STATE_UPDATE structure contains the updated properties of a platform idle state.
PEP_POWER_CONTROL_COMPLETE

Learn how the PEP_POWER_CONTROL_COMPLETE structure contains status information for a power control operation that the PEP previously requested and that the device driver has completed.
PEP_POWER_CONTROL_COMPLETE

The PEP_POWER_CONTROL_COMPLETE structure contains status information for a power control operation that the PEP previously requested and that the device driver has completed.
PEP_POWER_CONTROL_REQUEST

Learn how the PEP_POWER_CONTROL_REQUEST structure contains a request from a driver for a power control operation.
PEP_POWER_CONTROL_REQUEST

The PEP_POWER_CONTROL_REQUEST structure contains a request from a driver for a power control operation.
PEP_PPM_CONTEXT_QUERY_PARKING_PAGE

Learn how the PEP_PPM_CONTEXT_QUERY_PARKING_PAGE structure describes the parking page for a processor.
PEP_PPM_CONTEXT_QUERY_PARKING_PAGE

The PEP_PPM_CONTEXT_QUERY_PARKING_PAGE structure describes the parking page for a processor.
PEP_PPM_CST_STATE

Learn how the PEP_PPM_CST_STATE structure specifies the properties of a C state (ACPI processor power state).
PEP_PPM_CST_STATE

The PEP_PPM_CST_STATE structure specifies the properties of a C state (ACPI processor power state).
PEP_PPM_CST_STATES

Learn how the PEP_PPM_CST_STATES structure specifies the properties of the C states (ACPI processor power states) that are supported for a processor.
PEP_PPM_CST_STATES

The PEP_PPM_CST_STATES structure specifies the properties of the C states (ACPI processor power states) that are supported for a processor.
PEP_PPM_ENTER_SYSTEM_STATE

Learn how this method is used in the PEP_NOTIFY_PPM_ENTER_SYSTEM_STATE notification to notify PEP that the system is about to enter a system power state.  .
PEP_PPM_ENTER_SYSTEM_STATE

Used in the PEP_NOTIFY_PPM_ENTER_SYSTEM_STATE notification to notify PEP that the system is about to enter a system power state.  .
PEP_PPM_FEEDBACK_READ

Learn how the PEP_PPM_FEEDBACK_READ structure contains the value read from a processor performance feedback counter.
PEP_PPM_FEEDBACK_READ

The PEP_PPM_FEEDBACK_READ structure contains the value read from a processor performance feedback counter.
PEP_PPM_IDLE_CANCEL

The PEP_PPM_IDLE_CANCEL structure indicates why the processor could not enter the previously selected idle state.
PEP_PPM_IDLE_COMPLETE

Learn how the PEP_PPM_IDLE_COMPLETE structure describe the idle states from which the processor and hardware platform are waking.
PEP_PPM_IDLE_COMPLETE

The PEP_PPM_IDLE_COMPLETE structure describe the idle states from which the processor and hardware platform are waking.
PEP_PPM_IDLE_COMPLETE_V2

Learn how the PEP_PPM_IDLE_COMPLETE_V2 structure describe the idle states from which the processor and hardware platform are waking.
PEP_PPM_IDLE_COMPLETE_V2

The PEP_PPM_IDLE_COMPLETE_V2 structure describe the idle states from which the processor and hardware platform are waking.
PEP_PPM_IDLE_EXECUTE

Learn how the PEP_PPM_IDLE_EXECUTE structure specifies the idle state that the processor is to enter.
PEP_PPM_IDLE_EXECUTE

The PEP_PPM_IDLE_EXECUTE structure specifies the idle state that the processor is to enter.
PEP_PPM_IDLE_EXECUTE_V2

Learn how the PEP_PPM_IDLE_EXECUTE_V2 structure specifies the idle state that the processor is to enter.
PEP_PPM_IDLE_EXECUTE_V2

The PEP_PPM_IDLE_EXECUTE_V2 structure specifies the idle state that the processor is to enter.
PEP_PPM_IDLE_SELECT

The PEP_PPM_IDLE_SELECT structure describes the most energy-efficient idle state that the processor can enter and still satisfy the constraints specified by the operating system.
PEP_PPM_INITIATE_WAKE

Learn how the PEP_PPM_INITIATE_WAKE structure indicates whether a processor requires an interrupt to wake up from an idle state.
PEP_PPM_INITIATE_WAKE

The PEP_PPM_INITIATE_WAKE structure indicates whether a processor requires an interrupt to wake up from an idle state.
PEP_PPM_IS_PROCESSOR_HALTED

Learn how the PEP_PPM_IS_PROCESSOR_HALTED structure indicates whether the processor is currently halted in its selected idle state.
PEP_PPM_IS_PROCESSOR_HALTED

The PEP_PPM_IS_PROCESSOR_HALTED structure indicates whether the processor is currently halted in its selected idle state.
PEP_PPM_LPI_COMPLETE

Learn how the PEP_PPM_LPI_COMPLETE structure (pep_x.h) describes all the processor performance counters that the platform extension plug-in (PEP) supports for a particular processor.
PEP_PPM_PARK_MASK

Learn how the PEP_PROCESSOR_PARK_MASK structure contains the current core parking mask.
PEP_PPM_PARK_MASK

The PEP_PROCESSOR_PARK_MASK structure contains the current core parking mask.
PEP_PPM_PARK_SELECTION

Learn how the PEP_PPM_PARK_SELECTION structure indicates the preferences of the operating system and platform extension plug-in (PEP) regarding which processors in the platform should be parked to reduce power consumption.
PEP_PPM_PARK_SELECTION

The PEP_PPM_PARK_SELECTION structure indicates the preferences of the operating system and platform extension plug-in (PEP) regarding which processors in the platform should be parked to reduce power consumption.
PEP_PPM_PARK_SELECTION_V2

Learn how the PEP_PPM_PARK_SELECTION_V2 structure indicates the preferences of the operating system and platform extension plug-in (PEP) regarding which processors in the platform should be parked to reduce power consumption.
PEP_PPM_PARK_SELECTION_V2

The PEP_PPM_PARK_SELECTION_V2 structure indicates the preferences of the operating system and platform extension plug-in (PEP) regarding which processors in the platform should be parked to reduce power consumption.
PEP_PPM_PERF_CHECK_COMPLETE

Learn how the PEP_PPM_PERF_CHECK_COMPLETE structure is used to inform the PEP of details regarding the completion of a periodic performance check evaluation.
PEP_PPM_PERF_CHECK_COMPLETE

The PEP_PPM_PERF_CHECK_COMPLETE structure is used to inform the PEP of details regarding the completion of a periodic performance check evaluation.
PEP_PPM_PERF_CONSTRAINTS

Learn how the PEP_PPM_PERF_CONSTRAINTS structure describes the performance limits to apply to the processor.
PEP_PPM_PERF_CONSTRAINTS

The PEP_PPM_PERF_CONSTRAINTS structure describes the performance limits to apply to the processor.
PEP_PPM_PERF_SET

Learn how the PEP_PPM_PERF_SET structure specifies the new performance level that the operating system is requesting for the processor.
PEP_PPM_PERF_SET

The PEP_PPM_PERF_SET structure specifies the new performance level that the operating system is requesting for the processor.
PEP_PPM_PERF_SET_STATE

Learn how this method is used in the PEP_NOTIFY_PPM_PERF_SET notification at runtime to set the current operating performance of the processor.  .
PEP_PPM_PERF_SET_STATE

Used in the PEP_NOTIFY_PPM_PERF_SET notification at runtime to set the current operating performance of the processor.  .
PEP_PPM_PLATFORM_STATE_RESIDENCIES

Learn how the PEP_PPM_PLATFORM_STATE_RESIDENCIES structure contains the accumulated residency times and transition counts for the idle states that are supported by the hardware platform.
PEP_PPM_PLATFORM_STATE_RESIDENCIES

The PEP_PPM_PLATFORM_STATE_RESIDENCIES structure contains the accumulated residency times and transition counts for the idle states that are supported by the hardware platform.
PEP_PPM_PLATFORM_STATE_RESIDENCY

Learn how the PEP_PPM_PLATFORM_STATE_RESIDENCY structure specifies the accumulated residency time and transition count for a particular platform idle state.
PEP_PPM_PLATFORM_STATE_RESIDENCY

The PEP_PPM_PLATFORM_STATE_RESIDENCY structure specifies the accumulated residency time and transition count for a particular platform idle state.
PEP_PPM_QUERY_CAPABILITIES

Learn how the PEP_PPM_QUERY_CAPABILITIES structure contains information about the processor power management (PPM) capabilities of the platform extension plug-in (PEP).
PEP_PPM_QUERY_CAPABILITIES

The PEP_PPM_QUERY_CAPABILITIES structure contains information about the processor power management (PPM) capabilities of the platform extension plug-in (PEP).
PEP_PPM_QUERY_COORDINATED_DEPENDENCY

Learn how the PEP_PPM_QUERY_COORDINATED_DEPENDENCY structure describes dependencies for coordinated idle states.
PEP_PPM_QUERY_COORDINATED_DEPENDENCY

The PEP_PPM_QUERY_COORDINATED_DEPENDENCY structure describes dependencies for coordinated idle states.
PEP_PPM_QUERY_COORDINATED_STATES

Learn how the PEP_PPM_QUERY_COORDINATED_STATES structure contains information about each coordinated idle state that the platform extension plug-in (PEP) supports.
PEP_PPM_QUERY_COORDINATED_STATES

The PEP_PPM_QUERY_COORDINATED_STATES structure contains information about each coordinated idle state that the platform extension plug-in (PEP) supports.
PEP_PPM_QUERY_DISCRETE_PERF_STATES

Learn how this method is used in the PEP_NOTIFY_PPM_QUERY_DISCRETE_PERF_STATES notification that stores the list of discrete performance states that PEP supports, if the PEP_NOTIFY_PPM_QUERY_CAPABILITIES notification indicates support for discrete performance states. .
PEP_PPM_QUERY_DISCRETE_PERF_STATES

Used in the PEP_NOTIFY_PPM_QUERY_DISCRETE_PERF_STATES notification that stores the list of discrete performance states that PEP supports, if the PEP_NOTIFY_PPM_QUERY_CAPABILITIES notification indicates support for discrete performance states. .
PEP_PPM_QUERY_DOMAIN_INFO

Learn how this method is used in the PEP_NOTIFY_PPM_QUERY_DOMAIN_INFO notification that queries for information about a performance domain. .
PEP_PPM_QUERY_DOMAIN_INFO

Used in the PEP_NOTIFY_PPM_QUERY_DOMAIN_INFO notification that queries for information about a performance domain. .
PEP_PPM_QUERY_FEEDBACK_COUNTERS

Learn how the PEP_PPM_QUERY_FEEDBACK_COUNTERS structure (pep_x.h) describes all the processor performance counters that the platform extension plug-in (PEP) supports for a particular processor.
PEP_PPM_QUERY_FEEDBACK_COUNTERS

The PEP_PPM_QUERY_FEEDBACK_COUNTERS structure describes all the processor performance counters that the platform extension plug-in (PEP) supports for a particular processor.
PEP_PPM_QUERY_IDLE_STATES

The PEP_PPM_QUERY_IDLE_STATES structure describes the idle states of a particular processor.
PEP_PPM_QUERY_IDLE_STATES_V2

Learn how the PEP_PPM_QUERY_IDLE_STATES_V2 structure is used during processor initialization to query the platform extension plug-in (PEP) for a list of processor idle states that the processor supports.
PEP_PPM_QUERY_IDLE_STATES_V2

The PEP_PPM_QUERY_IDLE_STATES_V2 structure is used during processor initialization to query the platform extension plug-in (PEP) for a list of processor idle states that the processor supports.
PEP_PPM_QUERY_LP_SETTINGS

The PEP_PPM_QUERY_LP_SETTINGS structure contains a kernel handle to the registry key that contains the power optimization settings that the platform extension plug-in (PEP) has defined for each power scenario.
PEP_PPM_QUERY_PERF_CAPABILITIES

Learn how the PEP_PPM_QUERY_PERF_CAPABILITIES structure describes the performance capabilities of the processors in the specified processor performance domain.
PEP_PPM_QUERY_PERF_CAPABILITIES

The PEP_PPM_QUERY_PERF_CAPABILITIES structure describes the performance capabilities of the processors in the specified processor performance domain.
PEP_PPM_QUERY_PLATFORM_STATE

Learn how the PEP_PPM_QUERY_PLATFORM_STATE structure contains information about a platform idle state.
PEP_PPM_QUERY_PLATFORM_STATE

The PEP_PPM_QUERY_PLATFORM_STATE structure contains information about a platform idle state.
PEP_PPM_QUERY_PLATFORM_STATES

Learn how the PEP_PPM_QUERY_PLATFORM_STATES structure specifies the number of platform idle states the hardware platform supports.
PEP_PPM_QUERY_PLATFORM_STATES

The PEP_PPM_QUERY_PLATFORM_STATES structure specifies the number of platform idle states the hardware platform supports.
PEP_PPM_QUERY_STATE_NAME

Learn how the PEP_PPM_QUERY_STATE_NAME structure contains information about a specific coordinated or platform idle state.
PEP_PPM_QUERY_STATE_NAME

The PEP_PPM_QUERY_STATE_NAME structure contains information about a specific coordinated or platform idle state.
PEP_PPM_QUERY_VETO_REASON

Learn how the PEP_PPM_QUERY_VETO_REASON structure supplies a wide-character, null-terminated string that contains a descriptive, human-readable name for a veto reason.
PEP_PPM_QUERY_VETO_REASON

The PEP_PPM_QUERY_VETO_REASON structure supplies a wide-character, null-terminated string that contains a descriptive, human-readable name for a veto reason.
PEP_PPM_QUERY_VETO_REASONS

Learn how the PEP_PPM_QUERY_VETO_REASONS structure specifies the total number of veto reasons that the PEP uses in calls to the ProcessorIdleVeto and PlatformIdleVeto routines.
PEP_PPM_QUERY_VETO_REASONS

The PEP_PPM_QUERY_VETO_REASONS structure specifies the total number of veto reasons that the PEP uses in calls to the ProcessorIdleVeto and PlatformIdleVeto routines.
PEP_PPM_RESUME_FROM_SYSTEM_STATE

Learn how this method is used by the PEP_NOTIFY_PPM_RESUME_FROM_SYSTEM_STATE notification that notifies the PEP that the system has just resumed from a system power state.
PEP_PPM_RESUME_FROM_SYSTEM_STATE

Used by the PEP_NOTIFY_PPM_RESUME_FROM_SYSTEM_STATE notification that notifies the PEP that the system has just resumed from a system power state.
PEP_PPM_TEST_IDLE_STATE

Learn how the PEP_PPM_TEST_IDLE_STATE structure contains information about whether the processor can immediately enter a processor idle state.
PEP_PPM_TEST_IDLE_STATE

The PEP_PPM_TEST_IDLE_STATE structure contains information about whether the processor can immediately enter a processor idle state.
PEP_PREPARE_DEVICE

Learn how the PEP_PREPARE_DEVICE structure identifies a device that must be started up in preparation for its use by the operating system.
PEP_PREPARE_DEVICE

The PEP_PREPARE_DEVICE structure identifies a device that must be started up in preparation for its use by the operating system.
PEP_PROCESSOR_FEEDBACK_COUNTER

Learn how the PEP_PROCESSOR_FEEDBACK_COUNTER structure describes a feedback counter to the operating system.
PEP_PROCESSOR_FEEDBACK_COUNTER

The PEP_PROCESSOR_FEEDBACK_COUNTER structure describes a feedback counter to the operating system.
PEP_PROCESSOR_IDLE_CONSTRAINTS

The PEP_PROCESSOR_IDLE_CONSTRAINTS structure specifies a set of constraints that the PEP uses to select a processor idle state.
PEP_PROCESSOR_IDLE_DEPENDENCY

Learn how the PEP_PROCESSOR_IDLE_DEPENDENCY structure specifies the dependencies of a platform idle state on the specified processor.
PEP_PROCESSOR_IDLE_DEPENDENCY

The PEP_PROCESSOR_IDLE_DEPENDENCY structure specifies the dependencies of a platform idle state on the specified processor.
PEP_PROCESSOR_IDLE_STATE

The PEP_PROCESSOR_IDLE_STATE structure describes the capabilities of a processor idle state.
PEP_PROCESSOR_IDLE_STATE_UPDATE

Learn how the PEP_PROCESSOR_IDLE_STATE_UPDATE structure contains the updated properties of a processor idle state.
PEP_PROCESSOR_IDLE_STATE_UPDATE

The PEP_PROCESSOR_IDLE_STATE_UPDATE structure contains the updated properties of a processor idle state.
PEP_PROCESSOR_IDLE_STATE_V2

Learn how the PEP_PROCESSOR_IDLE_STATE_V2 structure describes a processor idle state that the platform extension plug-in (PEP) supports.
PEP_PROCESSOR_IDLE_STATE_V2

The PEP_PROCESSOR_IDLE_STATE_V2 structure describes a processor idle state that the platform extension plug-in (PEP) supports.
PEP_PROCESSOR_PARK_PREFERENCE

Learn how the PEP_PROCESSOR_PARK_PREFERENCE structure indicates the preferences of the operating system and platform extension plug-in (PEP) regarding whether the specified processor should be parked to reduce power consumption.
PEP_PROCESSOR_PARK_PREFERENCE

The PEP_PROCESSOR_PARK_PREFERENCE structure indicates the preferences of the operating system and platform extension plug-in (PEP) regarding whether the specified processor should be parked to reduce power consumption.
PEP_PROCESSOR_PARK_STATE

Learn how the PEP_PROCESSOR_PARK_STATE structure describes the parking state for a single processor.
PEP_PROCESSOR_PARK_STATE

The PEP_PROCESSOR_PARK_STATE structure describes the parking state for a single processor.
PEP_PROCESSOR_PERF_STATE

Learn how to use this method in the PEP_NOTIFY_PPM_QUERY_DISCRETE_PERF_STATES  notification. This structure describes the properties of a single performance state.  .
PEP_PROCESSOR_PERF_STATE

Use in the PEP_NOTIFY_PPM_QUERY_DISCRETE_PERF_STATES  notification. This structure describes the properties of a single performance state.  .
PEP_QUERY_COMPONENT_PERF_CAPABILITIES

Learn how the PEP_QUERY_COMPONENT_PERF_CAPABILITIES structure specifies the number of performance state (P-state) sets that are defined for a component.
PEP_QUERY_COMPONENT_PERF_CAPABILITIES

The PEP_QUERY_COMPONENT_PERF_CAPABILITIES structure specifies the number of performance state (P-state) sets that are defined for a component.
PEP_QUERY_COMPONENT_PERF_SET

Learn how the PEP_QUERY_COMPONENT_PERF_SET structure contains query information about a set of performance state values (P-state set) for a component.
PEP_QUERY_COMPONENT_PERF_SET

The PEP_QUERY_COMPONENT_PERF_SET structure contains query information about a set of performance state values (P-state set) for a component.
PEP_QUERY_COMPONENT_PERF_SET_NAME

Learn how the PEP_QUERY_COMPONENT_PERF_SET_NAME structure contains query information about a set of performance state values (P-state set) for a component.
PEP_QUERY_COMPONENT_PERF_SET_NAME

The PEP_QUERY_COMPONENT_PERF_SET_NAME structure contains query information about a set of performance state values (P-state set) for a component.
PEP_QUERY_COMPONENT_PERF_STATES

Learn how the PEP_QUERY_COMPONENT_PERF_STATES structure contains a list of discrete performance state (P-state) values for the specified P-state set.
PEP_QUERY_COMPONENT_PERF_STATES

The PEP_QUERY_COMPONENT_PERF_STATES structure contains a list of discrete performance state (P-state) values for the specified P-state set.
PEP_QUERY_CURRENT_COMPONENT_PERF_STATE

Learn how the PEP_QUERY_CURRENT_COMPONENT_PERF_STATE structure contains information about the current P-state in the specified P-state set.
PEP_QUERY_CURRENT_COMPONENT_PERF_STATE

The PEP_QUERY_CURRENT_COMPONENT_PERF_STATE structure contains information about the current P-state in the specified P-state set.
PEP_QUERY_SOC_SUBSYSTEM

Learn how the PEP_QUERY_SOC_SUBSYSTEM structure is used by the PEP_DPM_QUERY_SOC_SUBSYSTEM notification to gather basic information about a particular system on a chip (SoC) subsystem.
PEP_QUERY_SOC_SUBSYSTEM

The PEP_QUERY_SOC_SUBSYSTEM structure is used by the PEP_DPM_QUERY_SOC_SUBSYSTEM notification to gather basic information about a particular system on a chip (SoC) subsystem.
PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME

The PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME structure (pep_x.h) is used by the PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME notification to collect details about the blocking duration for a particular system on a chip (SoC) subsystem.
PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME

The PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME structure (pepfx.h) is used by the PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME notification to collect details about the blocking duration for a particular system on a chip (SoC) subsystem.
PEP_QUERY_SOC_SUBSYSTEM_COUNT

Learn how the PEP_QUERY_SOC_SUBSYSTEM_COUNT structure is used to tell the OS whether the PEP supports system on a chip (SoC) subsystem accounting for a given platform idle state.
PEP_QUERY_SOC_SUBSYSTEM_COUNT

The PEP_QUERY_SOC_SUBSYSTEM_COUNT structure is used to tell the OS whether the PEP supports system on a chip (SoC) subsystem accounting for a given platform idle state.
PEP_QUERY_SOC_SUBSYSTEM_METADATA

Learn how the PEP_QUERY_SOC_SUBSYSTEM_METADATA structure is used with the PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA notification to collect optional metadata about the system on a chip (SoC) subsystem whose blocking time has just been queried.
PEP_QUERY_SOC_SUBSYSTEM_METADATA

The PEP_QUERY_SOC_SUBSYSTEM_METADATA structure is used with the PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA notification to collect optional metadata about the system on a chip (SoC) subsystem whose blocking time has just been queried.
PEP_REGISTER_COMPONENT_PERF_STATES

Learn how the PEP_REGISTER_COMPONENT_PERF_STATES structure describes the performance states (P-states) of the specified component.
PEP_REGISTER_COMPONENT_PERF_STATES

The PEP_REGISTER_COMPONENT_PERF_STATES structure describes the performance states (P-states) of the specified component.
PEP_REGISTER_CRASHDUMP_DEVICE

Learn how the PEP_REGISTER_CRASHDUMP_DEVICE structure provides a callback routine to turn on a crash-dump device.
PEP_REGISTER_CRASHDUMP_DEVICE

The PEP_REGISTER_CRASHDUMP_DEVICE structure provides a callback routine to turn on a crash-dump device.
PEP_REGISTER_DEBUGGER

Learn how the PEP_REGISTER_DEBUGGER structure identifies a registered device that is a core system resource that provides debugger transport.
PEP_REGISTER_DEBUGGER

The PEP_REGISTER_DEBUGGER structure identifies a registered device that is a core system resource that provides debugger transport.
PEP_REGISTER_DEVICE_V2

Learn how the PEP_REGISTER_DEVICE_V2 structure describes a device whose driver stack has just registered with the Windows power management framework (PoFx).
PEP_REGISTER_DEVICE_V2

The PEP_REGISTER_DEVICE_V2 structure describes a device whose driver stack has just registered with the Windows power management framework (PoFx).
PEP_REQUEST_COMPONENT_PERF_STATE

Learn how the PEP_REQUEST_COMPONENT_PERF_STATE structure contains a list of performance state (P-state) changes requested by the Windows power management framework (PoFx), plus status information about the handling of these requests by the platform extension plug-in (PEP).
PEP_REQUEST_COMPONENT_PERF_STATE

The PEP_REQUEST_COMPONENT_PERF_STATE structure contains a list of performance state (P-state) changes requested by the Windows power management framework (PoFx), plus status information about the handling of these requests by the platform extension plug-in (PEP).
PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING

Learn how the PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING structure is provided to the platform extension plug-in (PEP) as part of a PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING notification.
PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING

The PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING structure is provided to the platform extension plug-in (PEP) as part of a PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING notification.
PEP_SOC_SUBSYSTEM_METADATA

Learn how the PEP_SOC_SUBSYSTEM_METADATA structure contains key-value pairs that contain metadata for a system on a chip (SoC) subsystem. It is used in the context of a PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA notification sent to a platform extension plug-in (PEP).
PEP_SOC_SUBSYSTEM_METADATA

The PEP_SOC_SUBSYSTEM_METADATA structure contains key-value pairs that contain metadata for a system on a chip (SoC) subsystem. It is used in the context of a PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA notification sent to a platform extension plug-in (PEP).
PEP_SYSTEM_LATENCY

Learn how the PEP_SYSTEM_LATENCY structure specifies the new value for the system latency tolerance.
PEP_SYSTEM_LATENCY

The PEP_SYSTEM_LATENCY structure specifies the new value for the system latency tolerance.
PEP_UNMASKED_INTERRUPT_FLAGS

Learn how the PEP_UNMASKED_INTERRUPT_FLAGS union indicates whether an unmasked interrupt source is a primary interrupt or a secondary interrupt.
PEP_UNMASKED_INTERRUPT_FLAGS

The PEP_UNMASKED_INTERRUPT_FLAGS union indicates whether an unmasked interrupt source is a primary interrupt or a secondary interrupt.
PEP_UNMASKED_INTERRUPT_INFORMATION

Learn how the PEP_UNMASKED_INTERRUPT_INFORMATION structure contains information about an interrupt source.
PEP_UNMASKED_INTERRUPT_INFORMATION

The PEP_UNMASKED_INTERRUPT_INFORMATION structure contains information about an interrupt source.
PEP_UNREGISTER_DEVICE

Learn how the PEP_UNREGISTER_DEVICE structure identifies a device whose registration is being removed from the Windows power management framework (PoFx).
PEP_UNREGISTER_DEVICE

The PEP_UNREGISTER_DEVICE structure identifies a device whose registration is being removed from the Windows power management framework (PoFx).
PEP_WORK

Learn how the PEP_WORK structure indicates whether the PEP has a work request to submit to the Windows power management framework (PoFx).
PEP_WORK

The PEP_WORK structure indicates whether the PEP has a work request to submit to the Windows power management framework (PoFx).
PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE

Learn how the PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE structure contains the results of an ACPI control method that was asynchronously evaluated by the platform extension plug-in (PEP).
PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE

The PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE structure contains the results of an ACPI control method that was asynchronously evaluated by the platform extension plug-in (PEP).
PEP_WORK_ACPI_NOTIFY

Learn how the PEP_WORK_ACPI_NOTIFY structure contains the ACPI Notify code for a device that has generated a hardware event.
PEP_WORK_ACPI_NOTIFY

The PEP_WORK_ACPI_NOTIFY structure contains the ACPI Notify code for a device that has generated a hardware event.
PEP_WORK_ACTIVE_COMPLETE

The PEP_WORK_ACTIVE_COMPLETE structure identifies a component that is now in the active condition.
PEP_WORK_COMPLETE_IDLE_STATE

Learn how the PEP_WORK_COMPLETE_IDLE_STATE structure identifies a component that the platform extension plug-in (PEP) has prepared for a transition to a new Fx power state.
PEP_WORK_COMPLETE_IDLE_STATE

The PEP_WORK_COMPLETE_IDLE_STATE structure identifies a component that the platform extension plug-in (PEP) has prepared for a transition to a new Fx power state.
PEP_WORK_COMPLETE_PERF_STATE

Learn how the PEP_WORK_COMPLETE_PERF_STATE structure describes the completion status of a previously requested update to the performance values assigned to a list of performance state (P-state) sets.
PEP_WORK_COMPLETE_PERF_STATE

The PEP_WORK_COMPLETE_PERF_STATE structure describes the completion status of a previously requested update to the performance values assigned to a list of performance state (P-state) sets.
PEP_WORK_DEVICE_IDLE

The PEP_WORK_DEVICE_IDLE structure indicates whether to ignore the idle time-out for the specified device.
PEP_WORK_DEVICE_POWER

The PEP_WORK_DEVICE_POWER structure describes the new power requirements for the specified device.
PEP_WORK_IDLE_STATE

The PEP_WORK_IDLE_STATE structure contains a request to transition a component to an Fx power state.
PEP_WORK_INFORMATION

Learn how the PEP_WORK_INFORMATION structure describes a work item that the PEP is submitting to the Windows power management framework (PoFx).
PEP_WORK_INFORMATION

The PEP_WORK_INFORMATION structure describes a work item that the PEP is submitting to the Windows power management framework (PoFx).
PEP_WORK_POWER_CONTROL

Learn how the PEP_WORK_POWER_CONTROL structure contains the parameters for a power control request that the platform extension plug-in (PEP) sends directly to a processor driver.
PEP_WORK_POWER_CONTROL

The PEP_WORK_POWER_CONTROL structure contains the parameters for a power control request that the platform extension plug-in (PEP) sends directly to a processor driver.
PHYSICAL_COUNTER_EVENT_BUFFER_CONFIGURATION

The PHYSICAL_COUNTER_EVENT_BUFFER_CONFIGURATION structure describes the configuration for event buffers on the platform.
PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR

The PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR structure describes the counter resources available on the platform.
PHYSICAL_COUNTER_RESOURCE_LIST

The PHYSICAL_COUNTER_RESOURCE_LIST structure describes an array of PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR structures.
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.
PNP_LOCATION_INTERFACE

The PNP_LOCATION_INTERFACE structure describes the GUID_PNP_LOCATION_INTERFACE interface.
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_CORE_DEVICE

Learn how the PO_FX_CORE_DEVICE structure contains information about the power-state attributes of the components in a core system resource, and provides a software interface for power-managing these components.
PO_FX_CORE_DEVICE

The PO_FX_CORE_DEVICE structure contains information about the power-state attributes of the components in a core system resource, and provides a software interface for power-managing these components.
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.
PO_SPR_ACTIVE_SESSION_DATA

Allow drivers to register/unregister for SPR Active session start and end notifications.
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

The POWER_PLATFORM_INFORMATION structure contains information about the power capabilities of the system.
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
POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES

Learn more about: POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES structure (wdm.h)
POWER_STATE

The POWER_STATE union specifies a system power state value or a device power state value.
POWER_STATE

Learn how the POWER_STATE union specifies a system power state value or a device power state value.
POWER_THROTTLING_PROCESS_STATE

Stores the throttling policies and how to apply them to a target process when that process is subject to power management.
POWER_THROTTLING_THREAD_STATE

Stores the throttling policies and how to apply them to a target thread when that thread is subject to power management.
PRIVILEGE_SET

The PRIVILEGE_SET structure specifies a set of security privileges.
PROCESS_MEMBERSHIP_INFORMATION

This topic describes the PROCESS_MEMBERSHIP_INFORMATION structure.
PROCESS_MITIGATION_ACTIVATION_CONTEXT_TRUST_POLICY

Describes the PROCESS_MITIGATION_ACTIVATION_CONTEXT_TRUST_POLICY structure.
PROCESS_MITIGATION_CHILD_PROCESS_POLICY

Stores policy information about creating child processes.
PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY

Stores information about process mitigation policy.
PROCESS_MITIGATION_SEHOP_POLICY

Describes the PROCESS_MITIGATION_SEHOP_POLICY structure.
PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY

This structure is not supported.
PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY

This topic describes the PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY structure.
PROCESS_SYSCALL_PROVIDER_INFORMATION

Describes the PROCESS_SYSCALL_PROVIDER_INFORMATION structure.
PROCESSOR_NUMBER

The _PROCESSOR_NUMBER structure (miniport.h) identifies a processor by its group number and group-relative processor number.
PS_CREATE_NOTIFY_INFO

The PS_CREATE_NOTIFY_INFO structure provides information about a newly created process.
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.
SET_POWER_SETTING_VALUE

This topic describes the SET_POWER_SETTING_VALUE structure.
SIGNAL_REG_VALUE

This topic describes the SIGNAL_REG_VALUE structure.
SILO_MONITOR_REGISTRATION

This structure specifies a server silo monitor that can receive notifications about server silo events.
SLIST_ENTRY

An SLIST_ENTRY structure describes an entry in a sequenced singly linked list.
SYSENV_VALUE

Stores the value of a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_GET_VARIABLE request.
SYSENV_VARIABLE

Stores the name a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_GET_VARIABLE request.
SYSENV_VARIABLE_INFO

Stores the information about a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_QUERY_VARIABLE_INFO request.
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

The SYSTEM_POWER_STATE_CONTEXT structure is a partially opaque system structure that contains information about the previous system power states of a computer.
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.
WAIT_CONTEXT_BLOCK

Reserved for WAIT_CONTEXT_BLOCK. Do not use.
WHEA_ACPI_HEADER

This topic describes the WHEA_ACPI_HEADER structure.
WHEA_ERROR_SOURCE_OVERRIDE_SETTINGS

This topic describes the WHEA_ERROR_SOURCE_OVERRIDE_SETTINGS structure.
WHEA_FAILED_ADD_DEFECT_LIST_EVENT

This topic describes the WHEA_FAILED_ADD_DEFECT_LIST_EVENT structure.
WHEA_PCI_RECOVERY_SECTION

Describes the WHEA_PCI_RECOVERY_SECTION structure.
WHEA_PSHED_PI_CPU_BUSES_INIT_FAILED_EVENT

This topic describes the WHEA_PSHED_PI_CPU_BUSES_INIT_FAILED_EVENT structure.
WHEA_PSHED_PLUGIN_INIT_FAILED_EVENT

This topic describes the WHEA_PSHED_PLUGIN_INIT_FAILED_EVENT structure.
WHEA_SEA_SECTION

This topic describes the WHEA_SEA_SECTION structure.
WHEA_SEI_SECTION

This topic describes the WHEA_SEI_SECTION structure.
WHEA_SRAS_TABLE_ENTRIES_EVENT

This topic describes the WHEA_SRAS_TABLE_ENTRIES_EVENT structure.
WHEA_SRAS_TABLE_ERROR

This topic describes the WHEA_SRAS_TABLE_ERROR structure.
WHEA_SRAS_TABLE_NOT_FOUND

This topic describes the WHEA_SRAS_TABLE_NOT_FOUND structure.
WHEAP_BAD_HEST_NOTIFY_DATA_EVENT

This topic describes the WHEAP_BAD_HEST_NOTIFY_DATA_EVENT structure.
WHEAP_DPC_ERROR_EVENT

This topic describes the WHEAP_DPC_ERROR_EVENT structure.
WHEAP_PLUGIN_DEFECT_LIST_CORRUPT

This topic describes the WHEAP_PLUGIN_DEFECT_LIST_CORRUPT structure.
WHEAP_PLUGIN_DEFECT_LIST_FULL_EVENT

This topic describes the WHEAP_PLUGIN_DEFECT_LIST_FULL_EVENT structure.
WHEAP_PLUGIN_DEFECT_LIST_UEFI_VAR_FAILED

This topic describes the WHEAP_PLUGIN_DEFECT_LIST_UEFI_VAR_FAILED structure.
WHEAP_ROW_FAILURE_EVENT

This topic describes the WHEAP_ROW_FAILURE_EVENT structure.
WMIGUIDREGINFO

The WMIGUIDREGINFO structure contains registration information for a given data block or event block exposed by a driver that uses the WMI library support routines.
WMILIB_CONTEXT

The WMILIB_CONTEXT structure provides registration information for a driver's data blocks and event blocks and defines entry points for the driver's WMI library callback routines.
WMIREGGUIDW

The WMIREGGUID structure contains new or updated registration information for a data block or event block.
WMIREGINFOW

The WMIREGINFO structure contains information provided by a driver to register or update its data blocks and event blocks.
WNODE_ALL_DATA

The WNODE_ALL_DATA structure contains data for all instances of a data block or event block.
WNODE_EVENT_ITEM

The WNODE_EVENT_ITEM structure contains data generated by a driver for an event.
WNODE_EVENT_REFERENCE

The WNODE_EVENT_REFERENCE structure contains information that WMI can use to query for an event that exceeds the event size limit set in the registry.
WNODE_HEADER

The WNODE_HEADER structure is the first member of all other WNODE_XXX structures. It contains information common to all such structures.
WNODE_METHOD_ITEM

The WNODE_METHOD_ITEM structure indicates a method associated with an instance of a data block and contains any input data for the method.
WNODE_SINGLE_INSTANCE

The WNODE_SINGLE_INSTANCE structure contains values for all data items in one instance of a data block.
WNODE_SINGLE_ITEM

The WNODE_SINGLE_ITEM structure contains the value of a single data item in an instance of a data block.
WNODE_TOO_SMALL

The WNODE_TOO_SMALL structure indicates the size of the buffer needed to receive output from a request.
XSAVE_CET_U_FORMAT

Format for CET_U XSTATE component.
XVARIABLE_NAME

Stores the name of a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_ENUM_VARIABLES request.
XVARIABLE_NAME_AND_VALUE

Stores the name and value of a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_ENUM_VARIABLES and IOCTL_SYSENV_SET_VARIABLE requests.