Windows kernel

Overview of the Windows kernel technology.

To develop Windows kernel, you need these headers:

For the programming guide, see Windows 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:

DriverEntry AddDevice DispatchXxx (routines beginning with "Dispatch" such as DispatchCreate) DriverUnload

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.

Initialization and Unload

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

Hardware Configuration

Used for obtaining and reporting hardware configuration information about a driver's devices and the current platform.

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.
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.
IoGetDmaAdapter Returns a pointer to the DMA adapter structure that represents either the DMA channel to which a device is connected or the driver's bus-master adapter.
IoGetConfigurationInformation Returns a pointer to the I/O manager's configuration information structure, which indicates the number of disk, floppy, CD-ROM, tape, SCSI HBAs, serial, and parallel device objects that have already been named by previously loaded drivers, as well as whether certain address ranges have been claimed by "AT" disk-type drivers.
HalExamineMBR Returns data from the master boot record (MBR) of a disk.
IoReadPartitionTable Returns a list of partitions on a disk with a given sector size.
IoInvalidateDeviceRelations Notifies the PnP manager that the relations for a device have changed. The types of device relations include bus relations, ejection relations, removal relations, and the target device relation.
IoInvalidateDeviceState Notifies the PnP manager that some aspect of 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.
IoRegisterPlugPlayNotification Registers a driver callback routine to be called when a PnP event of the specified category occurs.
IoUnregisterPlugPlayNotification Removes the registration of a driver's callback routine for a PnP event.
IoRequestDeviceEject Notifies the PnP manager that the device eject button was pressed. This routine reports a request for device eject, not media eject.
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 notification on the device.

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:

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 Indicates whether the driver is running on a free or checked build, and optionally 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 at the system, device, and component level. Starting with Windows 2000, power management is supported at the system level and the device level. Starting with Windows 8, power management is supported at the component (subdevice) level, in addition to the system level and the device level.

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

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.

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 This section describes 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 described in this section are sent to platform extension plug-ins (PEPs): 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 described in this section 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

This section contains miscellaneous PoFx routines and structures that 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

This section describes the configuration manager routines. These routines use the CmXxx naming convention and are listed in alphabetical order.

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.

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
nitializeObjectAttributes 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 aises 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
oAcquireCancelSpinLock 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.

MmAddPhysicalMemory MmAddPhysicalMemoryEx MmAddVerifierThunks MmCreateMirror MmGetMdlBaseVa MmGetPhysicalMemoryRanges MmGetProcedureAddress MmGetVirtualForPhysical MmIsVerifierEnabled MmIsIoSpaceActive MmMapUserAddressesToPage MmMapVideoDisplay 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 noncached and cache-aligned memory in nonpaged system space (pool).
MmFreeNonCachedMemory Releases a virtual address range of noncached 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 autoinitialize 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
RtlCompar Memory
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
oAllocateMdl 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 noncached 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_A D_SIZE_TO_SPAN_PAGES
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
M LockPagableCodeSection
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
nitializeObjectAttributes 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.

Access to Structures

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

Function Description
RGUMENT_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
oOpenDeviceInterfaceRegistryKey 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
oInitializeRemoveLock 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
oAdjustPagingPathCount 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 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. 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.

ZwCancelTimer. Use KeCancelTimer instead.

ZwCreateTimer. Use KeInitializeTimer or KeInitializeTimerEx instead.

ZwOpenTimer.

ZwSetTimer. Use KeSetTimer instead.

NtRenameTransactionManager is obsolete.

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

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 autoinitialize 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 noncached 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 reentrancy 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. 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.

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.

Functions

Title Description
AppendTailList function The AppendTailList routine appends a doubly linked list of LIST_ENTRY structures to the tail of another doubly linked list of LIST_ENTRY structures.
AuxKlibEnumerateSystemFirmwareTables function The AuxKlibEnumerateSystemFirmwareTables routine enumerates all system firmware tables of the specified type.
AuxKlibGetBugCheckData function The AuxKlibGetBugCheckData routine retrieves information about a bug check that has just occurred.
AuxKlibGetImageExportDirectory function The AuxKlibGetImageExportDirectory routine returns an image module's export directory.
AuxKlibGetSystemFirmwareTable function The AuxKlibGetSystemFirmwareTable routine retrieves the specified firmware table from the firmware table provider.
AuxKlibInitialize function The AuxKlibInitialize routine initializes the Auxiliary Kernel-Mode Library.
AuxKlibQueryModuleInformation function The AuxKlibQueryModuleInformation routine retrieves information about the image modules that the operating system has loaded.
ClfsAddLogContainer function The ClfsAddLogContainer routine adds a container to a CLFS log.
ClfsAddLogContainerSet function The ClfsAddLogContainerSet routine atomically adds a set of containers to a CLFS log.
ClfsAdvanceLogBase function The ClfsAdvanceLogBase routine sets the base LSN of a CLFS stream.
ClfsAlignReservedLog function 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 function The ClfsAllocReservedLog routine reserves space in a marshalling area for a set of records.
ClfsCloseAndResetLogFile function The ClfsCloseAndResetLogFile routine releases all references to a specified log file object and marks its associated stream for reset.
ClfsCloseLogFileObject function The ClfsCloseLogFileObject routine releases all references to a log file object.
ClfsCreateLogFile function 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 function 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 function The ClfsCreateScanContext routine creates a scan context that can be used to iterate over the containers of a specified CLFS log.
ClfsDeleteLogByPointer function The ClfsDeleteLogByPointer routine marks a CLFS stream for deletion.
ClfsDeleteLogFile function The ClfsDeleteLogFile routine marks a CLFS stream for deletion.
ClfsDeleteMarshallingArea function The ClfsDeleteMarshallingArea routine deletes a marshalling area.
ClfsFlushBuffers function The ClfsFlushBuffers routine forces all log I/O blocks in a specified marshalling area to stable storage.
ClfsFlushToLsn function The ClfsFlushToLsn routine forces, to stable storage, all records that have an LSN less than or equal to a specified LSN.
ClfsGetContainerName function The ClfsGetContainerName routine returns the path name of a specified container.
ClfsGetIoStatistics function The ClfsGetIoStatistics routine returns I/O statistics for a specified CLFS log.
ClfsLsnBlockOffset function The ClfsLsnBlockOffset routine returns the sector-aligned block offset contained in a specified LSN.
ClfsLsnContainer function The ClfsLsnContainer routine returns the logical container identifier contained in a specified LSN.
ClfsLsnCreate function The ClfsLsnCreate routine creates a log sequence number (LSN), given a container identifier, a block offset, and a record sequence number.
ClfsLsnEqual function The ClfsLsnEqual routine determines whether two LSNs from the same stream are equal.
ClfsLsnGreater function The ClfsLsnGreater routine determines whether one LSN is greater than another LSN. The two LSNs must be from the same stream.
ClfsLsnLess function The ClfsLsnLess routine determines whether one LSN is less than another LSN. The two LSNs must be from the same stream.
ClfsLsnNull function The ClfsLsnNull routine determines whether a specified LSN is equal to the smallest possible LSN, CLFS_LSN_NULL.
ClfsLsnRecordSequence function The ClfsLsnRecordSequence routine returns the record sequence number contained in a specified LSN.
ClfsMgmtDeregisterManagedClient function The ClfsMgmtDeregisterManagedClient routine removes the connection between a client and a log, so that the client no longer manages the log.
ClfsMgmtHandleLogFileFull function 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 function The ClfsMgmtInstallPolicy routine adds a CLFS_MGMT_POLICY structure to a physical log.
ClfsMgmtQueryPolicy function The ClfsMgmtQueryPolicy routine retrieves a specific CLFS_MGMT_POLICY structure for a log.
ClfsMgmtRegisterManagedClient function The ClfsMgmtRegisterManagedClient routine creates a client that will manage a CLFS log.
ClfsMgmtRemovePolicy function The ClfsMgmtRemovePolicy routine resets a log's CLFS_MGMT_POLICY structure to its default value.
ClfsMgmtSetLogFileSize function The ClfsMgmtSetLogFileSize routine adds containers to a log or deletes containers from a log.
ClfsMgmtSetLogFileSizeAsClient function The ClfsMgmtSetLogFileSizeAsClient routine sets the log file size by adding containers to a client log or deleting containers from a client log.
ClfsMgmtTailAdvanceFailure function The ClfsMgmtTailAdvanceFailure routine notifies CLFS management that the client could not advance the log's tail.
ClfsQueryLogFileInformation function The ClfsQueryLogFileInformation routine returns metadata and state information for a specified CLFS stream or its underlying physical log or both.
ClfsReadLogRecord function 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 function The ClfsReadNextLogRecord routine reads the next record in a sequence, relative to the current record in a read context.
ClfsReadPreviousRestartArea function The ClfsReadPreviousRestartArea routine reads the previous restart record relative to the current record in a read context.
ClfsReadRestartArea function The ClfsReadRestartArea routine reads the restart record that was most recently written to a specified CLFS stream.
ClfsRemoveLogContainer function The ClfsRemoveLogContainer routine removes a container from a CLFS log.
ClfsRemoveLogContainerSet function The ClfsRemoveLogContainerSet routine atomically removes a set of containers from a CLFS log.
ClfsReserveAndAppendLog function The ClfsReserveAndAppendLog routine reserves space in a marshalling area or appends a record to a marshalling area or does both atomically.
ClfsReserveAndAppendLogAligned function 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 function The ClfsScanLogContainers routine retrieves descriptive information for a sequence of containers that belong to a particular CLFS log.
ClfsSetArchiveTail function The ClfsSetArchiveTail routine sets the archive tail of a CLFS log to a specified LSN.
ClfsSetEndOfLog function The ClfsSetEndOfLog routine truncates a CLFS stream.
ClfsSetLogFileInformation function The ClfsSetLogFileInformation routine sets metadata and state information for a specified stream and its underlying physical log.
ClfsTerminateReadLog function The ClfsTerminateReadLog routine invalidates a specified read context after freeing resources associated with the context.
ClfsWriteRestartArea function 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 function The CmCallbackGetKeyObjectID routine retrieves the unique identifier and object name that are associated with a specified registry key object.
CmCallbackGetKeyObjectIDEx function The CmCallbackGetKeyObjectIDEx routine retrieves the unique identifier and object name that are associated with a specified registry key object.
CmCallbackReleaseKeyObjectIDEx function The CmCallbackReleaseKeyObjectIDEx routine frees an object name string obtained from the CmCallbackGetKeyObjectIDEx routine.
CmGetBoundTransaction function 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 function The CmGetCallbackVersion routine retrieves the major and minor version numbers for the current version of the configuration manager's registry callback feature.
CmRegisterCallback function The CmRegisterCallback routine is obsolete for Windows Vista and later operating system versions. Use CmRegisterCallbackEx instead.The CmRegisterCallback routine registers a RegistryCallback routine.
CmRegisterCallbackEx function The CmRegisterCallbackEx routine registers a RegistryCallback routine.
CmSetCallbackObjectContext function The CmSetCallbackObjectContext routine associates specified context information with a specified registry object.
CmUnRegisterCallback function The CmUnRegisterCallback routine unregisters a RegistryCallback routine that a CmRegisterCallback or CmRegisterCallbackEx routine previously registered.
ExAcquireResourceExclusiveLite function The ExAcquireResourceExclusiveLite routine acquires the given resource for exclusive access by the calling thread.
ExAcquireResourceSharedLite function The ExAcquireResourceSharedLite routine acquires the given resource for shared access by the calling thread.
ExAcquireRundownProtection function The ExAcquireRundownProtection routine tries to acquire run-down protection on a shared object so the caller can safely access the object.
ExAcquireRundownProtectionEx function The ExAcquireRundownProtectionEx routine tries to acquire run-down protection on a shared object so the caller can safely access the object.
ExAcquireSharedStarveExclusive function 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 function The ExAcquireSharedWaitForExclusive routine acquires the given resource for shared access if shared access can be granted and there are no exclusive waiters.
ExAllocateFromLookasideListEx function 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 function 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 function 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 function The ExAllocatePool routine is obsolete, and is exported only for existing binaries. Use ExAllocatePoolWithTag instead.ExAllocatePool allocates pool memory of the specified type and returns a pointer to the allocated block.
ExAllocatePoolWithQuota function The ExAllocatePoolWithQuota routine is obsolete, and is exported only for existing driver binaries. Use ExAllocatePoolWithQuotaTag instead.ExAllocatePoolWithQuota allocates pool memory, charging quota against the current process.
ExAllocatePoolWithQuotaTag function The ExAllocatePoolWithQuotaTag routine allocates pool memory, charging the quota against the current process.
ExAllocatePoolWithTag function The ExAllocatePoolWithTag routine allocates pool memory of the specified type and returns a pointer to the allocated block.
ExAllocatePoolWithTagPriority function The ExAllocatePoolWithTagPriority routine allocates pool memory of the specified type.
ExAllocateTimer function The ExAllocateTimer routine allocates and initializes a timer object.
ExCancelTimer function The ExCancelTimer routine cancels a timer that was set by a previous call to the ExSetTimer routine.
ExConvertExclusiveToSharedLite function The ExConvertExclusiveToSharedLite routine converts a given resource from acquired for exclusive access to acquired for shared access.
ExCreateCallback function The ExCreateCallback routine either creates a new callback object or opens an existing callback object on behalf of the caller.
ExDeleteLookasideListEx function The ExDeleteLookasideListEx routine deletes a lookaside list.
ExDeleteNPagedLookasideList function The ExDeleteNPagedLookasideList routine destroys a nonpaged lookaside list.
ExDeletePagedLookasideList function The ExDeletePagedLookasideList routine destroys a paged lookaside list.
ExDeleteResourceLite function The ExDeleteResourceLite routine deletes a given resource from the system's resource list.
ExDeleteTimer function The ExDeleteTimer routine deletes a timer object that was previously allocated by the ExAllocateTimer routine.
ExFlushLookasideListEx function The ExFlushLookasideListEx routine flushes all entries from the specified lookaside list and frees the allocated storage for each entry.
ExFreePool function The ExFreePool routine deallocates a block of pool memory.
ExFreePoolWithTag function The ExFreePoolWithTag routine deallocates a block of pool memory allocated with the specified tag.
ExFreeToLookasideListEx function The ExFreeToLookasideListEx routine inserts an entry into a lookaside list, or, if the list is full, frees the allocated storage for the entry.
ExFreeToNPagedLookasideList function The ExFreeToNPagedLookasideList routine returns a nonpaged entry to the given lookaside list or to nonpaged pool.
ExFreeToPagedLookasideList function The ExFreeToPagedLookasideList routine returns a pageable entry to the given lookaside list or to paged pool.
ExGetExclusiveWaiterCount function The ExGetExclusiveWaiterCount routine returns the number of waiters on exclusive access to a given resource.
ExGetFirmwareEnvironmentVariable function The ExGetFirmwareEnvironmentVariable routine gets the value of the specified system firmware environment variable.
ExGetFirmwareType function Returns the system firmware type.
ExGetPreviousMode function The ExGetPreviousMode routine returns the previous processor mode for the current thread.
ExGetSharedWaiterCount function The ExGetSharedWaiterCount routine returns the number of waiters on shared access to a given resource.
ExInitializeDeleteTimerParameters function The ExInitializeDeleteTimerParameters routine initializes an EXT_DELETE_PARAMETERS structure.
ExInitializeFastMutex function The ExInitializeFastMutex routine initializes a fast mutex variable, used to synchronize mutually exclusive access by a set of threads to a shared resource.
ExInitializeLookasideListEx function The ExInitializeLookasideListEx routine initializes a lookaside list.
ExInitializeNPagedLookasideList function The ExInitializeNPagedLookasideList routine initializes a lookaside list for nonpaged entries of the specified size.
ExInitializePagedLookasideList function The ExInitializePagedLookasideList routine initializes a lookaside list for pageable entries of the specified size.
ExInitializeResourceLite function The ExInitializeResourceLite routine initializes a resource variable.
ExInitializeRundownProtection function The ExInitializeRundownProtection routine initializes run-down protection on a shared object.
ExInitializeSetTimerParameters function The ExInitializeSetTimerParameters routine initializes an EXT_SET_PARAMETERS structure.
ExInterlockedAddLargeInteger function The ExInterlockedAddLargeInteger routine adds a large integer value to the specified variable as an atomic operation.
ExInterlockedAddUlong function The ExInterlockedAddUlong routine adds an unsigned long value to a given unsigned integer as an atomic operation.
ExInterlockedInsertHeadList function The ExInterlockedInsertHeadList routine atomically inserts an entry at the beginning of a doubly linked list of LIST_ENTRY structures.
ExInterlockedInsertTailList function The ExInterlockedInsertTailList routine atomically inserts an entry at the end of a doubly linked list of LIST_ENTRY structures.
ExInterlockedPopEntryList function The ExInterlockedPopEntryList routine atomically removes an entry from the beginning of a singly linked list of SINGLE_LIST_ENTRY structures.
ExInterlockedPushEntryList function The ExInterlockedPushEntryList routine atomically inserts an entry at the beginning of a singly linked list of SINGLE_LIST_ENTRY structures.
ExInterlockedRemoveHeadList function The ExInterlockedRemoveHeadList routine removes an entry from the beginning of a doubly linked list of LIST_ENTRY structures.
ExIsProcessorFeaturePresent function The ExIsProcessorFeaturePresent routine queries for the existence of a specified processor feature.
ExIsResourceAcquiredExclusiveLite function The ExIsResourceAcquiredExclusiveLite routine returns whether the current thread has exclusive access to a given resource.
ExIsResourceAcquiredSharedLite function The ExIsResourceAcquiredSharedLite routine returns whether the current thread has access (either shared or exclusive) to a given resource.
ExIsSoftBoot function Determines whether the system has gone through a soft restart.
ExLocalTimeToSystemTime function The ExLocalTimeToSystemTime routine converts a system time value for the current time zone to an unbiased, GreenGMT value.
ExNotifyCallback function The ExNotifyCallback routine causes all callback routines registered for the given object to be called.
ExQueryDepthSList function The ExQueryDepthSList routine returns the number of entries currently in a given sequenced singly linked list.
ExQueryTimerResolution function The ExQueryTimerResolution routine reports the range of timer resolutions that are supported by the system clock.
ExRaiseAccessViolation function 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 function 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 function 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.
ExReInitializeRundownProtection function The ExReInitializeRundownProtection routine reinitializes an EX_RUNDOWN_REF structure after the associated object is run down.
ExRegisterCallback function The ExRegisterCallback routine registers a given callback routine with a given callback object.
ExReinitializeResourceLite function The ExReinitializeResourceLite routine reinitializes an existing resource variable.
ExReleaseResourceForThreadLite function The ExReleaseResourceForThreadLite routine releases the input resource of the indicated thread.
ExReleaseResourceLite function The ExReleaseResourceLite routine releases a specified executive resource owned by the current thread.
ExReleaseRundownProtection function The ExReleaseRundownProtection routine releases run-down protection that the caller previously acquired by calling the ExAcquireRundownProtection routine.
ExReleaseRundownProtectionEx function The ExReleaseRundownProtectionEx routine releases run-down protection that the caller previously acquired by calling the ExAcquireRundownProtectionEx routine.
ExReleaseSpinLockExclusive function The ExReleaseSpinLockExclusive routine releases a spin lock that the caller previously acquired for exclusive access, and restores the IRQL to its original value.
ExReleaseSpinLockShared function 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.
ExRundownCompleted function The ExRundownCompleted routine updates the run-down status of a shared object to indicate that the run down of the object has completed.
ExSetFirmwareEnvironmentVariable function The ExSetFirmwareEnvironmentVariable routine sets the value of the specified system firmware environment variable.
ExSetResourceOwnerPointer function The ExSetResourceOwnerPointer routine sets the owner thread pointer for an executive resource.
ExSetResourceOwnerPointerEx function 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 function The ExSetTimer routine starts a timer operation and sets the timer to expire at the specified due time.
ExSetTimerResolution function The ExSetTimerResolution routine modifies the frequency at which the system clock interrupts. Use this routine with extreme caution (see the following Remarks section).
ExSystemTimeToLocalTime function The ExSystemTimeToLocalTime routine converts a GMT system time value to the local system time for the current time zone.
ExTryConvertSharedSpinLockExclusive function The ExTryConvertSharedSpinLockExclusive routine attempts to convert the access state of a spin lock from acquired for shared access to exclusive access.
ExUnregisterCallback function 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 function The ExUuidCreate routine initializes a UUID (GUID) structure to a newly generated value.
ExWaitForRundownProtectionRelease function The ExWaitForRundownProtectionRelease routine waits until all drivers that have already been granted run-down protection complete their accesses of the shared object.
FirstEntrySList function The FirstEntrySList routine returns the first entry in a sequenced singly linked list.
HalAllocateHardwareCounters function The HalAllocateHardwareCounters routine allocates a set of hardware performance counters.
HalExamineMBR function The HalExamineMBR routine reads the master boot record (MBR) of a disk and returns data from the MBR if the MBR is of the type specified by the caller.
HalFreeHardwareCounters function The HalFreeHardwareCounters routine frees a set of hardware performance counters that was acquired in a previous call to HalAllocateHardwareCounters routine.
InitializeListHead function The InitializeListHead routine initializes a LIST_ENTRY structure that represents the head of a doubly linked list.
InitializeSListHead function The InitializeSListHead routine (or ExInitializeSListHead) initializes an SLIST_HEADER structure that represents the head of a sequenced singly linked list.
InsertHeadList function The InsertHeadList routine inserts an entry at the head of a doubly linked list of LIST_ENTRY structures.
InsertTailList function The InsertTailList routine inserts an entry at the tail of a doubly linked list of LIST_ENTRY structures.
InterlockedAnd function The InterlockedAnd macro atomically computes a bitwise AND operation.
InterlockedCompareExchange function The InterlockedCompareExchange routine performs an atomic operation that compares the input value pointed to by Destination with the value of Comparand.
InterlockedCompareExchangePointer function The InterlockedCompareExchangePointer routine performs an atomic operation that compares the input pointer value pointed to by Destination with the pointer value Comparand.
InterlockedDecrement function The InterlockedDecrement routine decrements a caller-supplied variable of type LONG as an atomic operation.
InterlockedExchange function The InterlockedExchange routine sets an integer variable to a given value as an atomic operation.
InterlockedExchangeAdd function The InterlockedExchangeAdd routine adds a value to a given integer as an atomic operation and returns the original value of the given integer.
InterlockedExchangePointer function The InterlockedExchangePointer routine performs an atomic operation that sets a pointer to a new value.
InterlockedIncrement function The InterlockedIncrement routine increments a caller-supplied variable as an atomic operation.
InterlockedOr function The InterlockedOr routine atomically computes a bitwise OR operation.
InterlockedXor function The InterlockedOr routine atomically computes a bitwise exclusive OR operation.
IoAllocateController function 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 function The IoAllocateDriverObjectExtension routine allocates a per-driver context area, called a driver object extension, and assigns a unique identifier to it.
IoAllocateErrorLogEntry function 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 function 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.
IoAllocateMdl function 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 function The IoAllocateWorkItem routine allocates a work item.
IoAttachDevice function 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 function 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 function The IoBuildAsynchronousFsdRequest routine allocates and sets up an IRP to be sent to lower-level drivers.
IoBuildDeviceIoControlRequest function The IoBuildDeviceIoControlRequest routine allocates and sets up an IRP for a synchronously processed device control request.
IoBuildPartialMdl function The IoBuildPartialMdl routine builds a new memory descriptor list (MDL) that represents part of a buffer that is described by an existing MDL.
IoBuildSynchronousFsdRequest function The IoBuildSynchronousFsdRequest routine allocates and sets up an IRP for a synchronously processed I/O request.
IoCancelIrp function The IoCancelIrp routine sets the cancel bit in a given IRP and calls the cancel routine for the IRP if there is one.
IoCheckLinkShareAccess function 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 function 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 function 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 function The IoClearActivityIdThread routine clears the activity ID of the current thread.
IoConnectInterrupt function 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 function For more information, see the WdmlibIoConnectInterruptEx function.#define IoConnectInterruptEx WdmlibIoConnectInterruptEx
IoCopyCurrentIrpStackLocationToNext function 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 function The IoCreateController routine allocates memory for and initializes a controller object with a controller extension of a driver-determined size.
IoCreateDevice function The IoCreateDevice routine creates a device object for use by a driver.
IoCreateFile function 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 function 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 function The IoCreateSymbolicLink routine sets up a symbolic link between a device object name and a user-visible name for the device.
IoCreateSynchronizationEvent function The IoCreateSynchronizationEvent routine creates or opens a named synchronization event for use in serialization of access to hardware between two otherwise unrelated drivers.
IoCreateSystemThread function The IoCreateSystemThread routine creates a system thread that executes in kernel mode, and supplies a handle for the thread.
IoCreateUnprotectedSymbolicLink function The IoCreateUnprotectedSymbolicLink routine sets up an unprotected symbolic link between a device object name and a corresponding Win32-visible name.
IoCsqInitialize function The IoCsqInitialize routine initializes the driver's cancel-safe IRP queue dispatch table.
IoCsqInitializeEx function The IoCsqInitializeEx routine initializes the dispatch table for a cancel-safe IRP queue.
IoCsqInsertIrp function The IoCsqInsertIrp routine inserts an IRP in the driver's cancel-safe IRP queue.
IoCsqInsertIrpEx function The IoCsqInsertIrpEx routine inserts an IRP into the driver's cancel-safe IRP queue.
IoCsqRemoveIrp function The IoCsqRemoveIrp routine removes a particular IRP from the queue.
IoCsqRemoveNextIrp function The IoCsqRemoveNextIrp routine removes the next matching IRP in the queue.
IoDecrementKeepAliveCount function The IoDecrementKeepAliveCount routine decrements a reference count associated with an Windows app on a specific device.
IoDeleteController function The IoDeleteController routine removes a given controller object from the system, for example, when the driver that created it is being unloaded.
IoDeleteDevice function The IoDeleteDevice routine removes a device object from the system, for example, when the underlying device is removed from the system.
IoDeleteSymbolicLink function The IoDeleteSymbolicLink routine removes a symbolic link from the system.
IoDetachDevice function The IoDetachDevice routine releases an attachment between the caller's device object and a lower driver's device object.
IoDisconnectInterrupt function 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 function For more information, see the WdmlibIoDisconnectInterruptEx function.#define IoDisconnectInterruptEx WdmlibIoDisconnectInterruptEx
IoForwardIrpSynchronously function The IoForwardIrpSynchronously routine sends an IRP to a specified driver and waits for that driver to complete the IRP.
IoFreeController function The IoFreeController routine releases a previously allocated controller object when the driver has completed an I/O request.
IoFreeErrorLogEntry function The IoFreeErrorLogEntry routine frees an unused error log entry.
IoFreeIrp function The IoFreeIrp routine releases a caller-allocated IRP from the caller's IoCompletion routine.
IoFreeMdl function The IoFreeMdl routine releases a caller-allocated memory descriptor list (MDL).
IoFreeWorkItem function The IoFreeWorkItem routine frees a work item that was allocated by IoAllocateWorkItem.
IoGetActivityIdIrp function The IoGetActivityIdIrp routine retrieves the current activity ID associated with an IRP.
IoGetActivityIdThread function The IoGetActivityIdThread routine returns the activity ID associated with the current thread.
IoGetAffinityInterrupt function For more information, see the WdmlibIoGetAffinityInterrupt function.#define IoGetAffinityInterrupt WdmlibIoGetAffinityInterrupt
IoGetAttachedDeviceReference function The IoGetAttachedDeviceReference routine returns a pointer to the highest level device object in a driver stack and increments the reference count on that object.
IoGetBootDiskInformation function The IoGetBootDiskInformation routine returns information describing the boot and system disks.
IoGetConfigurationInformation function The IoGetConfigurationInformation routine returns a pointer to the I/O manager's global configuration information structure, which contains the current values for how many physical disk, floppy, CD-ROM, tape, SCSI HBA, serial, and parallel devices have device objects created to represent them by drivers as they are loaded.
IoGetContainerInformation function The IoGetContainerInformation routine provides information about the current state of a user session.
IoGetCurrentIrpStackLocation function The IoGetCurrentIrpStackLocation routine returns a pointer to the caller's I/O stack location in the specified IRP.
IoGetCurrentProcess function The IoGetCurrentProcess routine returns a pointer to the current process.
IoGetDeviceInterfaceAlias function The IoGetDeviceInterfaceAlias routine returns the alias device interface of the specified device interface instance, if the alias exists.
IoGetDeviceInterfacePropertyData function The IoGetDeviceInterfacePropertyData routine retrieves the current value of a device interface property.
IoGetDeviceInterfaces function 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 function The IoGetDeviceNumaNode routine gets the node number of a device.
IoGetDeviceObjectPointer function 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 function The IoGetDeviceProperty routine retrieves information about a device such as configuration information and the name of its PDO.
IoGetDevicePropertyData function The IoGetDevicePropertyData routine retrieves the current setting for a device property.
IoGetDmaAdapter function The IoGetDmaAdapter routine returns a pointer to the DMA adapter structure for a physical device object.
IoGetDriverObjectExtension function The IoGetDriverObjectExtension routine retrieves a previously allocated per-driver context area.
IoGetFileObjectGenericMapping function The IoGetFileObjectGenericMapping routine returns information about the mapping between each generic access right and the set of specific access rights for file objects.
IoGetInitialStack function The IoGetInitialStack routine returns the base address of the current thread's stack.
IoGetInitiatorProcess function The IoGetInitiatorProcess routine retrieves the process which initiated the creation of a file object if different than the process which is issuing the create.
IoGetIoPriorityHint function The IoGetIoPriorityHint routine gets the priority hint value from an IRP.
IoGetNextIrpStackLocation function 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 function The IoGetPagingIoPriority routine indicates the priority level of a paging I/O request.
IoGetRelatedDeviceObject function Given a file object, the IoGetRelatedDeviceObject routine returns a pointer to the corresponding device object.
IoGetRemainingStackSize function The IoGetRemainingStackSize routine returns the current amount of available kernel-mode stack space.
IoGetStackLimits function The IoGetStackLimits routine returns the boundaries of the current thread's stack frame.
IoIncrementKeepAliveCount function The IoIncrementKeepAliveCount routine increments a reference count associated with an Windows app process on a specific device.
IoInitializeDpcRequest function The IoInitializeDpcRequest routine registers a driver-supplied DpcForIsr routine.
IoInitializeIrp function The IoInitializeIrp routine initializes a given IRP that was allocated by the caller.
IoInitializeTimer function The IoInitializeTimer routine sets up a driver-supplied IoTimer routine associated with a given device object.
IoInitializeWorkItem function The IoInitializeWorkItem routine initializes a work item that the caller has already allocated.
IoInvalidateDeviceRelations function 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 function The IoInvalidateDeviceState routine notifies the PnP manager that some aspect of the PnP state of a device has changed.
IoIs32bitProcess function The IoIs32bitProcess routine checks whether the originator of the current I/O request is a 32-bit user-mode application.
IoIsValidIrpStatus function The IoIsValidIrpStatus routine validates the specified NTSTATUS status code value.
IoIsWdmVersionAvailable function The IoIsWdmVersionAvailable routine checks whether a given WDM version is supported by the operating system.
IoMakeAssociatedIrp function This routine is reserved for use by file systems and file system filter drivers.
IoMarkIrpPending function The IoMarkIrpPending routine marks the specified IRP, indicating that a driver's dispatch routine subsequently returned STATUS_PENDING because further processing is required by other driver routines.
IoOpenDeviceInterfaceRegistryKey function The IoOpenDeviceInterfaceRegistryKey routine returns a handle to a registry key for storing information about a particular device interface instance.
IoOpenDeviceRegistryKey function The IoOpenDeviceRegistryKey routine returns a handle to a device-specific or a driver-specific registry key for a particular device instance.
IoPropagateActivityIdToThread function The IoPropagateActivityIdToThread routine associates the activity ID from an IRP with the current thread.
IoQueryFullDriverPath function The IoQueryFullDriverPath routine retrieves the full path name of the binary file that is loaded for the specified driver object.
IoQueueWorkItem function 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 function 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 function 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 function 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 function 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 function 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 function The IoRegisterContainerNotification routine registers a kernel-mode driver to receive notifications about a specified class of events.
IoRegisterDeviceInterface function 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 function 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 function 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 function 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 function The IoRegisterShutdownNotification routine registers the driver to receive an IRP_MJ_SHUTDOWN IRP when the system is shut down.
IoRemoveLinkShareAccess function The IoRemoveLinkShareAccess routine removes the access and link share-access information for a given open instance of a file object.
IoRemoveShareAccess function The IoRemoveShareAccess routine removes the access and share-access information for a given open instance of a file object.
IoReportDetectedDevice function The IoReportDetectedDevice routine reports a non-PnP device to the PnP manager.
IoReportInterruptActive function The IoReportInterruptActive routine informs the operating system that a registered interrupt service routine (ISR) is active and ready to handle interrupt requests.
IoReportInterruptInactive function The IoReportInterruptInactive routine informs the operating system that a registered interrupt service routine (ISR) is inactive and is not expecting interrupt requests.
IoReportResourceForDetection function The IoReportResourceForDetection routine claims hardware resources in the configuration registry for a legacy device.
IoReportRootDevice function 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 function The IoReportTargetDeviceChange routine notifies the PnP manager that a custom event has occurred on a device.
IoReportTargetDeviceChangeAsynchronous function The IoReportTargetDeviceChangeAsynchronous routine notifies the PnP manager that a custom event has occurred on a device.
IoRequestDeviceEject function The IoRequestDeviceEject routine notifies the PnP manager that the device eject button was pressed.
IoRequestDpc function The IoRequestDpc routine queues a driver-supplied DpcForIsr routine to complete interrupt-driven I/O processing at a lower IRQL.
IoReuseIrp function The IoReuseIrp routine reinitializes an IRP so that it can be reused.
IoSetActivityIdIrp function The IoSetActivityIdIrp routine associates an activity ID with an IRP.
IoSetActivityIdThread function 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 function The IoSetCancelRoutine routine sets up a driver-supplied Cancel routine to be called if a given IRP is canceled.
IoSetCompletionRoutine function 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 function 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 function The IoSetDeviceInterfacePropertyData routine modifies the current value of a device interface property.
IoSetDeviceInterfaceState function The IoSetDeviceInterfaceState routine enables or disables an instance of a previously registered device interface class.
IoSetDevicePropertyData function The IoSetDevicePropertyData routine modifies the current setting for a device property.
IoSetHardErrorOrVerifyDevice function 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 function The IoSetIoPriorityHint routine sets the priority hint value for an IRP.
IoSetLinkShareAccess function The IoSetLinkShareAccess routine sets the access rights for link sharing the specified file object.
IoSetMasterIrpStatus function The IoSetMasterIrpStatus routine conditionally replaces the Status value in an IRP with the specified NTSTATUS value.
IoSetNextIrpStackLocation function The IoSetNextIrpStackLocation routine sets the IRP stack location in a driver-allocated IRP to that of the caller.
IoSetShareAccess function The IoSetShareAccess routine sets the access rights for sharing the given file object.
IoSetShareAccessEx function The IoSetShareAccessEx routine sets the access rights for sharing the specified file object.
IoSetStartIoAttributes function The IoSetStartIoAttributes routine sets attributes for the driver's StartIo routine.
IoSetSystemPartition function The IoSetSystemPartition routine sets the boot partition for the system.
IoSetThreadHardErrorMode function The IoSetThreadHardErrorMode routine enables or disables hard error reporting for the current thread.
IoSizeofWorkItem function The IoSizeofWorkItem routine returns the size, in bytes, of an IO_WORKITEM structure.
IoStartNextPacket function The IoStartNextPacket routine dequeues the next IRP, if any, from the given device object's associated device queue and calls the driver's StartIo routine.
IoStartNextPacketByKey function The IoStartNextPacketByKey routine dequeues the next I/O request packet from the specified device object's associated device queue according to a specified sort-key value and calls the driver's StartIo routine with that IRP.
IoStartPacket function The IoStartPacket routine calls the driver's StartIo routine with the given IRP or inserts the IRP into the device queue associated with the given device object if the device is already busy.
IoStartTimer function The IoStartTimer routine enables the timer associated with a given device object so the driver-supplied IoTimer routine is called once per second.
IoStopTimer function The IoStopTimer routine disables the timer for a specified device object so the driver-supplied IoTimer routine is not called.
IoTransferActivityId function 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 function The IoUninitializeWorkItem routine uninitializes a work item that was initialized by IoInitializeWorkItem.
IoUnregisterBootDriverCallback function The IoUnRegisterBootDriverCallback routine unregisters a previously registered BOOT_DRIVER_CALLBACK_FUNCTION routine.
IoUnregisterContainerNotification function The IoUnregisterContainerNotification routine cancels a container notification registration that was previously created by the IoRegisterContainerNotification routine.
IoUnregisterPlugPlayNotification function This routine is obsolete in Windows 7 and later versions of Windows. For more information, see the following Remarks section.The IoUnregisterPlugPlayNotification routine removes the registration of a driver's callback routine for a PnP event.
IoUnregisterPlugPlayNotificationEx function The IoUnregisterPlugPlayNotificationEx routine cancels the registration of a driver's callback routine for notifications of Plug and Play (PnP) events.
IoUnregisterShutdownNotification function The IoUnregisterShutdownNotification routine removes a registered driver from the shutdown notification queue.
IoUpdateLinkShareAccess function The IoUpdateLinkShareAccess routine updates the share access for the given file object, usually when the file is being opened.
IoUpdateShareAccess function The IoUpdateShareAccess routine updates the share access for the given file object, usually when the file is being opened.
IoValidateDeviceIoControlAccess function For more information, see the WdmlibIoValidateDeviceIoControlAccess function.
IoVerifyPartitionTable function The IoVerifyPartitionTable routine checks the validity of the partition table for a disk.
IoVolumeDeviceToDosName function The IoVolumeDeviceToDosName routine returns the MS-DOS path for a specified device object that represents a file system volume.
IoWMIAllocateInstanceIds function The IoWMIAllocateInstanceIds routine allocates one or more instance IDs that are unique to the GUID.
IoWMIDeviceObjectToInstanceName function The IoWMIDeviceObjectToInstanceName routine determines the instance name for the WMI class instance implemented by the driver that is specified by a device object.
IoWMIDeviceObjectToProviderId function The IoWMIDeviceObjectToProviderId routine translates the specified device object into the corresponding WMI Provider ID.
IoWMIExecuteMethod function The IoWMIExecuteMethod routine runs a WMI class method on the specified WMI data block instance.
IoWMIHandleToInstanceName function The IoWMIHandleToInstanceName routine determines the instance name for the WMI class instance implemented by the driver that is specified by a file handle.
IoWMIOpenBlock function The IoWMIOpenBlock routine opens the WMI data block object for the specified WMI class.
IoWMIQueryAllData function The IoWMIQueryAllData routine returns all WMI data blocks that implement a given WMI class.
IoWMIQueryAllDataMultiple function The IoWMIQueryAllDataMultiple routine returns all WMI data blocks that implement one of a set of WMI classes.
IoWMIQuerySingleInstance function The IoWMIQuerySingleInstance routine returns the specified instance of a WMI data block.
IoWMIQuerySingleInstanceMultiple function The IoWMIQuerySingleInstanceMultiple routine returns all WMI data block instances that implement the specified WMI classes with the specified instance names.
IoWMIRegistrationControl function The IoWMIRegistrationControl routine registers or unregisters the caller as a WMI data provider for a specified device object.
IoWMISetNotificationCallback function The IoWMISetNotificationCallback routine registers a notification callback for a WMI event.
IoWMISetSingleInstance function The IoWMISetSingleInstance routine sets the values for properties within the data block instance that matches the specified WMI class and instance name.
IoWMISetSingleItem function The IoWMISetSingleItem routine sets a single property in the data block instance that matches the specified WMI class and instance name.
IoWMISuggestInstanceName function 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 function The IoWMIWriteEvent routine delivers a given event to the user-mode WMI components for notification.
IoWithinStackLimits function The IoWithinStackLimits routine determines whether a region of memory is within the stack limit of the current thread.
IoWriteErrorLogEntry function The IoWriteErrorLogEntry routine queues a given error log packet to the system error logging thread.
IsListEmpty function The IsListEmpty routine indicates whether a doubly linked list of LIST_ENTRY structures is empty.
KeAreAllApcsDisabled function 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 function The KeAreApcsDisabled routine returns whether the calling thread is within a critical region or a guarded region, which disables normal kernel APC delivery.
KeAreApcsDisabled function The KeAreApcsDisabled routine returns whether the calling thread is within a critical region or a guarded region, which disables normal kernel APC delivery.
KeBugCheck function 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 function 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 function The KeCancelTimer routine dequeues a timer object before the timer interval, if any was set, expires.
KeClearEvent function The KeClearEvent routine sets an event to a not-signaled state.
KeConvertAuxiliaryCounterToPerformanceCounter function The KeConvertAuxiliaryCounterToPerformanceCounter routine converts the specified auxiliary counter value into a performance counter value.
KeConvertPerformanceCounterToAuxiliaryCounter function The KeConvertPerformanceCounterToAuxiliaryCounter routine converts the specified performance counter value into an auxiliary counter value.
KeDelayExecutionThread function The KeDelayExecutionThread routine puts the current thread into an alertable or nonalertable wait state for a specified interval.
KeDeregisterBoundCallback function The KeDeregisterBoundCallback routine deregisters a user-mode bound exception callback registered by KeRegisterBoundCallback.
KeDeregisterBugCheckCallback function The KeDeregisterBugCheckCallback routine removes a callback routine that was registered by KeRegisterBugCheckCallback.
KeDeregisterBugCheckReasonCallback function The KeDeregisterBugCheckReasonCallback routine removes a callback routine that was registered by KeRegisterBugCheckReasonCallback.
KeDeregisterNmiCallback function The KeDeregisterNmiCallback routine deregisters a nonmaskable interrupt (NMI) callback registered by KeRegisterNmiCallback.
KeDeregisterProcessorChangeCallback function The KeDeregisterProcessorChangeCallback routine unregisters a callback function that was previously registered with the operating system by calling the KeRegisterProcessorChangeCallback routine.
KeEnterCriticalRegion function The KeEnterCriticalRegion routine temporarily disables the execution of normal kernel APCs, but does not prevent special kernel APCs from running.
KeEnterCriticalRegion function The KeEnterCriticalRegion routine temporarily disables the execution of normal kernel APCs, but does not prevent special kernel APCs from running.
KeEnterGuardedRegion function The KeEnterGuardedRegion routine enters a guarded region, which disables all kernel-mode APC delivery to the current thread.
KeEnterGuardedRegion function The KeEnterGuardedRegion routine enters a guarded region, which disables all kernel-mode APC delivery to the current thread.
KeExpandKernelStackAndCallout function The KeExpandKernelStackAndCallout routine calls a routine with a guaranteed amount of stack space.
KeFlushIoBuffers function The KeFlushIoBuffers routine flushes the memory region described by an MDL from caches of all processors.
KeFlushQueuedDpcs function The KeFlushQueuedDpcs routine returns after all queued DPCs on all processors have executed.
KeGetCurrentIrql function The KeGetCurrentIrql routine returns the current IRQL.
KeGetCurrentNodeNumber function The KeGetCurrentNodeNumber routine gets the NUMA node number for the logical processor that the caller is running on.
KeGetCurrentNodeNumber function The KeGetCurrentNodeNumber routine gets the NUMA node number for the logical processor that the caller is running on.
KeGetCurrentProcessorNumber function The KeGetCurrentProcessorNumber routine returns the system-assigned number of the current processor on which the caller is running.
KeGetCurrentProcessorNumberEx function The KeGetCurrentProcessorNumberEx routine gets the processor number of the logical processor that the caller is running on.
KeGetCurrentProcessorNumberEx function The KeGetCurrentProcessorNumberEx routine gets the processor number of the logical processor that the caller is running on.
KeGetCurrentThread function The KeGetCurrentThread routine identifies the current thread.
KeGetProcessorIndexFromNumber function The KeGetProcessorIndexFromNumber routine converts a group number and a group-relative processor number to a systemwide processor index.
KeGetProcessorNumberFromIndex function The KeGetProcessorNumberFromIndex routine converts a systemwide processor index to a group number and a group-relative processor number.
KeGetRecommendedSharedDataAlignment function The KeGetRecommendedSharedDataAlignment routine returns the preferred alignment for memory structures that can be accessed by more than one processor.
KeInitializeCrashDumpHeader function The KeInitializeCrashDumpHeader routine supplies the header information the system requires for a crash dump file.
KeInitializeCrashDumpHeader function The KeInitializeCrashDumpHeader routine supplies the header information the system requires for a crash dump file.
KeInitializeDeviceQueue function The KeInitializeDeviceQueue routine initializes a device queue object to a not-busy state.
KeInitializeDpc function The KeInitializeDpc routine initializes a DPC object, and registers a CustomDpc routine for that object.
KeInitializeEvent function 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 function The KeInitializeGuardedMutex routine initializes a guarded mutex.
KeInitializeMutex function The KeInitializeMutex routine initializes a mutex object, setting it to a signaled state.
KeInitializeSemaphore function The KeInitializeSemaphore routine initializes a semaphore object with a specified count and specifies an upper limit that the count can attain.
KeInitializeSpinLock function The KeInitializeSpinLock routine initializes a variable of type KSPIN_LOCK.
KeInitializeThreadedDpc function The KeInitializeThreadedDpc routine initializes a threaded DPC object, and registers a CustomThreadedDpc routine for that object.
KeInitializeTimer function The KeInitializeTimer routine initializes a timer object.
KeInitializeTimerEx function The KeInitializeTimerEx routine initializes an extended kernel timer object.
KeInsertByKeyDeviceQueue function 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 function 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 function The KeInsertQueueDpc routine queues a DPC for execution.
KeInvalidateAllCaches function The KeInvalidateAllCaches routine flushes all processor caches.
KeIpiGenericCall function The KeIpiGenericCall routine causes the specified routine to run on all processors simultaneously.
KeLeaveCriticalRegion function The KeLeaveCriticalRegion routine reenables the delivery of normal kernel-mode APCs that were disabled by a preceding call to KeEnterCriticalRegion.
KeLeaveCriticalRegion function The KeLeaveCriticalRegion routine reenables the delivery of normal kernel-mode APCs that were disabled by a preceding call to KeEnterCriticalRegion.
KeLeaveGuardedRegion function The KeLeaveGuardedRegion routine exits a guarded region entered by KeEnterGuardedRegion.
KeLeaveGuardedRegion function The KeLeaveGuardedRegion routine exits a guarded region entered by KeEnterGuardedRegion.
KeMemoryBarrier function The KeMemoryBarrier routine creates a barrier at its position in the code—across which the compiler and the processor cannot move any operations.
KePulseEvent function 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 function The KeQueryActiveGroupCount routine returns the number of active processor groups in a multiprocessor system.
KeQueryActiveGroupCount function The KeQueryActiveGroupCount routine returns the number of active processor groups in a multiprocessor system.
KeQueryActiveProcessorCount function The KeQueryActiveProcessorCount routine returns the number of currently active processors.
KeQueryActiveProcessorCount function The KeQueryActiveProcessorCount routine returns the number of currently active processors.
KeQueryActiveProcessorCountEx function The KeQueryActiveProcessorCountEx routine returns the number of active logical processors in a specified group in a multiprocessor system or in the entire system.
KeQueryActiveProcessorCountEx function The KeQueryActiveProcessorCountEx routine returns the number of active logical processors in a specified group in a multiprocessor system or in the entire system.
KeQueryActiveProcessors function The KeQueryActiveProcessors routine returns a bitmask of the currently active processors.
KeQueryActiveProcessors function The KeQueryActiveProcessors routine returns a bitmask of the currently active processors.
KeQueryAuxiliaryCounterFrequency function The KeQueryAuxiliaryCounterFrequency routine returns frequency of the auxiliary counter in units of Hz.
KeQueryDpcWatchdogInformation function The KeQueryDpcWatchdogInformation routine returns the deferred procedure call (DPC) watchdog timer values for the current processor.
KeQueryGroupAffinity function The KeQueryGroupAffinity routine returns an affinity mask that identifies the active logical processors in a specified group in a multiprocessor system.
KeQueryGroupAffinity function The KeQueryGroupAffinity routine returns an affinity mask that identifies the active logical processors in a specified group in a multiprocessor system.
KeQueryHardwareCounterConfiguration function The KeQueryHardwareCounterConfiguration routine queries the operating system for the list of hardware counters to use for thread profiling.
KeQueryHighestNodeNumber function The KeQueryHighestNodeNumber routine returns the highest node number in a multiprocessor system that has a non-uniform memory access (NUMA) architecture.
KeQueryHighestNodeNumber function The KeQueryHighestNodeNumber routine returns the highest node number in a multiprocessor system that has a non-uniform memory access (NUMA) architecture.
KeQueryInterruptTime function The KeQueryInterruptTime routine returns the current value of the system interrupt time count, with accuracy to within system clock tick.
KeQueryInterruptTimePrecise function The KeQueryInterruptTimePrecise routine returns the current value of the system interrupt time count, with accuracy to within a microsecond.
KeQueryLogicalProcessorRelationship function The KeQueryLogicalProcessorRelationship routine gets information about the relationships of one or more processors to the other processors in a multiprocessor system.
KeQueryLogicalProcessorRelationship function The KeQueryLogicalProcessorRelationship routine gets information about the relationships of one or more processors to the other processors in a multiprocessor system.
KeQueryMaximumGroupCount function The KeQueryMaximumGroupCount routine returns the maximum number of groups in a multiprocessor system.
KeQueryMaximumGroupCount function The KeQueryMaximumGroupCount routine returns the maximum number of groups in a multiprocessor system.
KeQueryMaximumProcessorCount function The KeQueryMaximumProcessorCount routine returns the maximum number of processors.
KeQueryMaximumProcessorCount function The KeQueryMaximumProcessorCount routine returns the maximum number of processors.
KeQueryMaximumProcessorCountEx function The KeQueryMaximumProcessorCountEx routine returns the maximum number of logical processors in a specified group in a multiprocessor system.
KeQueryMaximumProcessorCountEx function The KeQueryMaximumProcessorCountEx routine returns the maximum number of logical processors in a specified group in a multiprocessor system.
KeQueryNodeActiveAffinity function 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.
KeQueryNodeActiveAffinity function 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.
KeQueryNodeMaximumProcessorCount function 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 function 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 function The KeQueryPerformanceCounter routine retrieves the current value and frequency of the performance counter.Use KeQueryPerformanceCounter to acquire high resolution (<1us) time stamps for time interval measurements.
KeQueryPriorityThread function The KeQueryPriorityThread routine returns the current priority of a particular thread.
KeQueryRuntimeThread function The KeQueryRuntimeThread routine reports the accumulated kernel-mode and user-mode run time of a thread, in clock ticks.
KeQuerySystemTimePrecise function The KeQuerySystemTimePrecise routine retrieves the current system time, and is more precise than the KeQuerySystemTime routine.
KeQueryTimeIncrement function The KeQueryTimeIncrement routine returns the number of 100-nanosecond units that are added to the system time each time the interval clock interrupts.
KeQueryTotalCycleTimeThread function The KeQueryTotalCycleTimeThread routine returns the accumulated cycle time for the specified thread.
KeQueryUnbiasedInterruptTime function The KeQueryUnbiasedInterruptTime routine returns the current value of the system interrupt time count.
KeRaiseIrqlToDpcLevel function 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 function 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 function The KeReadStateEvent routine returns the current state, signaled or not-signaled, of an event object.
KeReadStateMutex function The KeReadStateMutex routine returns the current state, signaled or not-signaled, of the specified mutex object.
KeReadStateSemaphore function The KeReadStateSemaphore routine returns the current state, signaled or not-signaled, of the specified semaphore object.
KeReadStateTimer function The KeReadStateTimer routine reads the current state of a timer object.
KeRegisterBoundCallback function The KeRegisterBoundCallback routine registers a routine to be called whenever a user-mode bound exception occurs.
KeRegisterBugCheckCallback function The KeRegisterBugCheckCallback routine registers a BugCheckCallback routine, which executes when the operating system issues a bug check.
KeRegisterBugCheckReasonCallback function The KeRegisterBugCheckReasonCallback routine registers a BugCheckDumpIoCallback, BugCheckSecondaryDumpDataCallback, or BugCheckAddPagesCallback routine, which executes when the operating system issues a bug check.
KeRegisterNmiCallback function The KeRegisterNmiCallback routine registers a routine to be called whenever a nonmaskable interrupt (NMI) occurs.
KeRegisterProcessorChangeCallback function 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 function The KeReleaseGuardedMutex routine releases a guarded mutex acquired with KeAcquireGuardedMutex or KeTryToAcquireGuardedMutex.
KeReleaseGuardedMutexUnsafe function The KeReleaseGuardedMutexUnsafe routine releases a guarded mutex acquired by KeAcquireGuardedMutexUnsafe.
KeReleaseInStackQueuedSpinLock function The KeReleaseInStackQueuedSpinLock routine releases a queued spin lock acquired by KeAcquireInStackQueuedSpinLock.
KeReleaseInStackQueuedSpinLockForDpc function The KeReleaseInStackQueuedSpinLockForDpc routine releases a queued spin lock that was acquired by calling KeAcquireInStackQueuedSpinLockForDpc.
KeReleaseInStackQueuedSpinLockFromDpcLevel function The KeReleaseInStackQueuedSpinLockFromDpcLevel routine releases a queued spin lock acquired by KeAcquireInStackQueuedSpinLockAtDpcLevel.
KeReleaseInterruptSpinLock function The KeReleaseInterruptSpinLock routine releases an interrupt spin lock acquired by KeAcquireInterruptSpinLock.
KeReleaseMutex function 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 function The KeReleaseSemaphore routine releases the specified semaphore object.
KeReleaseSpinLockForDpc function The KeReleaseSpinLockForDpc routine releases a spin lock that was acquired by calling KeAcquireSpinLockForDpc.
KeRemoveByKeyDeviceQueue function The KeRemoveByKeyDeviceQueue routine removes an entry, selected according to a sort key value, from the specified device queue.
KeRemoveDeviceQueue function The KeRemoveDeviceQueue routine removes an entry from the head of a specified device queue.
KeRemoveEntryDeviceQueue function 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 function The KeRemoveQueueDpc routine removes the specified DPC object from the system DPC queue.
KeResetEvent function The KeResetEvent routine resets a specified event object to a not-signaled state and returns the previous state of that event object.
KeRestoreExtendedProcessorState function The KeRestoreExtendedProcessorState routine restores extended processor state information that was previously saved.
KeRestoreFloatingPointState function The KeRestoreFloatingPointState routine restores the nonvolatile floating-point context saved by the preceding call to KeSaveFloatingPointState.
KeRevertToUserAffinityThreadEx function The KeRevertToUserAffinityThreadEx routine restores the previous affinity of the current thread.
KeRevertToUserGroupAffinityThread function The KeRevertToUserGroupAffinityThread routine restores the group affinity of the calling thread to its original value at the time that the thread was created.
KeSaveExtendedProcessorState function The KeSaveExtendedProcessorState routine saves extended processor state information.
KeSaveFloatingPointState function The KeSaveFloatingPointState routine saves the nonvolatile floating-point context so the caller can carry out floating-point operations.
KeSetBasePriorityThread function The KeSetBasePriorityThread routine sets the run-time priority, relative to the current process, for a given thread.
KeSetCoalescableTimer function 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 function 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 function The KeSetHardwareCounterConfiguration routine specifies a list of hardware counters to use for thread profiling.
KeSetImportanceDpc function The KeSetImportanceDpc routine specifies how soon the DPC routine is run.
KeSetImportanceDpc function The KeSetImportanceDpc routine specifies how soon the DPC routine is run.
KeSetPriorityThread function The KeSetPriorityThread routine sets the run-time priority of a driver-created thread.
KeSetSystemAffinityThread function The KeSetSystemAffinityThread routine sets the system affinity of the current thread.
KeSetSystemAffinityThreadEx function The KeSetSystemAffinityThreadEx routine sets the system affinity of the current thread.
KeSetSystemGroupAffinityThread function The KeSetSystemGroupAffinityThread routine changes the group number and affinity mask of the calling thread.
KeSetTargetProcessorDpc function The KeSetTargetProcessorDpc routine specifies the processor that a DPC routine will be run on.
KeSetTargetProcessorDpc function The KeSetTargetProcessorDpc routine specifies the processor that a DPC routine will be run on.
KeSetTargetProcessorDpcEx function The KeSetTargetProcessorDpcEx routine specifies the processor that a DPC routine will run on.
KeSetTimer function 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 function 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.
KeStallExecutionProcessor function The KeStallExecutionProcessor routine stalls the caller on the current processor for a specified time interval.
KeSynchronizeExecution function 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 function The KeTestSpinLock routine tests for the availability of a spin lock.
KeTryToAcquireGuardedMutex function The KeTryToAcquireGuardedMutex routine acquires a guarded mutex, if available.
KeTryToAcquireSpinLockAtDpcLevel function The KeTryToAcquireSpinLockAtDpcLevel routine attempts to acquire a spin lock at DISPATCH_LEVEL.
KeWaitForMultipleObjects function 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 function 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.
KefReleaseSpinLockFromDpcLevel function The KeReleaseSpinLockFromDpcLevel routine releases an executive spin lock without changing the IRQL.
MmAdvanceMdl function The MmAdvanceMdl routine advances the beginning of an MDL's virtual memory range by the specified number of bytes.
MmAllocateContiguousMemory function The MmAllocateContiguousMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemory function The MmAllocateContiguousMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemorySpecifyCache function The MmAllocateContiguousMemorySpecifyCache routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemorySpecifyCache function The MmAllocateContiguousMemorySpecifyCache routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemorySpecifyCacheNode function The MmAllocateContiguousMemorySpecifyCacheNode routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemorySpecifyCacheNode function The MmAllocateContiguousMemorySpecifyCacheNode routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousNodeMemory function The MmAllocateContiguousNodeMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousNodeMemory function The MmAllocateContiguousNodeMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateMappingAddress function The MmAllocateMappingAddress routine reserves a range of system virtual address space of the specified size.
MmAllocateMdlForIoSpace function The MmAllocateMdlForIoSpace routine allocates an MDL and initializes this MDL to describe a set of physical address ranges in I/O address space.
MmAllocateNodePagesForMdlEx function The MmAllocateNodePagesForMdlEx routine allocates nonpaged physical memory from an ideal node, and allocates an MDL structure to describe this memory.
MmAllocateNonCachedMemory function The MmAllocateNonCachedMemory routine allocates a virtual address range of noncached and cache-aligned memory.
MmAllocatePagesForMdl function The MmAllocatePagesForMdl routine allocates zero-filled, nonpaged, physical memory pages to an MDL.
MmAllocatePagesForMdlEx function The MmAllocatePagesForMdlEx routine allocates nonpaged, physical memory pages to an MDL.
MmBuildMdlForNonPagedPool function The MmBuildMdlForNonPagedPool routine receives an MDL that specifies a nonpaged virtual memory buffer, and updates it to describe the underlying physical pages.
MmCopyMemory function The MmCopyMemory routine copies the specified range of virtual or physical memory into the caller-supplied buffer.
MmFreeContiguousMemory function The MmFreeContiguousMemory routine releases a range of physically contiguous memory that was allocated by an MmAllocateContiguousMemoryXxx routine.
MmFreeContiguousMemory function The MmFreeContiguousMemory routine releases a range of physically contiguous memory that was allocated by an MmAllocateContiguousMemoryXxx routine.
MmFreeContiguousMemorySpecifyCache function The MmFreeContiguousMemorySpecifyCache routine frees a buffer that was allocated by an MmAllocateContiguousMemorySpecifyCacheXxx routine.
MmFreeContiguousMemorySpecifyCache function The MmFreeContiguousMemorySpecifyCache routine frees a buffer that was allocated by an MmAllocateContiguousMemorySpecifyCacheXxx routine.
MmFreeMappingAddress function The MmFreeMappingAddress routine frees a range of virtual memory reserved by the MmAllocateMappingAddress routine.
MmFreeNonCachedMemory function The MmFreeNonCachedMemory routine releases a range of noncached memory that was allocated by the MmAllocateNonCachedMemory routine.
MmFreePagesFromMdl function The MmFreePagesFromMdl routine frees all the physical pages that are described by an MDL that was created by the MmAllocatePagesForMdl routine.
MmGetPhysicalAddress function The MmGetPhysicalAddress routine returns the physical address corresponding to a valid nonpaged virtual address.
MmGetSystemRoutineAddress function The MmGetSystemRoutineAddress routine returns a pointer to a function specified by SystemRoutineName.
MmIsAddressValid function 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 function 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 function 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 function 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 function The MmIsThisAnNtAsSystem routine is obsolete for Windows XP and later versions of Windows. Use RtlGetVersion or RtlVerifyVersionInfo instead.
MmLockPagableDataSection function The MmLockPagableDataSection routine locks an entire section of driver data into system space.
MmLockPagableSectionByHandle function 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 function The MmMapIoSpace routine maps the given physical address range to nonpaged system space.
MmMapIoSpaceEx function The MmMapIoSpaceEx routine maps the given physical address range to non-paged system space using the specified page protection.
MmMapLockedPages function The MmMapLockedPages routine is obsolete for Windows 2000 and later versions of Windows, and for Windows Me.
MmMapLockedPagesSpecifyCache function 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 function The MmMapLockedPagesWithReservedMapping routine maps all or part of an address range that was previously reserved by the MmAllocateMappingAddress routine.
MmMapMdl function This function maps physical pages described by a memory descriptor list (MDL) into the system virtual address space.
MmPageEntireDriver function 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 function The MmProbeAndLockPages routine probes the specified virtual memory pages, makes them resident, and locks them in memory.
MmProbeAndLockSelectedPages function The MmProbeAndLockSelectedPages routine probes the selected virtual memory pages, makes them resident, and locks them in memory.
MmProtectMdlSystemAddress function The MmProtectMdlSystemAddress routine sets the protection type for a memory address range.
MmQuerySystemSize function The MmQuerySystemSize routine returns an estimate of the amount of memory in the system.
MmResetDriverPaging function The MmResetDriverPaging routine resets the pageable status of a driver's sections to that specified when the driver was compiled.
MmSecureVirtualMemory function 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.
MmSizeOfMdl function The MmSizeOfMdl routine returns the number of bytes to allocate for an MDL describing a given address range.
MmUnlockPagableImageSection function 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 function The MmUnlockPages routine unlocks the physical pages that are described by the specified memory descriptor list (MDL).
MmUnmapIoSpace function The MmUnmapIoSpace routine unmaps a specified range of physical addresses previously mapped by MmMapIoSpace.
MmUnmapLockedPages function The MmUnmapLockedPages routine releases a mapping that was set up by a preceding call to the MmMapLockedPages or MmMapLockedPagesSpecifyCache routine.
MmUnmapReservedMapping function The MmUnmapReservedMapping routine unmaps a memory buffer that was mapped by the MmMapLockedPagesWithReservedMapping routine.
MmUnsecureVirtualMemory function The MmUnsecureVirtualMemory routine unsecures a memory address range secured by the MmSecureVirtualMemory routine.
NtCommitComplete function The ZwCommitComplete routine notifies KTM that the calling resource manager has finished committing a transaction's data.
NtCommitEnlistment function The ZwCommitEnlistment routine initiates the commit operation for a specified enlistment's transaction.
NtCommitTransaction function The ZwCommitTransaction routine initiates a commit operation for a specified transaction.
NtCreateEnlistment function The ZwCreateEnlistment routine creates a new enlistment object for a transaction.
NtCreateResourceManager function The ZwCreateResourceManager routine creates a resource manager object.
NtCreateTransaction function The ZwCreateTransaction routine creates a transaction object.
NtCreateTransactionManager function The ZwCreateTransactionManager routine creates a new transaction manager object.
NtEnumerateTransactionObject function The ZwEnumerateTransactionObject routine enumerates the KTM objects on a computer.
NtGetNotificationResourceManager function The ZwGetNotificationResourceManager routine retrieves the next transaction notification from a specified resource manager's notification queue.
NtOpenEnlistment function The ZwOpenEnlistment routine obtains a handle to an existing enlistment object.
NtOpenProcess function The ZwOpenProcess routine opens a handle to a process object and sets the access rights to this object.
NtOpenResourceManager function The ZwOpenResourceManager routine returns a handle to an existing resource manager object.
NtOpenTransaction function The ZwOpenTransaction routine obtains a handle to an existing transaction object.
NtOpenTransactionManager function The ZwOpenTransactionManager routine obtains a handle to an existing transaction manager object.
NtPowerInformation function The ZwPowerInformation routine sets or retrieves system power information.
NtPowerInformation function The ZwPowerInformation routine sets or retrieves system power information.
NtPrePrepareComplete function The ZwPrePrepareComplete routine notifies KTM that the calling resource manager has finished preliminary preparation of a transaction's data.
NtPrePrepareEnlistment function The ZwPrePrepareEnlistment routine initiates the pre-prepare operation for a specified enlistment's transaction.
NtPrepareComplete function The ZwPrepareComplete routine notifies KTM that the calling resource manager has finished preparing a transaction's data.
NtPrepareEnlistment function The ZwPrepareEnlistment routine initiates the prepare operation for a specified enlistment's transaction.
NtQueryInformationEnlistment function The ZwQueryInformationEnlistment routine retrieves information about a specified enlistment object.
NtQueryInformationResourceManager function The ZwQueryInformationResourceManager routine retrieves information about a specified resource manager object.
NtQueryInformationTransaction function The ZwQueryInformationTransaction routine retrieves information about a specified transaction.
NtQueryInformationTransactionManager function The ZwQueryInformationTransactionManager routine retrieves information about a specified transaction manager object.
NtReadOnlyEnlistment function The ZwReadOnlyEnlistment routine sets a specified enlistment to be read-only.
NtRecoverEnlistment function The ZwRecoverEnlistment routine initiates a recovery operation for the transaction that is associated with a specified enlistment.
NtRecoverResourceManager function The ZwRecoverResourceManager routine tries to recover the transaction that is associated with each enlistment of a specified resource manager object.
NtRecoverTransactionManager function 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 function 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 function The ZwRollbackComplete routine notifies KTM that the calling resource manager has finished rolling back a transaction's data.
NtRollbackEnlistment function The ZwRollbackEnlistment routine rolls back the transaction that is associated with a specified enlistment.
NtRollbackTransaction function The ZwRollbackTransaction routine initiates a rollback operation for a specified transaction.
NtRollforwardTransactionManager function The ZwRollforwardTransactionManager routine initiates recovery operations for all of the in-progress transactions that are assigned to a specified transaction manager.
NtSetInformationEnlistment function The ZwSetInformationEnlistment routine sets information for a specified enlistment object.
NtSetInformationResourceManager function The ZwSetInformationResourceManager routine is not used.
NtSetInformationTransaction function The ZwSetInformationTransaction routine sets information for a specified transaction.
NtSetInformationTransactionManager function Do not call this routine from kernel-mode code.
NtSinglePhaseReject function The ZwSinglePhaseReject routine informs KTM that the calling resource manager will not support single-phase commit operations for a specified enlistment.
ObCloseHandle function The ObCloseHandle routine closes an object handle.
ObDereferenceObjectDeferDelete function The ObDereferenceObjectDeferDelete routine decrements the reference count for the given object, checks for object retention, and avoids deadlocks.
ObDereferenceObjectDeferDeleteWithTag function 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.
ObGetObjectSecurity function The ObGetObjectSecurity routine gets the security descriptor for a given object.
ObReferenceObjectByHandle function 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 function 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 function The ObReferenceObjectByPointer routine increments the pointer reference count for a given object.
ObReferenceObjectByPointerWithTag function 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.
ObRegisterCallbacks function The ObRegisterCallbacks routine registers a list of callback routines for thread, process, and desktop handle operations.
ObReleaseObjectSecurity function The ObReleaseObjectSecurity routine is the reciprocal to ObGetObjectSecurity.
ObUnRegisterCallbacks function The ObUnRegisterCallbacks routine unregisters a set of callback routines that were registered with the ObRegisterCallbacks routine.
ObfReferenceObject function The ObReferenceObject routine increments the reference count to the given object.
PEP_ACPI_INITIALIZE_EXTENDED_IO_RESOURCE function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function 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 function The PEP_ACPI_INITIALIZE_SPB_UART_RESOURCE function initializes a platform extension plug-in's (PEP) PEP_ACPI_SPB_UART_RESOURCE structure.
PoCallDriver function 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 function The PoClearPowerRequest routine decrements the count for the specified power request type.
PoCreatePowerRequest function The PoCreatePowerRequest routine creates a power request object.
PoDeletePowerRequest function The PoDeletePowerRequest routine deletes a power request object.
PoEndDeviceBusy function The PoEndDeviceBusy routine marks the end of a period of time in which the device is busy.
PoFxActivateComponent function The PoFxActivateComponent routine increments the activation reference count on the specified component.
PoFxCompleteDevicePowerNotRequired function 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 function The PoFxCompleteIdleCondition routine informs the power management framework (PoFx) that the specified component has completed a pending change to the idle condition.
PoFxCompleteIdleState function The PoFxCompleteIdleState routine informs the power management framework (PoFx) that the specified component has completed a pending change to an Fx state.
PoFxIdleComponent function The PoFxIdleComponent routine decrements the activation reference count on the specified component.
PoFxIssueComponentPerfStateChange function The PoFxIssueComponentPerfStateChange routine submits a request to place a device component in a particular performance state.
PoFxIssueComponentPerfStateChangeMultiple function The PoFxIssueComponentPerfStateChangeMultiple routine submits a request to change the performance states in multiple performance state sets simultaneously for a device component.
PoFxNotifySurprisePowerOn function 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 function The PoFxPowerControl routine sends a power control request to the power management framework (PoFx).
PoFxPowerOnCrashdumpDevice function The PoFxPowerOnCrashdumpDevice routine requests that a crash-dump device be turned on.
PoFxQueryCurrentComponentPerfState function The PoFxQueryCurrentComponentPerfState routine retrieves the active performance state in a component's performance state set.
PoFxRegisterComponentPerfStates function The PoFxRegisterComponentPerfStates routine registers a device component for performance state management by the power management framework (PoFx).
PoFxRegisterCoreDevice function The PoFxRegisterCoreDevice routine registers a new core system resource with the Windows power management framework (PoFx).
PoFxRegisterCoreDevice function The PoFxRegisterCoreDevice routine registers a new core system resource with the Windows power management framework (PoFx).
PoFxRegisterCrashdumpDevice function The PoFxRegisterCrashdumpDevice routine registers a crash-dump device.
PoFxRegisterDevice function The PoFxRegisterDevice routine registers a device with the power management framework (PoFx).
PoFxRegisterPlugin function The PoFxRegisterPlugin routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterPlugin function The PoFxRegisterPlugin routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterPluginEx function The PoFxRegisterPluginEx routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxRegisterPluginEx function The PoFxRegisterPluginEx routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PoFxReportDevicePoweredOn function The PoFxReportDevicePoweredOn routine notifies the power management framework (PoFx) that the device completed the requested transition to the D0 (fully on) power state.
PoFxSetComponentLatency function 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 function 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 function The PoFxSetComponentWake routine indicates whether the driver arms the specified component to wake whenever the component enters the idle condition.
PoFxSetDeviceIdleTimeout function 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 function 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 function The PoFxStartDevicePowerManagement routine completes the registration of a device with the power management framework (PoFx) and starts device power management.
PoFxUnregisterDevice function The PoFxUnregisterDevice routine removes the registration of a device from the power management framework (PoFx).
PoGetSystemWake function The PoGetSystemWake routine determines whether a specified IRP has been marked as waking the system from a sleeping state.
PoQueryWatchdogTime function 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 function The PoRegisterDeviceForIdleDetection routine enables or cancels idle detection and sets idle time-out values for a device.
PoRegisterPowerSettingCallback function The PoRegisterPowerSettingCallback routine registers a power-setting callback routine to receive notifications of changes in the specified power setting.
PoRegisterSystemState function The PoRegisterSystemState routine registers the system as busy due to certain activity.
PoRequestPowerIrp function The PoRequestPowerIrp routine allocates a power IRP and sends it to the top driver in the device stack for the specified device.
PoSetDeviceBusyEx function The PoSetDeviceBusyEx routine notifies the power manager that the device associated with the specified idle counter is busy.
PoSetPowerRequest function The PoSetPowerRequest routine increments the count for the specified power request type.
PoSetPowerState function The PoSetPowerState routine notifies the system of a change in the device power state for a device.
PoSetSystemState function Drivers call the PoSetSystemState routine to indicate that the system is active.
PoSetSystemWake function The PoSetSystemWake routine marks the specified IRP as one that contributed to waking the system from a sleep state.
PoStartDeviceBusy function The PoStartDeviceBusy routine marks the start of a period of time in which the device is busy.
PoStartNextPowerIrp function 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 function The PoUnregisterPowerSettingCallback routine unregisters a power-setting callback routine that a driver previously registered by calling the PoRegisterPowerSettingCallback routine.
PoUnregisterSystemState function The PoUnregisterSystemState routine cancels a system state registration created by PoRegisterSystemState.
PopEntryList function The PopEntryList routine removes the first entry from a singly linked list of SINGLE_LIST_ENTRY structures.
ProbeForRead function The ProbeForRead routine checks that a user-mode buffer actually resides in the user portion of the address space, and is correctly aligned.
ProbeForWrite function 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.
PsAllocSiloContextSlot function This routine allocates a slot that can be used to insert, retrieve, and delete an object in all silos. .
PsAttachSiloToCurrentThread function This routine places a thread temporarily into the specified Silo.
PsCreateSiloContext function This routine creates an object that will be inserted in a Silo.
PsCreateSystemThread function The PsCreateSystemThread routine creates a system thread that executes in kernel mode and returns a handle for the thread.
PsDereferenceSiloContext function This routine decrements the reference count on the object.
PsDetachSiloFromCurrentThread function This routine removes a thread from a silo which was added by an attach. For more info about attaching, see the PsAttachSiloToCurrentThread routine.
PsFreeSiloContextSlot function This routine frees the specified slot and makes it available in the system. It undoes the effects of the PsAllocSiloContextSlot routine.
PsGetCurrentProcessId function The PsGetCurrentProcessId routine identifies the current thread's process.
PsGetCurrentServerSilo function This routine returns the effective server silo for the thread.
PsGetCurrentSilo function 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 function The PsGetCurrentThread routine identifies the current thread.
PsGetCurrentThread function The PsGetCurrentThread routine identifies the current thread.
PsGetCurrentThreadId function The PsGetCurrentThreadId routine identifies the current thread.
PsGetCurrentThreadTeb function The PsGetCurrentThreadTeb routine returns the Thread Environment Block (TEB) of the current thread. The call must be made in kernel-mode.
PsGetEffectiveServerSilo function This routine traverses the parent chain of the Silo until finding the effective server silo or host silo.
PsGetHostSilo function This routine returns the host silo.
PsGetJobServerSilo function This routine returns the effective ServerSilo for the job. The returned pointer is valid as long as the supplied Job object remains referenced.
PsGetJobSilo function 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 function Retrieves the most immediate parent silo in the hierarchy for a given job object.
PsGetPermanentSiloContext function This routine retrieves an object that was inserted in the Silo without incrementing the reference count.
PsGetProcessCreateTimeQuadPart function The PsGetProcessCreateTimeQuadPart routine returns a LONGLONG value that represents the time at which the process was created.
PsGetProcessId function The PsGetProcessId routine returns the process identifier (process ID) that is associated with a specified process.
PsGetServerSiloActiveConsoleId function Gets the active console for the current server silo context for the supplied thread.
PsGetSiloContext function This routine retrieves the silo context from the specified silo and slot.
PsGetSiloMonitorContextSlot function This routine returns the silo context slot that was allocated by the monitor during the registration.
PsGetVersion function 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 function This routine inserts an object in an empty slot in a Silo.
PsInsertSiloContext function This routine inserts an object in an empty slot in a Silo.
PsIsHostSilo function This routine will check if the supplied Silo is the host silo.
PsMakeSiloContextPermanent function 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 function The PsQueryTotalCycleTimeProcess routine returns the accumulated cycle time for the specified process.
PsReferenceSiloContext function This routine increments the reference count on the object.
PsRegisterSiloMonitor function This routine registers a server silo monitor that can receive notifications about server silo events.
PsRemoveCreateThreadNotifyRoutine function The PsRemoveCreateThreadNotifyRoutine routine removes a callback routine that was registered by the PsSetCreateThreadNotifyRoutine routine.
PsRemoveLoadImageNotifyRoutine function The PsRemoveLoadImageNotifyRoutine routine removes a callback routine that was registered by the PsSetLoadImageNotifyRoutine routine.
PsRemoveSiloContext function This routine removes an object that was inserted in the Silo.
PsReplaceSiloContext function This routine inserts an object in a Silo.
PsSetCreateProcessNotifyRoutine function 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 function The PsSetCreateProcessNotifyRoutineEx routine registers or removes a callback routine that notifies the caller when a process is created or exits.
PsSetCreateProcessNotifyRoutineEx2 function The PsSetCreateProcessNotifyRoutineEx2 routine registers or removes a callback routine that notifies the caller when a process is created or deleted.
PsSetCreateThreadNotifyRoutine function 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 function 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 function The PsSetLoadImageNotifyRoutine routine registers a driver-supplied callback that is subsequently notified whenever an image is loaded (or mapped into memory).
PsSetLoadImageNotifyRoutineEx function The PsSetLoadImageNotifyRoutineEx routine registers a driver-supplied callback that is subsequently notified whenever an image is loaded (or mapped into memory).
PsStartSiloMonitor function This routine tries to start the server silo monitor.
PsTerminateServerSilo function This routine terminates the specified silo.
PsTerminateSystemThread function The PsTerminateSystemThread routine terminates the current system thread.
PsUnregisterSiloMonitor function This routine unregisters a server silo monitor.
PushEntryList function The PushEntryList routine inserts an entry at the beginning of a singly linked list of SINGLE_LIST_ENTRY structures.
PwmParsePinPath function Parses a pin path under the Pulse Width Modulation (PWM) controller namespace to validate its format and extract the pin number.
READ_PORT_BUFFER_UCHAR function The READ_PORT_BUFFER_UCHAR routine reads a number of bytes from the specified port address into a buffer.
READ_PORT_BUFFER_ULONG function The READ_PORT_BUFFER_ULONG routine reads a number of ULONG values from the specified port address into a buffer.
READ_PORT_BUFFER_USHORT function The READ_PORT_BUFFER_USHORT routine reads a number of USHORT values from the specified port address into a buffer.
READ_PORT_UCHAR function The READ_PORT_UCHAR routine reads a byte from the specified port address.
READ_PORT_UCHAR function The READ_PORT_UCHAR routine reads a byte from the specified port address.
READ_PORT_ULONG function The READ_PORT_ULONG routine reads a ULONG value from the specified port address.
READ_PORT_ULONG function The READ_PORT_ULONG routine reads a ULONG value from the specified port address.
READ_PORT_USHORT function The READ_PORT_USHORT routine reads a USHORT value from the specified port address.
READ_PORT_USHORT function The READ_PORT_USHORT routine reads a USHORT value from the specified port address.
READ_REGISTER_BUFFER_UCHAR function The READ_REGISTER_BUFFER_UCHAR routine reads a number of bytes from the specified register address into a buffer.
READ_REGISTER_BUFFER_ULONG function The READ_REGISTER_BUFFER_ULONG routine reads a number of ULONG values from the specified register address into a buffer.
READ_REGISTER_BUFFER_USHORT function The READ_REGISTER_BUFFER_USHORT routine reads a number of USHORT values from the specified register address into a buffer.
READ_REGISTER_UCHAR function The READ_REGISTER_UCHAR routine reads a byte from the specified register address.
READ_REGISTER_UCHAR function The READ_REGISTER_UCHAR routine reads a byte from the specified register address.
READ_REGISTER_ULONG function The READ_REGISTER_ULONG routine reads a ULONG value from the specified register address.
READ_REGISTER_ULONG function The READ_REGISTER_ULONG routine reads a ULONG value from the specified register address.
READ_REGISTER_USHORT function The READ_REGISTER_USHORT routine reads a USHORT value from the specified register address.
READ_REGISTER_USHORT function The READ_REGISTER_USHORT routine reads a USHORT value from the specified register address.
RemoveEntryList function The RemoveEntryList routine removes an entry from a doubly linked list of LIST_ENTRY structures.
RemoveHeadList function The RemoveHeadList routine removes an entry from the beginning of a doubly linked list of LIST_ENTRY structures.
RemoveTailList function The RemoveTailList routine removes an entry from the end of a doubly linked list of LIST_ENTRY structures.
RtlAnsiStringToUnicodeString function RtlAnsiStringToUnicodeString converts the given ANSI source string into a Unicode string.
RtlAppendUnicodeStringToString function The RtlAppendUnicodeStringToString routine concatenates two Unicode strings.
RtlAppendUnicodeToString function The RtlAppendUnicodeToString routine concatenates the supplied Unicode string to a buffered Unicode string.
RtlAreBitsClear function The RtlAreBitsClear routine determines whether a given range of bits within a bitmap variable is clear.
RtlAreBitsSet function The RtlAreBitsSet routine determines whether a given range of bits within a bitmap variable is set.
RtlByteToChar function Converts a value of type BYTE to a value of type CHAR.
RtlByteToInt8 function Converts a value of type BYTE to a value of type INT8.
RtlCharToInteger function The RtlCharToInteger routine converts a single-byte character string to an integer value in the specified base.
RtlCheckRegistryKey function The RtlCheckRegistryKey routine checks for the existence of a given named key in the registry.
RtlClearAllBits function The RtlClearAllBits routine sets all bits in a given bitmap variable to zero.
RtlClearBit function The RtlClearBit routine sets the specified bit in a bitmap to zero.
RtlClearBits function The RtlClearBits routine sets all bits in the specified range of bits in the bitmap to zero.
RtlCmDecodeMemIoResource function 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 function The RtlCmEncodeMemIoResource routine updates a CM_PARTIAL_RESOURCE_DESCRIPTOR structure to describe a range of memory or I/O port addresses.
RtlCompareMemory function The RtlCompareMemory routine compares two blocks of memory and returns the number of bytes that match.
RtlCompareString function The RtlCompareString routine compares two counted strings.
RtlCompareUnicodeString function The RtlCompareUnicodeString routine compares two Unicode strings.
RtlConvertLongToLargeInteger function The RtlConvertLongToLargeInteger routine converts the input signed integer to a signed large integer.
RtlConvertLongToLuid function 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 function 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 function 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.
RtlCopyString function The RtlCopyString routine copies a source string to a destination string.
RtlCopyUnicodeString function The RtlCopyUnicodeString routine copies a source string to a destination string.
RtlCreateRegistryKey function The RtlCreateRegistryKey routine adds a key object in the registry along a given relative path.
RtlCreateSecurityDescriptor function 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.
RtlDWordPtrAdd function Adds two values of type DWORD_PTR.
RtlDWordPtrMult function Multiplies one value of type DWORD_PTR by another.
RtlDWordPtrSub function Subtracts one value of type DWORD_PTR from another.
RtlDeleteRegistryValue function The RtlDeleteRegistryValue routine removes the specified entry name and the associated values from the registry along the given relative path.
RtlDowncaseUnicodeChar function The RtlDowncaseUnicodeChar routine converts the specified Unicode character to lowercase.
RtlEqualString function The RtlEqualString routine compares two counted strings to determine whether they are equal.
RtlEqualUnicodeString function The RtlEqualUnicodeString routine compares two Unicode strings to determine whether they are equal.
RtlExtendCorrelationVector function This routine extends the supplied correlation vector. For a correlation vector of the form X.i, the extended value is X.i.0.
RtlFindClearBits function The RtlFindClearBits routine searches for a range of clear bits of a requested size within a bitmap.
RtlFindClearBitsAndSet function 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 function The RtlFindClearRuns routine finds the specified number of runs of clear bits within a given bitmap.
RtlFindFirstRunClear function The RtlFindFirstRunClear routine searches for the initial contiguous range of clear bits within a given bitmap.
RtlFindLastBackwardRunClear function The RtlFindLastBackwardRunClear routine searches a given bitmap for the preceding clear run of bits, starting from the specified index position.
RtlFindLeastSignificantBit function The RtlFindLeastSignificantBit routine returns the zero-based position of the least significant nonzero bit in its parameter.
RtlFindLongestRunClear function The RtlFindLongestRunClear routine searches for the largest contiguous range of clear bits within a given bitmap.
RtlFindMostSignificantBit function The RtlFindMostSignificantBit routine returns the zero-based position of the most significant nonzero bit in its parameter.
RtlFindNextForwardRunClear function The RtlFindNextForwardRunClear routine searches a given bitmap variable for the next clear run of bits, starting from the specified index position.
RtlFindSetBits function The RtlFindSetBits routine searches for a range of set bits of a requested size within a bitmap.
RtlFindSetBitsAndClear function 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 function The RtlFreeAnsiString routine releases storage that was allocated by RtlUnicodeStringToAnsiString.
RtlFreeUnicodeString function The RtlFreeUnicodeString routine releases storage that was allocated by RtlAnsiStringToUnicodeString or RtlUpcaseUnicodeString.
RtlGUIDFromString function The RtlGUIDFromString routine converts the given Unicode string to a GUID in binary format.
RtlGetEnabledExtendedFeatures function The RtlGetEnabledExtendedFeatures routine returns a mask of extended processor features that are enabled by the system.
RtlGetVersion function The RtlGetVersion routine returns version information about the currently running operating system.
RtlHashUnicodeString function The RtlHashUnicodeString routine creates a hash value from a given Unicode string and hash algorithm.
RtlIncrementCorrelationVector function Increments the specified correlation vector. For a correlation vector of the form X.i, the incremented value is be X.(i+1).
RtlInitAnsiString function The RtlInitAnsiString routine initializes a counted string of ANSI characters.
RtlInitString function The RtlInitString routine initializes a counted string of 8-bit characters.
RtlInitStringEx function The RtlInitStringEx routine initializes a counted string of 8-bit characters.
RtlInitUnicodeString function For more information, see the WdmlibRtlInitUnicodeStringEx function.
RtlInitializeBitMap function The RtlInitializeBitMap routine initializes the header of a bitmap variable.
RtlInitializeCorrelationVector function Initializes the specified correlation vector with the supplied GUID.
RtlInt64ToUnicodeString function The RtlInt64ToUnicodeString routine converts a specified unsigned 64-bit integer value to a Unicode string that represents the value in a specified base.
RtlInt8Add function Adds two values of type INT8.
RtlInt8Mult function Multiplies one value of type INT8 by another.
RtlInt8Sub function Subtracts one value of type INT8 from another.
RtlInt8ToUChar function Converts a value of type INT8 to a value of type UCHAR.
RtlInt8ToUInt function Converts a value of type INT8 to a value of type UINT.
RtlInt8ToUInt8 function Converts a value of type INT8 to a value of type UINT8.
RtlInt8ToUIntPtr function Converts a value of type INT8 to a value of type UINT_PTR.
RtlInt8ToULong function Converts a value of type INT8 to a value of type ULONG.
RtlInt8ToULongLong function Converts a value of type INT8 to a value of type ULONGLONG.
RtlInt8ToULongPtr function Converts a value of type INT8 to a value of type ULONG_PTR.
RtlInt8ToUShort function Converts a value of type INT8 to a value of type USHORT.
RtlIntAdd function Adds two values of type INT.
RtlIntMult function Multiplies one value of type INT by another.
RtlIntPtrAdd function Adds two values of type INT_PTR.
RtlIntPtrMult function Multiplies one value of type INT_PTR by another.
RtlIntPtrSub function Subtracts one value of type INT_PTR from another.
RtlIntPtrToChar function Converts a value of type INT_PTR to a value of type CHAR.
RtlIntPtrToInt function Converts a value of type INT_PTR to a value of type INT.
RtlIntPtrToInt8 function Converts a value of type INT_PTR to a value of type INT8.
RtlIntPtrToLong function Converts a value of type INT_PTR to a value of type LONG.
RtlIntPtrToLongPtr function Converts a value of type INT_PTR to a value of type LONG_PTR.
RtlIntPtrToShort function Converts a value of type INT_PTR to a value of type SHORT.
RtlIntPtrToUChar function Converts a value of type INT_PTR to a value of type UCHAR.
RtlIntPtrToUInt function Converts a value of type INT_PTR to a value of type UINT.
RtlIntPtrToUInt8 function Converts a value of type INT_PTR to a value of type UINT8.
RtlIntPtrToUIntPtr function Converts a value of type INT_PTR to a value of type UINT_PTR.
RtlIntPtrToULong function Converts a value of type INT_PTR to a value of type ULONG.
RtlIntPtrToULongLong function Converts a value of type INT_PTR to a value of type ULONGLONG.
RtlIntPtrToULongPtr function Converts a value of type INT_PTR to a value of type ULONG_PTR.
RtlIntPtrToUShort function Converts a value of type INT_PTR to a value of type USHORT.
RtlIntSub function Subtracts one value of type INT from another.
RtlIntToChar function Converts a value of type INT to a value of type CHAR.
RtlIntToInt8 function Converts a value of type INT to a value of type INT8.
RtlIntToShort function Converts a value of type INT to a value of type SHORT.
RtlIntToUChar function Converts a value of type INT to a value of type UCHAR.
RtlIntToUInt function Converts a value of type INT to a value of type UINT.
RtlIntToUInt8 function Converts a value of type INT to a value of type UINT8.
RtlIntToULong function Converts a value of type INT to a value of type ULONG.
RtlIntToULongLong function Converts a value of type INT to a value of type ULONGLONG.
RtlIntToUShort function Converts a value of type INT to a value of type USHORT.
RtlIntegerToUnicodeString function The RtlIntegerToUnicodeString routine converts an unsigned integer value to a null-terminated string of one or more Unicode characters in the specified base.
RtlIoDecodeMemIoResource function 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 function The RtlIoEncodeMemIoResource routine updates an IO_RESOURCE_DESCRIPTOR structure to describe a range of memory or I/O port addresses.
RtlIsNtDdiVersionAvailable function The RtlIsNtDdiVersionAvailable routine determines if a specified version of the Microsoft Windows device driver interface (DDI) is available.
RtlIsServicePackVersionInstalled function The RtlIsServicePackVersionInstalled routine determines if a specified service pack version of the Microsoft Windows device driver interface (DDI) is installed.
RtlIsStateSeparationEnabled function Checks if the SKU for the current context supports multiple sessions.
RtlLengthSecurityDescriptor function The RtlLengthSecurityDescriptor routine returns the size of a given security descriptor.
RtlLongAdd function Adds two values of type LONG.
RtlLongLongAdd function Adds two values of type LONGLONG.
RtlLongLongMult function Multiplies one value of type LONGLONG by another.
RtlLongLongSub function Subtracts one value of type LONGLONG from another.
RtlLongLongToChar function Converts a value of type LONGLONG to a value of type CHAR.
RtlLongLongToInt function Converts a value of type LONGLONG to a value of type INT.
RtlLongLongToInt8 function Converts a value of type LONGLONG to a value of type INT8.
RtlLongLongToIntPtr function Converts a value of type LONGLONG to a value of type INT_PTR.
RtlLongLongToLong function Converts a value of type LONGLONG to a value of type LONG.
RtlLongLongToLongPtr function Converts a value of type LONGLONG to a value of type LONG_PTR.
RtlLongLongToShort function Converts a value of type LONGLONG to a value of type SHORT.
RtlLongLongToUChar function Converts a value of type LONGLONG to a value of type UCHAR.
RtlLongLongToUInt function Converts a value of type LONGLONG to a value of type UINT.
RtlLongLongToUInt8 function Converts a value of type LONGLONG to a value of type UNIT8.
RtlLongLongToULong function Converts a value of type LONGLONG to a value of type ULONG.
RtlLongLongToULongLong function Converts a value of type LONGLONG to a value of type LONGLONG.
RtlLongLongToUShort function Converts a value of type LONGLONG to a value of type USHORT.
RtlLongMult function Multiplies one value of type LONG by another.
RtlLongPtrAdd function Adds two values of type LONG_PTR.
RtlLongPtrMult function Multiplies one value of type LONG_PTR by another.
RtlLongPtrSub function Subtracts one value of type LONG_PTR from another.
RtlLongPtrToChar function Converts a value of type LONG_PTR to a value of type CHAR.
RtlLongPtrToInt function Converts a value of type LONG_PTR to a value of type INT.
RtlLongPtrToInt8 function Converts a value of type LONG_PTR to a value of type INT8.
RtlLongPtrToIntPtr function Converts a value of type LONG_PTR to a value of type INT_PTR.
RtlLongPtrToLong function Converts a value of type LONG_PTR to a value of type LONG.
RtlLongPtrToShort function Converts a value of type LONG_PTR to a value of type SHORT.
RtlLongPtrToUChar function Converts a value of type LONG_PTR to a value of type UCHAR.
RtlLongPtrToUInt function Converts a value of type LONG_PTR to a value of type UINT.
RtlLongPtrToUInt8 function Converts a value of type LONG_PTR to a value of type UINT8.
RtlLongPtrToUIntPtr function Converts a value of type LONG_PTR to a value of type UINT_PTR.
RtlLongPtrToULong function Converts a value of type LONG_PTR to a value of type ULONG.
RtlLongPtrToULongLong function Converts a value of type LONG_PTR to a value of type ULONGLONG.
RtlLongPtrToULongPtr function Converts a value of type LONG_PTR to a value of type ULONG_PTR.
RtlLongPtrToUShort function Converts a value of type LONG_PTR to a value of type USHORT.
RtlLongSub function Subtracts one value of type LONG from another.
RtlLongToChar function Converts a value of type LONG to a value of type CHAR.
RtlLongToInt function Converts a value of type LONG to a value of type INT.
RtlLongToInt8 function Converts a value of type LONG to a value of type INT8.
RtlLongToIntPtr function Converts a value of type LONG to a value of type INT_PTR.
RtlLongToShort function Converts a value of type LONG to a value of type SHORT.
RtlLongToUChar function Converts a value of type LONG to a value of type UCHAR.
RtlLongToUInt function Converts a value of type LONG to a value of type UINT.
RtlLongToUInt8 function Converts a value of type LONG to a value of type UINT8.
RtlLongToUIntPtr function Converts a value of type LONG to a value of type UINT_PTR.
RtlLongToULong function Converts a value of type LONG to a value of type ULONG.
RtlLongToULongLong function Converts a value of type LONG to a value of type ULONGLONG.
RtlLongToULongPtr function Converts a value of type LONG to a value of type ULONG_PTR.
RtlLongToUShort function Converts a value of type LONG to a value of type USHORT.
RtlMapGenericMask function The RtlMapGenericMask routine determines the nongeneric access rights specified by an ACCESS_MASK.
RtlNumberOfClearBits function The RtlNumberOfClearBits routine returns a count of the clear bits in a given bitmap variable.
RtlNumberOfSetBits function The RtlNumberOfSetBits routine returns a count of the set bits in a given bitmap variable.
RtlNumberOfSetBitsUlongPtr function The RtlNumberOfSetBitsUlongPtr routine returns the number of bits in the specified ULONG_PTR integer value that are set to one.
RtlPrefetchMemoryNonTemporal function The RtlPrefetchMemoryNonTemporal routine provides a hint to the processor that a buffer should be temporarily moved into the processor cache.
RtlPrefixUnicodeString function The RtlPrefixUnicodeString routine compares two Unicode strings to determine whether one string is a prefix of the other.
RtlPtrdiffTAdd function Adds two values of type PTRDIFF_T.
RtlPtrdiffTMult function Multiplies one value of type PTRDIFF_T by another.
RtlPtrdiffTSub function Subtracts one value of type PTRDIFF_T from another.
RtlQueryRegistryValues function The RtlQueryRegistryValues routine allows the caller to query several values from the registry subtree with a single call.
RtlRunOnceBeginInitialize function The RtlRunOnceBeginInitialize routine begins a one-time initialization.
RtlRunOnceComplete function The RtlRunOnceComplete routine completes the one-time initialization began by RtlRunOnceBeginInitialize.
RtlRunOnceExecuteOnce function The RtlRunOnceExecuteOnce performs a one-time initialization.
RtlRunOnceInitialize function The RtlRunOnceInitialize routine initializes a RTL_RUN_ONCE structure.
RtlSSIZETAdd function Adds two values of type SSIZE_T.
RtlSSIZETMult function Multiplies one value of type SSIZE_T by another.
RtlSSIZETSub function Subtracts one value of type SSIZE_T from another.
RtlSecureZeroMemory function The RtlSecureZeroMemory routine fills a block of memory with zeros in a way that is guaranteed to be secure.
RtlSetAllBits function The RtlSetAllBits routine sets all bits in a given bitmap variable.
RtlSetBit function The RtlSetBit routine sets the specified bit in a bitmap to one.
RtlSetBits function The RtlSetBits routine sets all bits in a given range of a given bitmap variable.
RtlSetDaclSecurityDescriptor function 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 function Adds two values of type SHORT.
RtlShortMult function Multiplies one value of type SHORT by another.
RtlShortSub function Subtracts one value of type SHORT from another.
RtlShortToChar function Converts a value of type SHORT to a value of type CHAR.
RtlShortToDWordPtr function Converts a value of type SHORT to a value of type DWORD_PTR.
RtlShortToInt8 function Converts a value of type SHORT to a value of type INT8.
RtlShortToUChar function Converts a value of type SHORT to a value of type UCHAR.
RtlShortToUInt function Converts a value of type SHORT to a value of type UINT.
RtlShortToUInt8 function Converts a value of type SHORT to a value of type UINT8.
RtlShortToUIntPtr function Converts a value of type SHORT to a value of type UINT_PTR.
RtlShortToULong function Converts a value of type SHORT to a value of type ULONG.
RtlShortToULongLong function Converts a value of type SHORT to a value of type ULONGLONG.
RtlShortToULongPtr function Converts a value of type SHORT to a value of type ULONG_PTR.
RtlShortToUShort function Converts a value of type SHORT to a value of type USHORT.
RtlSizeTAdd function Adds two values of type SIZE_T.
RtlSizeTMult function Multiplies one value of type SIZE_T by another.
RtlSizeTSub function Subtracts one value of type SIZE_T from another.
RtlStringCbCatA function The RtlStringCbCatW and RtlStringCbCatA functions concatenate two byte-counted strings.
RtlStringCbCatExA function The RtlStringCbCatExW and RtlStringCbCatExA functions concatenate two byte-counted strings.
RtlStringCbCatExW function The RtlStringCbCatExW and RtlStringCbCatExA functions concatenate two byte-counted strings.
RtlStringCbCatNA function The RtlStringCbCatNW and RtlStringCbCatNA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNExA function The RtlStringCbCatNExW and RtlStringCbCatNExA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNExW function The RtlStringCbCatNExW and RtlStringCbCatNExA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNW function The RtlStringCbCatNW and RtlStringCbCatNA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatW function The RtlStringCbCatW and RtlStringCbCatA functions concatenate two byte-counted strings.
RtlStringCbCopyA function The RtlStringCbCopyW and RtlStringCbCopyA functions copy a byte-counted string into a buffer.
RtlStringCbCopyExA function The RtlStringCbCopyExW and RtlStringCbCopyExA functions copy a byte-counted string into a buffer.
RtlStringCbCopyExW function The RtlStringCbCopyExW and RtlStringCbCopyExA functions copy a byte-counted string into a buffer.
RtlStringCbCopyNA function The RtlStringCbCopyNW and RtlStringCbCopyNA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNExA function The RtlStringCbCopyNExW and RtlStringCbCopyNExA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNExW function The RtlStringCbCopyNExW and RtlStringCbCopyNExA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNW function The RtlStringCbCopyNW and RtlStringCbCopyNA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyUnicodeString function The RtlStringCbCopyUnicodeString function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCbCopyUnicodeStringEx function The RtlStringCbCopyUnicodeStringEx function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCbCopyW function The RtlStringCbCopyW and RtlStringCbCopyA functions copy a byte-counted string into a buffer.
RtlStringCbLengthA function The RtlStringCbLengthW and RtlStringCbLengthA functions determine the length, in bytes, of a supplied string.
RtlStringCbLengthW function The RtlStringCbLengthW and RtlStringCbLengthA functions determine the length, in bytes, of a supplied string.
RtlStringCbPrintfA function The RtlStringCbPrintfW and RtlStringCbPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfExA function The RtlStringCbPrintfExW and RtlStringCbPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfExW function The RtlStringCbPrintfExW and RtlStringCbPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfW function The RtlStringCbPrintfW and RtlStringCbPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfA function The RtlStringCbVPrintfW and RtlStringCbVPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfExA function The RtlStringCbVPrintfExW and RtlStringCbVPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfExW function The RtlStringCbVPrintfExW and RtlStringCbVPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbVPrintfW function The RtlStringCbVPrintfW and RtlStringCbVPrintfA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchCatA function The RtlStringCchCatW and RtlStringCchCatA functions concatenate two character-counted strings.
RtlStringCchCatExA function The RtlStringCchCatExW and RtlStringCchCatExA functions concatenate two character-counted strings.
RtlStringCchCatExW function The RtlStringCchCatExW and RtlStringCchCatExA functions concatenate two character-counted strings.
RtlStringCchCatNA function The RtlStringCchCatNW and RtlStringCchCatNA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNExA function The RtlStringCchCatNExW and RtlStringCchCatNExA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNExW function The RtlStringCchCatNExW and RtlStringCchCatNExA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNW function The RtlStringCchCatNW and RtlStringCchCatNA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatW function The RtlStringCchCatW and RtlStringCchCatA functions concatenate two character-counted strings.
RtlStringCchCopyA function The RtlStringCchCopyW and RtlStringCchCopyA functions copy a null-terminated source string into a destination buffer of specified length.
RtlStringCchCopyExA function The RtlStringCchCopyExW and RtlStringCchCopyExA functions copy a character-counted string into a buffer.
RtlStringCchCopyExW function The RtlStringCchCopyExW and RtlStringCchCopyExA functions copy a character-counted string into a buffer.
RtlStringCchCopyNA function The RtlStringCchCopyNW and RtlStringCchCopyNA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNExA function The RtlStringCchCopyNExW and RtlStringCchCopyNExA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNExW function The RtlStringCchCopyNExW and RtlStringCchCopyNExA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNW function The RtlStringCchCopyNW and RtlStringCchCopyNA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyUnicodeString function The RtlStringCchCopyUnicodeString function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCchCopyUnicodeStringEx function The RtlStringCchCopyUnicodeStringEx function copies the contents of a UNICODE_STRING structure to a specified destination.
RtlStringCchCopyW function The RtlStringCchCopyW and RtlStringCchCopyA functions copy a null-terminated source string into a destination buffer of specified length.
RtlStringCchLengthA function The RtlStringCchLengthW and RtlStringCchLengthA functions determine the length, in characters, of a supplied string.
RtlStringCchLengthW function The RtlStringCchLengthW and RtlStringCchLengthA functions determine the length, in characters, of a supplied string.
RtlStringCchPrintfA function The RtlStringCchPrintfW and RtlStringCchPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfExA function The RtlStringCchPrintfExW and RtlStringCchPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfExW function The RtlStringCchPrintfExW and RtlStringCchPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfW function The RtlStringCchPrintfW and RtlStringCchPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfA function The RtlStringCchVPrintfW and RtlStringCchVPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfExA function The RtlStringCchVPrintfExW and RtlStringCchVPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfExW function The RtlStringCchVPrintfExW and RtlStringCchVPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchVPrintfW function The RtlStringCchVPrintfW and RtlStringCchVPrintfA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringFromGUID function The RtlStringFromGUID routine converts a given GUID from binary format into a Unicode string.
RtlTestBit function The RtlTestBit routine returns the value of a bit in a bitmap.
RtlTimeFieldsToTime function The RtlTimeFieldsToTime routine converts TIME_FIELDS information to a system time value.
RtlTimeToTimeFields function The RtlTimeToTimeFields routine converts system time into a TIME_FIELDS structure.
RtlUInt8Add function Adds two values of type UINT8.
RtlUInt8Mult function Multiplies one value of type UINT8 by another.
RtlUInt8Sub function The RtlUInt8Sub routine subtracts one value of type UINT8 from another.
RtlUInt8ToChar function Converts a value of type UINT8 to a value of type CHAR.
RtlUInt8ToInt8 function Converts a value of type UINT8 to a value of type INT8.
RtlUIntAdd function Adds two values of type UINT.
RtlUIntMult function Multiplies one value of type UINT by another.
RtlUIntPtrAdd function Adds two values of type UINT_PTR.
RtlUIntPtrMult function Multiplies one value of type UINT_PTR by another.
RtlUIntPtrSub function Subtracts one value of type UINT_PTR from another.
RtlUIntPtrToChar function Converts a value of type UINT_PTR to a value of type CHAR.
RtlUIntPtrToInt function Converts a value of type UINT_PTR to a value of type INT.
RtlUIntPtrToInt16 function Converts a value of type UINT_PTR to a value of type INT16.
RtlUIntPtrToInt8 function Converts a value of type UINT_PTR to a value of type INT8.
RtlUIntPtrToIntPtr function Converts a value of type UINT_PTR to a value of type INT_PTR.
RtlUIntPtrToLong function Converts a value of type UINT_PTR to a value of type LONG.
RtlUIntPtrToLongLong function Converts a value of type UINT_PTR to a value of type LONGLONG.
RtlUIntPtrToLongPtr function Converts a value of type UINT_PTR to a value of type LONG_PTR.
RtlUIntPtrToShort function Converts a value of type UINT_PTR to a value of type SHORT.
RtlUIntPtrToUChar function Converts a value of type UINT_PTR to a value of type UCHAR.
RtlUIntPtrToUInt function Converts a value of type UINT_PTR to a value of type UINT.
RtlUIntPtrToUInt16 function Converts a value of type UINT_PTR to a value of type UINT16.
RtlUIntPtrToUInt8 function Converts a value of type UINT_PTR to a value of type UINT8.
RtlUIntPtrToULong function Converts a value of type UINT_PTR to a value of type LONG.
RtlUIntPtrToUShort function Converts a value of type UINT_PTR to a value of type USHORT.
RtlUIntSub function Subtracts one value of type UINT from another.
RtlUIntToChar function Converts a value of type UINT to a value of type CHAR.
RtlUIntToInt function Converts a value of type UINT to a value of type INT.
RtlUIntToInt8 function Converts a value of type UINT to a value of type INT8.
RtlUIntToIntPtr function Converts a value of type UINT to a value of type INT_PTR.
RtlUIntToLong function Converts a value of type UINT to a value of type LONG.
RtlUIntToLongPtr function Converts a value of type UINT to a value of type LONG_PTR.
RtlUIntToShort function Converts a value of type UINT to a value of type SHORT.
RtlUIntToUChar function Converts a value of type UINT to a value of type UCHAR.
RtlUIntToUInt8 function Converts a value of type UINT to a value of type UINT8.
RtlUIntToUShort function Converts a value of type UINT to a value of type USHORT.
RtlULongAdd function Adds two values of type ULONG.
RtlULongLongAdd function Adds two values of type ULONGLONG.
RtlULongLongMult function Multiplies one value of type ULONGLONG by another.
RtlULongLongSub function Subtracts one value of type ULONGLONG from another.
RtlULongLongToChar function Converts a value of type ULONGLONG to a value of type CHAR.
RtlULongLongToInt function Converts a value of type ULONGLONG to a value of type INT.
RtlULongLongToInt8 function Converts a value of type ULONGLONG to a value of type INT8.
RtlULongLongToLong function Converts a value of type ULONGLONG to a value of type LONG.
RtlULongLongToLongLong function Converts a value of type ULONGLONG to a value of type LONGLONG.
RtlULongLongToLongPtr function Converts a value of type ULONGLONG to a value of type LONG_PTR.
RtlULongLongToShort function Converts a value of type ULONGLONG to a value of type SHORT.
RtlULongLongToUChar function Converts a value of type ULONGLONG to a value of type UCHAR.
RtlULongLongToUInt function Converts a value of type ULONGLONG to a value of type UINT.
RtlULongLongToUInt8 function Converts a value of type ULONGLONG to a value of type UINT8.
RtlULongLongToUIntPtr function Converts a value of type ULONGLONG to a value of type UINT_PTR.
RtlULongLongToULong function Converts a value of type ULONGLONG to a value of type ULONG.
RtlULongLongToULongPtr function Converts a value of type ULONGLONG to a value of type ULONG_PTR.
RtlULongLongToUShort function Converts a value of type ULONGLONG to a value of type USHORT.
RtlULongMult function Multiplies one value of type ULONG by another.
RtlULongPtrAdd function Adds two values of type ULONG_PTR.
RtlULongPtrMult function Multiplies one value of type ULONG_PTR by another.
RtlULongPtrSub function Subtracts one value of type ULONG_PTR from another.
RtlULongPtrToChar function Converts a value of type ULONG_PTR to a value of type CHAR.
RtlULongPtrToInt function Converts a value of type ULONG_PTR to a value of type INT.
RtlULongPtrToInt8 function Converts a value of type ULONG_PTR to a value of type INT8.
RtlULongPtrToIntPtr function Converts a value of type ULONG_PTR to a value of type INT_PTR.
RtlULongPtrToLong function Converts a value of type ULONG_PTR to a value of type LONG.
RtlULongPtrToLongLong function Converts a value of type ULONG_PTR to a value of type LONGLONG.
RtlULongPtrToLongPtr function Converts a value of type ULONG_PTR to a value of type LONG_PTR.
RtlULongPtrToShort function Converts a value of type ULONG_PTR to a value of type SHORT.
RtlULongPtrToUChar function Converts a value of type ULONG_PTR to a value of type UCHAR.
RtlULongPtrToUInt function Converts a value of type ULONG_PTR to a value of type UINT.
RtlULongPtrToUInt8 function Converts a value of type ULONG_PTR to a value of type UINT8.
RtlULongPtrToUIntPtr function Converts a value of type ULONG_PTR to a value of type UINT_PTR.
RtlULongPtrToULong function Converts a value of type ULONG_PTR to a value of type ULONG.
RtlULongPtrToUShort function Converts a value of type ULONG_PTR to a value of type USHORT.
RtlULongSub function Subtracts one value of type ULONG from another.
RtlULongToChar function Converts a value of type ULONG to a value of type CHAR.
RtlULongToInt function Converts a value of type ULONG to a value of type INT.
RtlULongToInt8 function Converts a value of type ULONG to a value of type INT8.
RtlULongToIntPtr function Converts a value of type ULONG to a value of type INT_PTR.
RtlULongToLong function Converts a value of type ULONG to a value of type LONG.
RtlULongToLongPtr function Converts a value of type ULONG to a value of type LONG_PTR.
RtlULongToShort function Converts a value of type ULONG to a value of type SHORT.
RtlULongToUChar function Converts a value of type ULONG to a value of type UCHAR.
RtlULongToUInt function Converts a value of type ULONG to a value of type UINT.
RtlULongToUInt8 function Converts a value of type ULONG_PTR to a value of type UINT8.
RtlULongToUIntPtr function Converts a value of type ULONG_PTR to a value of type UINT_PTR.
RtlULongToUShort function Converts a value of type ULONG to a value of type USHORT.
RtlUShortAdd function Adds two values of type USHORT.
RtlUShortMult function Multiplies one value of type USHORT by another.
RtlUShortSub function Subtracts one value of type USHORT from another.
RtlUShortToChar function Converts a value of type USHORT to a value of type CHAR.
RtlUShortToInt8 function Converts a value of type USHORT to a value of type INT8.
RtlUShortToShort function Converts a value of type USHORT to a value of type SHORT.
RtlUShortToUChar function Converts a value of type USHORT to a value of type UCHAR.
RtlUShortToUInt8 function Converts a value of type USHORT to a value of type UINT8.
RtlUTF8ToUnicodeN function The RtlUTF8ToUnicodeN routine converts a UTF-8 string to a Unicode string.
RtlUnalignedStringCbLengthW function The RtlUnalignedStringCbLengthW function is a version of the RtlStringCbLength function that accepts an unaligned pointer to a string of Unicode characters.
RtlUnalignedStringCchLengthW function The RtlUnalignedStringCchLengthW function is a version of the RtlStringCchLength function that accepts an unaligned pointer to a string of Unicode characters.
RtlUnicodeStringCat function The RtlUnicodeStringCat function concatenates two strings that are contained in UNICODE_STRING structures.
RtlUnicodeStringCatEx function The RtlUnicodeStringCatEx function concatenates two strings that are contained in UNICODE_STRING structures.
RtlUnicodeStringCatString function The RtlUnicodeStringCatString function concatenates two strings when the destination string is contained in a UNICODE_STRING structure.
RtlUnicodeStringCatStringEx function The RtlUnicodeStringCatStringEx function concatenates two strings when the destination string is contained in a UNICODE_STRING structure.
RtlUnicodeStringCbCatN function The RtlUnicodeStringCbCatN function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCbCatNEx function The RtlUnicodeStringCbCatNEx function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCbCatStringN function 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 function 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 function The RtlUnicodeStringCbCopyN function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCbCopyNEx function The RtlUnicodeStringCbCopyNEx function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCbCopyStringN function The RtlUnicodeStringCbCopyStringN function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCbCopyStringNEx function The RtlUnicodeStringCbCopyStringNEx function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCchCatN function The RtlUnicodeStringCchCatN function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCchCatNEx function The RtlUnicodeStringCchCatNEx function concatenates two strings that are contained in UNICODE_STRING structures while limiting the size of the copied string.
RtlUnicodeStringCchCatStringN function 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 function 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 function The RtlUnicodeStringCchCopyN function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCchCopyNEx function The RtlUnicodeStringCchCopyNEx function copies a string from one UNICODE_STRING structure to another while limiting the size of the copied string.
RtlUnicodeStringCchCopyStringN function The RtlUnicodeStringCchCopyStringN function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCchCopyStringNEx function The RtlUnicodeStringCchCopyStringNEx function copies a string into a UNICODE_STRING structure while limiting the size of the copied string.
RtlUnicodeStringCopy function The RtlUnicodeStringCopy function copies a string from one UNICODE_STRING structure to another.
RtlUnicodeStringCopyEx function The RtlUnicodeStringCopyEx function copies a string from one UNICODE_STRING structure to another.
RtlUnicodeStringCopyString function The RtlUnicodeStringCopyString function copies a string into a UNICODE_STRING structure.
RtlUnicodeStringCopyStringEx function The RtlUnicodeStringCopyStringEx function copies a string into a UNICODE_STRING structure.
RtlUnicodeStringInit function The RtlUnicodeStringInit function initializes a UNICODE_STRING structure.
RtlUnicodeStringInitEx function The RtlUnicodeStringInitEx function initializes a UNICODE_STRING structure.
RtlUnicodeStringPrintf function 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 function 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.
RtlUnicodeStringToAnsiString function The RtlUnicodeStringToAnsiString routine converts a given Unicode string into an ANSI string.
RtlUnicodeStringToInteger function The RtlUnicodeStringToInteger routine converts a Unicode string representation of a number to the equivalent integer value.
RtlUnicodeStringVPrintf function 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 function 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.
RtlUnicodeStringValidate function The RtlUnicodeStringValidate function validates the contents of a UNICODE_STRING structure.
RtlUnicodeStringValidateEx function The RtlUnicodeStringValidateEx function validates the contents of a UNICODE_STRING structure.
RtlUnicodeToUTF8N function The RtlUnicodeToUTF8N routine converts a Unicode string to a UTF-8 string.
RtlUpcaseUnicodeChar function The RtlUpcaseUnicodeChar routine converts the specified Unicode character to uppercase.
RtlUpcaseUnicodeString function The RtlUpcaseUnicodeString routine converts a copy of the source string to uppercase and writes the converted string in the destination buffer.
RtlUpperChar function The RtlUpperChar routine converts the specified character to uppercase.
RtlUpperString function The RtlUpperString routine copies the given SourceString to the DestinationString buffer, converting it to uppercase.
RtlValidRelativeSecurityDescriptor function The RtlValidRelativeSecurityDescriptor routine checks the validity of a self-relative security descriptor.
RtlValidSecurityDescriptor function The RtlValidSecurityDescriptor routine checks a given security descriptor's validity.
RtlValidateCorrelationVector function Validates the specified correlation vector to check whether it conforms to the Correlation Vector Specification (v2).
RtlVerifyVersionInfo function 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 function 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.
RtlWriteRegistryValue function The RtlWriteRegistryValue routine writes caller-supplied data into the registry along the specified relative path at the given value name.
RtlxAnsiStringToUnicodeSize function 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 function The RtlxUnicodeStringToAnsiSize routine returns the number of bytes required for a null-terminated ANSI string that is equivalent to a specified Unicode string.
SeAccessCheck function 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 function 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 function The SeAssignSecurityEx routine builds a self-relative security descriptor for a new object given the following optional parameters
SeDeassignSecurity function The SeDeassignSecurity routine deallocates the memory associated with a security descriptor that was assigned using SeAssignSecurity.
SeSinglePrivilegeCheck function The SeSinglePrivilegeCheck routine checks for the passed privilege value in the context of the current thread.
SeValidSecurityDescriptor function The SeValidSecurityDescriptor routine returns whether a given security descriptor is structurally valid.
TmCommitComplete function The TmCommitComplete routine notifies KTM that the calling resource manager has finished committing a transaction.
TmCommitEnlistment function The TmCommitEnlistment routine initiates the commit operation for a specified enlistment's transaction.
TmCommitTransaction function The TmCommitTransaction routine initiates a commit operation for a specified transaction.
TmCreateEnlistment function The TmCreateEnlistment routine creates a new enlistment object for a transaction.
TmDereferenceEnlistmentKey function The TmDereferenceEnlistmentKey routine decrements the reference count for the key of a specified enlistment object.
TmEnableCallbacks function The TmEnableCallbacks routine enables a callback routine that receives transaction notifications.
TmGetTransactionId function The TmGetTransactionId routine retrieves a transaction object's unit of work (UOW) identifier.
TmInitializeTransactionManager function The TmInitializeTransactionManager routine initializes a transaction manager object.
TmIsTransactionActive function The TmIsTransactionActive routine indicates whether a specified transaction is in its active state.
TmPrePrepareComplete function The TmPrePrepareComplete routine notifies KTM that the calling resource manager has finished preliminary preparation of a transaction's data.
TmPrePrepareEnlistment function The TmPrePrepareEnlistment routine initiates the pre-prepare operation for a specified enlistment's transaction.
TmPrepareComplete function The TmPrepareComplete routine notifies KTM that the calling resource manager has finished preparing a transaction's data.
TmPrepareEnlistment function The TmPrepareEnlistment routine initiates the prepare operation for a specified enlistment's transaction.
TmReadOnlyEnlistment function The TmReadOnlyEnlistment routine sets a specified enlistment to be read-only.
TmRecoverEnlistment function The TmRecoverEnlistment routine initiates a recovery operation for the transaction that is associated with a specified enlistment.
TmRecoverResourceManager function The TmRecoverResourceManager routine tries to recover the transaction that is associated with each enlistment of a specified resource manager object.
TmRecoverTransactionManager function 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 function The TmReferenceEnlistmentKey routine increments the reference count for the key of a specified enlistment object and retrieves the key.
TmRenameTransactionManager function 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 function 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 function The TmRollbackComplete routine notifies KTM that the calling resource manager has finished rolling back a transaction's data.
TmRollbackEnlistment function The TmRollbackEnlistment routine rolls back a specified enlistment.
TmRollbackTransaction function The TmRollbackTransaction routine initiates a rollback operation for a specified transaction.
TmSinglePhaseReject function The TmSinglePhaseReject routine informs KTM that the calling resource manager will not support a single-phase commit operation for a specified enlistment.
VslCreateSecureSection function This material is not yet available. This placeholder topic is provided as an example of documentation that may be included in a later release.
VslDeleteSecureSection function This material is not yet available. This placeholder topic is provided as an example of documentation that may be included in a later release.
WRITE_PORT_BUFFER_UCHAR function The WRITE_PORT_BUFFER_UCHAR routine writes a number of bytes from a buffer to the specified port.
WRITE_PORT_BUFFER_ULONG function The WRITE_PORT_BUFFER_ULONG routine writes a number of ULONG values from a buffer to the specified port address.
WRITE_PORT_BUFFER_USHORT function The WRITE_PORT_BUFFER_USHORT routine writes a number of USHORT values from a buffer to the specified port address.
WRITE_PORT_UCHAR function The WRITE_PORT_UCHAR routine writes a byte to the specified port address.
WRITE_PORT_UCHAR function The WRITE_PORT_UCHAR routine writes a byte to the specified port address.
WRITE_PORT_ULONG function The WRITE_PORT_ULONG routine writes a ULONG value to the specified port address.
WRITE_PORT_ULONG function The WRITE_PORT_ULONG routine writes a ULONG value to the specified port address.
WRITE_PORT_USHORT function The WRITE_PORT_USHORT routine writes a USHORT value to the specified port address.
WRITE_PORT_USHORT function The WRITE_PORT_USHORT routine writes a USHORT value to the specified port address.
WRITE_REGISTER_BUFFER_UCHAR function The WRITE_REGISTER_BUFFER_UCHAR routine writes a number of bytes from a buffer to the specified register.
WRITE_REGISTER_BUFFER_ULONG function The WRITE_REGISTER_BUFFER_ULONG routine writes a number of ULONG values from a buffer to the specified register.
WRITE_REGISTER_BUFFER_USHORT function The WRITE_REGISTER_BUFFER_USHORT routine writes a number of USHORT values from a buffer to the specified register.
WRITE_REGISTER_UCHAR function The WRITE_REGISTER_UCHAR routine writes a byte to the specified address.
WRITE_REGISTER_UCHAR function The WRITE_REGISTER_UCHAR routine writes a byte to the specified address.
WRITE_REGISTER_ULONG function The WRITE_REGISTER_ULONG routine writes a ULONG value to the specified address.
WRITE_REGISTER_ULONG function The WRITE_REGISTER_ULONG routine writes a ULONG value to the specified address.
WRITE_REGISTER_USHORT function The WRITE_REGISTER_USHORT routine writes a USHORT value to the specified address.
WRITE_REGISTER_USHORT function The WRITE_REGISTER_USHORT routine writes a USHORT value to the specified address.
WdmlibIoConnectInterruptEx function The WdmlibIoConnectInterruptEx function registers an interrupt-handling routine for a device's interrupts.
WdmlibIoCreateDeviceSecure function The WdmlibIoCreateDeviceSecure function (or IoCreateDeviceSecure) creates a named device object and applies the specified security settings.
WdmlibIoDisconnectInterruptEx function The WdmlibIoDisconnectInterruptEx function unregisters an interrupt service routine (ISR) that was registered by a previous call to the WdmlibIoConnectInterruptEx function.
WdmlibIoGetAffinityInterrupt function The WdmlibIoGetAffinityInterrupt function gets the group affinity of an interrupt object.
WdmlibIoValidateDeviceIoControlAccess function 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 function The WdmlibProcgrpInitialize function initializes the Processor Group (ProcGrp) compatibility library.
WdmlibRtlInitUnicodeStringEx function The WdmlibRtlInitUnicodeStringEx function initializes a counted string of Unicode characters.
WmiCompleteRequest function The WmiCompleteRequest routine indicates that a driver has finished processing a WMI request in a DpWmiXxx routine.
WmiFireEvent function The WmiFireEvent routine sends an event to WMI for delivery to data consumers that have requested notification of the event.
WmiQueryTraceInformation function The WmiQueryTraceInformation routine returns information about a WMI event trace.
WmiSystemControl function The WmiSystemControl routine is a dispatch routine for drivers that use WMI library support routines to handle WMI IRPs.
WmiTraceMessage function The WmiTraceMessage routine adds a message to the output log of a WPP software tracing session.
WmiTraceMessageVa function The WmiTraceMessageVa routine adds a message to the output log of a WPP software tracing session.
ZwAllocateLocallyUniqueId function The ZwAllocateLocallyUniqueId routine allocates a locally unique identifier (LUID).
ZwClose function The ZwClose routine closes an object handle.
ZwCommitComplete function The ZwCommitComplete routine notifies KTM that the calling resource manager has finished committing a transaction's data.
ZwCommitEnlistment function The ZwCommitEnlistment routine initiates the commit operation for a specified enlistment's transaction.
ZwCommitTransaction function The ZwCommitTransaction routine initiates a commit operation for a specified transaction.
ZwCreateDirectoryObject function The ZwCreateDirectoryObject routine creates or opens an object-directory object.
ZwCreateEnlistment function The ZwCreateEnlistment routine creates a new enlistment object for a transaction.
ZwCreateFile function The ZwCreateFile routine creates a new file or opens an existing file.
ZwCreateKey function The ZwCreateKey routine creates a new registry key or opens an existing one.
ZwCreateKeyTransacted function The ZwCreateKeyTransacted routine creates a new registry key or opens an existing one, and it associates the key with a transaction.
ZwCreateResourceManager function The ZwCreateResourceManager routine creates a resource manager object.
ZwCreateSection function The ZwCreateSection routine creates a section object.
ZwCreateTransaction function The ZwCreateTransaction routine creates a transaction object.
ZwCreateTransactionManager function The ZwCreateTransactionManager routine creates a new transaction manager object.
ZwDeleteKey function The ZwDeleteKey routine deletes an open key from the registry.
ZwDeleteValueKey function 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 function The ZwDeviceIoControlFile routine sends a control code directly to a specified device driver, causing the corresponding driver to perform the specified operation.
ZwEnumerateKey function The ZwEnumerateKey routine returns information about a subkey of an open registry key.
ZwEnumerateTransactionObject function The ZwEnumerateTransactionObject routine enumerates the KTM objects on a computer.
ZwEnumerateValueKey function The ZwEnumerateValueKey routine gets information about the value entries of an open key.
ZwFlushKey function The ZwFlushKey routine forces a registry key to be committed to disk.
ZwGetNotificationResourceManager function The ZwGetNotificationResourceManager routine retrieves the next transaction notification from a specified resource manager's notification queue.
ZwLoadDriver function The ZwLoadDriver routine loads a driver into the system.
ZwMakeTemporaryObject function The ZwMakeTemporaryObject routine changes the attributes of an object to make it temporary.
ZwMapViewOfSection function The ZwMapViewOfSection routine maps a view of a section into the virtual address space of a subject process.
ZwOpenEnlistment function The ZwOpenEnlistment routine obtains a handle to an existing enlistment object.
ZwOpenEvent function The ZwOpenEvent routine opens a handle to an existing named event object with the specified desired access.
ZwOpenFile function The ZwOpenFile routine opens an existing file, directory, device, or volume.
ZwOpenKey function The ZwOpenKey routine opens an existing registry key.
ZwOpenKeyEx function The ZwOpenKeyEx routine opens an existing registry key.
ZwOpenKeyTransacted function The ZwOpenKeyTransacted routine opens an existing registry key and associates the key with a transaction.
ZwOpenKeyTransactedEx function The ZwOpenKeyTransactedEx routine opens an existing registry key and associates the key with a transaction.
ZwOpenProcess function The ZwOpenProcess routine opens a handle to a process object and sets the access rights to this object.
ZwOpenResourceManager function The ZwOpenResourceManager routine returns a handle to an existing resource manager object.
ZwOpenSection function The ZwOpenSection routine opens a handle for an existing section object.
ZwOpenSymbolicLinkObject function The ZwOpenSymbolicLinkObject routine opens an existing symbolic link.
ZwOpenTransaction function The ZwOpenTransaction routine obtains a handle to an existing transaction object.
ZwOpenTransactionManager function The ZwOpenTransactionManager routine obtains a handle to an existing transaction manager object.
ZwPowerInformation function The ZwPowerInformation routine sets or retrieves system power information.
ZwPrePrepareComplete function The ZwPrePrepareComplete routine notifies KTM that the calling resource manager has finished preliminary preparation of a transaction's data.
ZwPrePrepareEnlistment function The ZwPrePrepareEnlistment routine initiates the pre-prepare operation for a specified enlistment's transaction.
ZwPrepareComplete function The ZwPrepareComplete routine notifies KTM that the calling resource manager has finished preparing a transaction's data.
ZwPrepareEnlistment function The ZwPrepareEnlistment routine initiates the prepare operation for a specified enlistment's transaction.
ZwQueryFullAttributesFile function The ZwQueryFullAttributesFile routine supplies network open information for the specified file.
ZwQueryInformationEnlistment function The ZwQueryInformationEnlistment routine retrieves information about a specified enlistment object.
ZwQueryInformationFile function The ZwQueryInformationFile routine returns various kinds of information about a file object.
ZwQueryInformationResourceManager function The ZwQueryInformationResourceManager routine retrieves information about a specified resource manager object.
ZwQueryInformationTransaction function The ZwQueryInformationTransaction routine retrieves information about a specified transaction.
ZwQueryInformationTransactionManager function The ZwQueryInformationTransactionManager routine retrieves information about a specified transaction manager object.
ZwQueryKey function The ZwQueryKey routine provides information about the class of a registry key, and the number and sizes of its subkeys.
ZwQuerySymbolicLinkObject function The ZwQuerySymbolicLinkObject routine returns a Unicode string that contains the target of a symbolic link.
ZwQueryValueKey function The ZwQueryValueKey routine returns a value entry for a registry key.
ZwQueryVolumeInformationFile function The ZwQueryVolumeInformationFile routine retrieves information about the volume associated with a given file, directory, storage device, or volume.
ZwReadFile function The ZwReadFile routine reads data from an open file.
ZwReadOnlyEnlistment function The ZwReadOnlyEnlistment routine sets a specified enlistment to be read-only.
ZwRecoverEnlistment function The ZwRecoverEnlistment routine initiates a recovery operation for the transaction that is associated with a specified enlistment.
ZwRecoverResourceManager function The ZwRecoverResourceManager routine tries to recover the transaction that is associated with each enlistment of a specified resource manager object.
ZwRecoverTransactionManager function 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.
ZwRollbackComplete function The ZwRollbackComplete routine notifies KTM that the calling resource manager has finished rolling back a transaction's data.
ZwRollbackEnlistment function The ZwRollbackEnlistment routine rolls back the transaction that is associated with a specified enlistment.
ZwRollbackTransaction function The ZwRollbackTransaction routine initiates a rollback operation for a specified transaction.
ZwRollforwardTransactionManager function The ZwRollforwardTransactionManager routine initiates recovery operations for all of the in-progress transactions that are assigned to a specified transaction manager.
ZwSetInformationEnlistment function The ZwSetInformationEnlistment routine sets information for a specified enlistment object.
ZwSetInformationFile function The ZwSetInformationFile routine changes various kinds of information about a file object.
ZwSetInformationResourceManager function The ZwSetInformationResourceManager routine is not used.
ZwSetInformationThread function The ZwSetInformationThread routine sets the priority of a thread.
ZwSetInformationTransaction function The ZwSetInformationTransaction routine sets information for a specified transaction.
ZwSetValueKey function The ZwSetValueKey routine creates or replaces a registry key's value entry.
ZwSinglePhaseReject function The ZwSinglePhaseReject routine informs KTM that the calling resource manager will not support single-phase commit operations for a specified enlistment.
ZwTerminateProcess function The ZwTerminateProcess routine terminates a process and all of its threads.
ZwUnloadDriver function The ZwUnloadDriver routine unloads a driver from the system.
ZwUnmapViewOfSection function The ZwUnmapViewOfSection routine unmaps a view of a section from the virtual address space of a subject process.
ZwWriteFile function The ZwWriteFile routine writes data to an open file.

Callback functions

Title Description
ALLOCATE_FUNCTION_EX callback function The LookasideListAllocateEx routine allocates the storage for a new lookaside-list entry when a client requests an entry from a lookaside list that is empty.
BOUND_CALLBACK callback function The BoundCallback routine is executed whenever the system issues a bounds exception for a user-mode thread.
DEVICE_ACTIVE_COOLING callback function The ActiveCooling callback routine engages or disengages a device's active-cooling function.
DEVICE_PASSIVE_COOLING callback function The PassiveCooling callback routine controls the degree to which the device must throttle its performance to meet cooling requirements.
DMA_COMPLETION_ROUTINE callback function The DmaCompletionRoutine callback routine notifies the driver that previously requested a system DMA transfer that this transfer is complete.
DRIVER_ADD_DEVICE callback function 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 callback function The Cancel routine cancels an I/O operation.
DRIVER_CONTROL callback function This routine starts a DMA data-transfer or a data transfer operation.
DRIVER_DISPATCH callback function The callback routine services various IRPs. For a list of function codes, see Remarks.
DRIVER_INITIALIZE callback function DriverEntry is the first routine called after a driver is loaded, and is responsible for initializing the driver.
DRIVER_LIST_CONTROL callback function The AdapterListControl routine starts a direct memory access (DMA) scatter/gather operation.
DRIVER_REINITIALIZE callback function The Reinitialize routine continues driver and device initialization after the driver's DriverEntry routine returns.
DRIVER_STARTIO callback function The StartIo routine starts the I/O operation described by an IRP.
DRIVER_UNLOAD callback function The Unload routine performs any operations that are necessary before the system unloads the driver.
EXPAND_STACK_CALLOUT callback function The ExpandedStackCall routine executes with a guaranteed stack size.
EXT_CALLBACK callback function An ExTimerCallback callback routine runs after an EX_TIMER timer object's time interval expires.
EXT_DELETE_CALLBACK callback function An ExTimerDeleteCallback callback routine runs when the operating system deletes an EX_TIMER timer object.
EX_CALLBACK_FUNCTION callback function A filter driver's RegistryCallback routine can monitor, block, or modify a registry operation.
FREE_FUNCTION_EX callback function 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 callback function 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 callback function 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_DMA_ADAPTER callback function The GetDmaAdapter routine returns a DMA_ADAPTER structure for the target device.
GET_IDLE_WAKE_INFO callback function 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 callback function 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 callback function The GetBusData routine reads data from the device's configuration space.
IO_COMPLETION_ROUTINE callback function The IoCompletion routine completes the processing of I/O operations.
IO_CSQ_ACQUIRE_LOCK callback function 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 callback function The CsqCompleteCanceledIrp routine is used by the system to signal to the driver that it can complete a canceled IRP.
IO_CSQ_INSERT_IRP callback function 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 callback function 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 callback function 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 callback function The CsqReleaseLock routine is used by the system to release the lock that was acquired using CsqAcquireLock.
IO_CSQ_REMOVE_IRP callback function The CsqRemoveIrp routine is used by the system to remove the specified IRP from a driver-implemented, cancel-safe IRP queue.
IO_DPC_ROUTINE callback function The DpcForIsr routine finishes the servicing of an I/O operation, after an InterruptService routine returns.
IO_SESSION_NOTIFICATION_FUNCTION callback 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 callback function The IoTimer routine is a DPC that, if registered, is called once per second.
IO_WORKITEM_ROUTINE callback function A WorkItem routine performs the processing for a work item that was queued by the IoQueueWorkItem routine.
IO_WORKITEM_ROUTINE_EX callback function A WorkItemEx routine performs the processing for a work item that was queued by the IoQueueWorkItemEx or IoTryQueueWorkItem routine.
KBUGCHECK_CALLBACK_ROUTINE callback function The BugCheckCallback routine is executed whenever the system issues a bug check.
KBUGCHECK_REASON_CALLBACK_ROUTINE callback function Driver-implemented callback functions that the system executes when it issues a bug check.
KDEFERRED_ROUTINE callback function The callback routine performs actions, after an InterruptService returns, of a threaded DPC, The CustomDpc routine finishes the servicing of an I/O operation, after an InterruptService routine returns.The CustomThreadedDpc routine performs the action of a threaded DPC. The system executes this routine when the threaded DPC runs.The CustomTimerDpc routine executes after a timer object's time interval expires.
KIPI_BROADCAST_WORKER callback function The IpiGenericCall routine runs simultaneously on all processors.
KMESSAGE_SERVICE_ROUTINE callback function An InterruptMessageService routine services a message-signaled interrupt.
KSERVICE_ROUTINE callback function The InterruptService routine (ISR) quickly services a device interrupt and schedules post-interrupt processing of received data, if necessary.
KSTART_ROUTINE callback function The ThreadStart routine provides an entry point for a driver-created system thread.
KSYNCHRONIZE_ROUTINE callback function The SynchCritSection routine is used to access hardware resources or driver data that are shared with a driver's InterruptService routine.
MM_MDL_ROUTINE callback function A driver-supplied callback routine that is invoked after a memory descriptor list (MDL) is mapped by calling the MmMapMdl function.
PALLOCATE_ADAPTER_CHANNEL callback function 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 callback function 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 callback function 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 callback function 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.
PBUILD_MDL_FROM_SCATTER_GATHER_LIST callback function 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 callback function 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 callback function 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 callback function The CalculateScatterGatherList routine calculates the size, in bytes, of scatter/gather list necessary to hold a given buffer.
PCANCEL_ADAPTER_CHANNEL callback function The CancelAdapterChannel routine tries to cancel a pending request to allocate a DMA channel.
PCANCEL_MAPPED_TRANSFER callback function The CancelMappedTransfer routine cancels a system DMA transfer that is currently mapped to an adapter.
PCI_MSIX_MASKUNMASK_ENTRY callback function The MaskTableEntry routine masks an interrupt in the MSI-X hardware interrupt table.
PCI_MSIX_SET_ENTRY callback function The SetTableEntry routine sets the message ID for a table entry in the MSI-X hardware interrupt table.
PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK callback function The ClfsAdvanceTailCallback function advances the base log sequence number (LSN) of the client's log.
PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK callback function 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 callback function The ClfsLogUnpinnedCallback function implements any actions that the client will take when a log that had previously been pinned becomes unpinned.
PCONFIGURE_ADAPTER_CHANNEL callback function The ConfigureAdapterChannel routine invokes a custom function that is implemented by the DMA controller represented by an adapter object.
PCREATE_PROCESS_NOTIFY_ROUTINE callback function 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 callback function A callback routine implemented by a driver to notify the caller when a process is created or exits.
PCREATE_THREAD_NOTIFY_ROUTINE callback function A callback routine implemented by a driver to notify the caller when a thread is created or deleted.
PDEVICE_RESET_HANDLER callback function The DeviceReset routine is used to reset and recover a malfunctioning device.
PEPCALLBACKNOTIFYACPI callback function An AcceptAcpiNotification event callback routine handles ACPI notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYACPI callback function An AcceptAcpiNotification event callback routine handles ACPI notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYDPM callback function An AcceptDeviceNotification event callback routine handles device power management (DPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYDPM callback function An AcceptDeviceNotification event callback routine handles device power management (DPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYPPM callback function An AcceptProcessorNotification event callback routine handles processor power management (PPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKNOTIFYPPM callback function An AcceptProcessorNotification event callback routine handles processor power management (PPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKPOWERONCRASHDUMPDEVICE callback function The PowerOnDumpDeviceCallback callback routine turns on the crash-dump device.
PEPCALLBACKPOWERONCRASHDUMPDEVICE callback function The PowerOnDumpDeviceCallback callback routine turns on the crash-dump device.
PFLUSH_ADAPTER_BUFFERS callback function 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 callback function 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.
PFREE_ADAPTER_CHANNEL callback function 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 callback function The FreeAdapterObject routine releases the specified adapter object after a driver has completed all DMA operations.
PFREE_COMMON_BUFFER callback function The FreeCommonBuffer routine frees a common buffer allocated by AllocateCommonBuffer, along with all resources the buffer uses.
PFREE_MAP_REGISTERS callback function The FreeMapRegisters routine releases a set of map registers that were saved from a call to AllocateAdapterChannel.
PGET_DMA_ADAPTER_INFO callback function The GetDmaAdapterInfo routine retrieves information about the hardware capabilities of a system DMA channel.
PGET_DMA_ALIGNMENT callback function The GetDmaAlignment routine returns the alignment requirements of the DMA system.
PGET_DMA_TRANSFER_INFO callback function The GetDmaTransferInfo routine calculates the allocation requirements for a scatter/gather DMA transfer.
PGET_LOCATION_STRING callback function The PnpGetLocationString routine provides the device-specific part of the device's SPDRP_LOCATION_PATHS property.
PGET_SCATTER_GATHER_LIST callback function 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 callback function The GetScatterGatherListEx routine allocates the resources that are required for a DMA transfer, builds a scatter/gather list, and calls the driver-supplied AdapterListControl routine to initiate the DMA transfer.
PINITIALIZE_DMA_TRANSFER_CONTEXT callback function The InitializeDmaTransferContext routine initializes an opaque DMA transfer context that is used to track pending allocations of DMA resources.
PINTERFACE_DEREFERENCE callback function The InterfaceDereference routine decrements the reference count on a driver-defined interface.
PINTERFACE_REFERENCE callback function The InterfaceReference routine increments the reference count on a driver-defined interface.
PLOAD_IMAGE_NOTIFY_ROUTINE callback function 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 callback function The MapTransfer routine sets up map registers for an adapter object to map a DMA transfer from a locked-down buffer.
PMAP_TRANSFER_EX callback function 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.
POB_POST_OPERATION_CALLBACK callback function The ObjectPostCallback routine is called by the operating system after a process or thread handle operation occurs.
POB_PRE_OPERATION_CALLBACK callback function The ObjectPreCallback routine is called by the operating system when a process or thread handle operation occurs.
POFXCALLBACKCRITICALRESOURCE callback function The TransitionCriticalResource routine changes the active/inactive state of a core system component.
POFXCALLBACKCRITICALRESOURCE callback function The TransitionCriticalResource routine changes the active/inactive state of a core system component.
POFXCALLBACKENUMERATEUNMASKEDINTERRUPTS callback function The EnumerateUnmaskedInterrupts routine enumerates interrupt sources whose interrupts are unmasked and enabled.
POFXCALLBACKENUMERATEUNMASKEDINTERRUPTS callback function The EnumerateUnmaskedInterrupts routine enumerates interrupt sources whose interrupts are unmasked and enabled.
POFXCALLBACKPLATFORMIDLEVETO callback function The PlatformIdleVeto routine increments or decrements the veto count for a veto code for a platform idle state.
POFXCALLBACKPLATFORMIDLEVETO callback function The PlatformIdleVeto routine increments or decrements the veto count for a veto code for a platform idle state.
POFXCALLBACKPROCESSORHALT callback function The ProcessorHalt routine prepares the processor to be halted.
POFXCALLBACKPROCESSORHALT callback function The ProcessorHalt routine prepares the processor to be halted.
POFXCALLBACKPROCESSORIDLEVETO callback function The ProcessorIdleVeto routine increments or decrements the veto count for a veto code for a processor idle state.
POFXCALLBACKPROCESSORIDLEVETO callback function The ProcessorIdleVeto routine increments or decrements the veto count for a veto code for a processor idle state.
POFXCALLBACKREQUESTCOMMON callback function The RequestCommon routine is a generic request handler.
POFXCALLBACKREQUESTCOMMON callback function The RequestCommon routine is a generic request handler.
POFXCALLBACKREQUESTINTERRUPT callback function 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 callback function 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 callback function 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 callback function 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 callback function The UpdatePlatformIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified platform idle state.
POFXCALLBACKUPDATEPLATFORMIDLESTATE callback function The UpdatePlatformIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified platform idle state.
POFXCALLBACKUPDATEPROCESSORIDLESTATE callback function The UpdateProcessorIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified processor idle state.
POFXCALLBACKUPDATEPROCESSORIDLESTATE callback function The UpdateProcessorIdleState routine is called by the platform extension plug-in (PEP) to update the properties of the specified processor idle state.
PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK callback function 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 callback function 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 callback function 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 callback function 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 callback function 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 callback function 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 callback function The DevicePowerRequiredCallback callback routine notifies the device driver that the device must enter and remain in the D0 power state.
PO_FX_POWER_CONTROL_CALLBACK callback function The PowerControlCallback callback routine performs a power control operation that is requested by the power management framework (PoFx).
PPO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK callback An EnumerateInterruptSource callback routine supplies a platform extension plug-in (PEP) with information about an interrupt source.
PPO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK callback An EnumerateInterruptSource callback routine supplies a platform extension plug-in (PEP) with information about an interrupt source.
PPUT_DMA_ADAPTER callback function The PutDmaAdapter routine frees a DMA_ADAPTER structure previously allocated by IoGetDmaAdapter.
PPUT_SCATTER_GATHER_LIST callback function The PutScatterGatherList routine frees the previously allocated map registers and scatter/gather list used in scatter/gather DMA.
PREAD_DMA_COUNTER callback function The ReadDmaCounter routine returns the number of bytes remaining to be transferred during the current subordinate DMA operation.
PREENUMERATE_SELF callback function A ReenumerateSelf routine requests that a bus driver reenumerate a child device.
PROCESSOR_HALT_ROUTINE callback function A Halt callback routine transitions the processor to an idle state.
PTM_RM_NOTIFICATION callback function A resource manager's ResourceManagerNotification callback routine receives and handles transaction notifications.
REQUEST_POWER_COMPLETE callback function The PowerCompletion callback routine completes the processing of a power IRP.
RTL_QUERY_REGISTRY_ROUTINE callback function 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 callback function The RunOnceInitialization routine performs a one-time initialization operation.
SET_D3COLD_SUPPORT callback function The SetD3ColdSupport routine enables or disables transitions to the D3cold device power state.
SILO_CONTEXT_CLEANUP_CALLBACK callback function This callback is invoked when the context object reaches a reference count of zero.
SILO_MONITOR_CREATE_CALLBACK callback function This is callback is invoked when a new silo is created.
SILO_MONITOR_TERMINATE_CALLBACK callback function This callback is invoked when a silo is terminated.
TRANSLATE_BUS_ADDRESS callback function The TranslateBusAddress routine translates addresses on the parent bus to logical addresses.
WMI_EXECUTE_METHOD_CALLBACK callback function The DpWmiExecuteMethod routine executes a method associated with a data block. This routine is optional.
WMI_FUNCTION_CONTROL_CALLBACK callback function 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 callback function The DpWmiQueryDataBlock routine returns either a single instance or all instances of a data block. This routine is required.
WMI_QUERY_REGINFO_CALLBACK callback function 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 callback function The DpWmiSetDataBlock routine changes all data items in a single instance of a data block. This routine is optional.
WMI_SET_DATAITEM_CALLBACK callback function The DpWmiSetDataItem routine changes a single data item in an instance of a data block. This routine is optional.
pHalExamineMBR callback function The HalExamineMBR routine reads the master boot record (MBR) of a disk and returns data from the MBR if the MBR is of the type specified by the caller.

Structures

Title Description
CM_Power_Data_s structure The CM_POWER_DATA structure contains information about a device's power management state and capabilities.
CM_Power_Data_s structure The CM_POWER_DATA structure contains information about a device's power management state and capabilities.
CORRELATION_VECTOR structure Store the correlation vector that is used to reference events and the generated logs for diagnostic purposes.
WMIREGGUIDW structure The WMIREGGUID structure contains new or updated registration information for a data block or event block.
WMIREGINFOW structure The WMIREGINFO structure contains information provided by a driver to register or update its data blocks and event blocks.
_AUX_MODULE_BASIC_INFO structure The AUX_MODULE_BASIC_INFO structure contains basic information about a loaded image module.
_AUX_MODULE_EXTENDED_INFO structure The AUX_MODULE_EXTENDED_INFO structure contains extended information about a loaded image module.
_BDCB_IMAGE_INFORMATION structure 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 structure 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 structure The BOOTDISK_INFORMATION structure contains basic information describing the boot and system disks.
_BOOTDISK_INFORMATION_EX structure The BOOTDISK_INFORMATION_EX structure contains extended information describing the boot and system disks.
_BUS_INTERFACE_STANDARD structure 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.
_CLFS_LOG_NAME_INFORMATION structure The CLFS_LOG_NAME_INFORMATION structure holds the name of a Common Log File System (CLFS) stream or log.
_CLFS_MGMT_CLIENT_REGISTRATION structure The CLFS_MGMT_CLIENT_REGISTRATION structure is given to CLFS management by clients who manage their own logs.
_CLFS_MGMT_POLICY structure The CLFS_MGMT_POLICY structure holds a description of a policy for managing a CLFS log.
_CLFS_STREAM_ID_INFORMATION structure The CLFS_STREAM_ID_INFORMATION structure holds a value that identifies a stream in a Common Log File System (CLFS) log.
_CLS_CONTAINER_INFORMATION structure The CLFS_CONTAINER_INFORMATION structure holds descriptive information for an individual container in a Common Log File System (CLFS) log.
_CLS_INFORMATION structure 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 structure The CLFS_IO_STATISTICS structure holds I/O statistics data for a Common Log File System (CLFS) log.
_CLS_IO_STATISTICS_HEADER structure The CLFS_IO_STATISTICS_HEADER structure holds the header portion of a CLFS_IO_STATISTICS structure.
_CLS_LSN structure The CLFS_LSN structure identifies an individual record in a Common Log File System (CLFS) stream.
_CLS_SCAN_CONTEXT structure 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 structure 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 structure The CM_EISA_FUNCTION_INFORMATION structure defines detailed EISA configuration information returned by HalGetBusData for the input BusDataType EisaConfiguration, or by HalGetBusDataByOffset for the input BusDataType EisaConfiguration and the Offset zero, assuming the caller-allocated Buffer is of sufficient Length.
_CM_EISA_SLOT_INFORMATION structure The CM_EISA_SLOT_INFORMATION structure defines EISA configuration header information returned by HalGetBusData for the input BusDataType = EisaConfiguration, or by HalGetBusDataByOffset for the inputs BusDataType = EisaConfiguration and Offset = 0, assuming the caller-allocated Buffer is of sufficient Length.
_CM_FLOPPY_DEVICE_DATA structure 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 structure 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 structure 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 structure 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 structure The CM_MCA_POS_DATA structure is obsolete. It defines IBM-compatible MCA POS configuration information for a slot.
_CM_PARTIAL_RESOURCE_DESCRIPTOR structure 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 structure 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_RESOURCE_LIST structure The CM_RESOURCE_LIST structure specifies all of the system hardware resources assigned to a device.
_CM_SCSI_DEVICE_DATA structure 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 structure 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.
_CONTROLLER_OBJECT structure A controller object represents a hardware adapter or controller with homogenous devices that are the actual targets for I/O requests.
_COUNTED_REASON_CONTEXT structure The COUNTED_REASON_CONTEXT structure contains one or more strings that give reasons for a power request.
_COUNTED_REASON_CONTEXT structure The COUNTED_REASON_CONTEXT structure contains one or more strings that give reasons for a power request.
_CPTABLEINFO structure Stores the NLS file formats.
_D3COLD_SUPPORT_INTERFACE structure The D3COLD_SUPPORT_INTERFACE interface structure contains pointers to the routines in the GUID_D3COLD_SUPPORT_INTERFACE driver interface.
_DEVICE_CAPABILITIES structure 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 structure The DEVICE_DESCRIPTION structure describes the attributes of the physical device for which a driver is requesting a DMA adapter.
_DEVICE_INTERFACE_CHANGE_NOTIFICATION structure The DEVICE_INTERFACE_CHANGE_NOTIFICATION structure describes a device interface that has been enabled (arrived) or disabled (removed).
_DEVICE_OBJECT structure A device object represents a logical, virtual, or physical device for which a driver handles I/O requests.
_DEVICE_RESET_INTERFACE_STANDARD structure 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.
_DMA_ADAPTER structure 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_ADAPTER_INFO structure 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_V1 structure The DMA_ADAPTER_INFO_V1 structure describes the capabilities of the system DMA controller that is represented by an adapter object.
_DMA_OPERATIONS structure The DMA_OPERATIONS structure provides a table of pointers to functions that control the operation of a DMA controller.
_DMA_TRANSFER_INFO structure 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 structure 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.
_DRIVER_OBJECT structure Each driver object represents the image of a loaded kernel-mode driver.
_ENLISTMENT_BASIC_INFORMATION structure The ENLISTMENT_BASIC_INFORMATION structure contains information about an enlistment object.
_EVENT_TRACE_HEADER structure The EVENT_TRACE_HEADER structure is used to pass a WMI event to the WMI event logger.
_EXT_DELETE_PARAMETERS structure The EXT_DELETE_PARAMETERS structure contains an extended set of parameters for the ExDeleteTimer routine.
_EXT_SET_PARAMETERS_V0 structure The EXT_SET_PARAMETERS structure contains an extended set of parameters for the ExSetTimer routine.
_FILE_ALIGNMENT_INFORMATION structure The FILE_ALIGNMENT_INFORMATION structure is used as an argument to the ZwQueryInformationFile routine.
_FILE_ATTRIBUTE_TAG_INFORMATION structure The FILE_ATTRIBUTE_TAG_INFORMATION structure is used as an argument to ZwQueryInformationFile.
_FILE_BASIC_INFORMATION structure The FILE_BASIC_INFORMATION structure is used as an argument to routines that query or set file information.
_FILE_DISPOSITION_INFORMATION structure The FILE_DISPOSITION_INFORMATION structure is used as an argument to the ZwSetInformationFile routine.
_FILE_END_OF_FILE_INFORMATION structure The FILE_END_OF_FILE_INFORMATION structure is used as an argument to the ZwSetInformationFile routine.
_FILE_FS_DEVICE_INFORMATION structure 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 structure The FILE_FULL_EA_INFORMATION structure provides extended attribute (EA) information. This structure is used primarily by network drivers.
_FILE_IO_PRIORITY_HINT_INFORMATION structure 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 structure The FILE_IS_REMOTE_DEVICE_INFORMATION structure is used as an argument to the ZwQueryInformationFile routine.
_FILE_NAME_INFORMATION structure The FILE_NAME_INFORMATION structure is used as argument to the ZwQueryInformationFile and ZwSetInformationFile routines.
_FILE_NETWORK_OPEN_INFORMATION structure The FILE_NETWORK_OPEN_INFORMATION structure is used as an argument to ZwQueryInformationFile.
_FILE_OBJECT structure The FILE_OBJECT structure is used by the system to represent a file object.
_FILE_POSITION_INFORMATION structure The FILE_POSITION_INFORMATION structure is used as an argument to routines that query or set file information.
_FILE_STANDARD_INFORMATION structure The FILE_STANDARD_INFORMATION structure is used as an argument to routines that query or set file information.
_FILE_STANDARD_INFORMATION_EX structure The FILE_STANDARD_INFORMATION_EX structure is used as an argument to routines that query or set file information.
_FILE_VALID_DATA_LENGTH_INFORMATION structure The FILE_VALID_DATA_LENGTH_INFORMATION structure is used as an argument to ZwSetInformationFile.
_FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS structure 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 structure The GENERIC_MAPPING structure describes the ACCESS_MASK value of specific access rights associated with each type of generic access right.
_HARDWARE_COUNTER structure The HARDWARE_COUNTER structure contains information about a hardware counter.
_HWPROFILE_CHANGE_NOTIFICATION structure The HWPROFILE_CHANGE_NOTIFICATION structure describes an event related to a hardware profile configuration change.
_IMAGE_INFO structure Used by driver's load-image routine (PLOAD_IMAGE_NOTIFY_ROUTINE) to specify image information.
_IMAGE_INFO_EX structure Extended version of the image information structure (see IMAGE_INFO).
_IMAGE_POLICY_ENTRY structure This structure is not supported.
_IMAGE_POLICY_METADATA structure This structure is not supported.
_INTERFACE structure The INTERFACE structure describes an interface that is exported by a driver for use by other drivers.
_IO_CONNECT_INTERRUPT_PARAMETERS structure 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 structure The IO_DISCONNECT_INTERRUPT_PARAMETERS structure describes the parameters when unregistering an interrupt-handling routine with IoDisconnectInterruptEx.
_IO_ERROR_LOG_PACKET structure The IO_ERROR_LOG_PACKET structure serves as the header for an error log entry.
_IO_INTERRUPT_MESSAGE_INFO structure The IO_INTERRUPT_MESSAGE_INFO structure describes the driver's message-signaled interrupts.
_IO_INTERRUPT_MESSAGE_INFO_ENTRY structure The IO_INTERRUPT_MESSAGE_INFO_ENTRY structure describes the properties of a single message-signaled interrupt.
_IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure 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 structure The IO_RESOURCE_DESCRIPTOR structure describes a range of raw hardware resources, of one type, that can be used by a device. An array of IO_RESOURCE_DESCRIPTOR structures is contained within each IO_RESOURCE_LIST structure.
_IO_RESOURCE_LIST structure The IO_RESOURCE_LIST structure describes a range of raw hardware resources, of various types, that can be used by a device.
_IO_RESOURCE_REQUIREMENTS_LIST structure The IO_RESOURCE_REQUIREMENTS_LIST structure describes sets of resource configurations that can be used by a device. Each configuration represents a range of raw resources, of various types, that can be used by a device.
_IO_SECURITY_CONTEXT structure The IO_SECURITY_CONTEXT structure represents the security context of an IRP_MJ_CREATE request.
_IO_SESSION_CONNECT_INFO structure The IO_SESSION_CONNECT_INFO structure provides information about a user session.
_IO_SESSION_STATE_INFORMATION structure The IO_SESSION_STATE_INFORMATION structure contains information about the state of a user session.
_IO_SESSION_STATE_NOTIFICATION structure 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 structure 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 structure 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.
_IRP structure The IRP structure is a partially opaque structure that represents an I/O request packet. Drivers can use the following members of the IRP structure.
_KBUGCHECK_ADD_PAGES structure The KBUGCHECK_ADD_PAGES structure describes one or more pages of driver-supplied data to be written by a BugCheckAddPagesCallback callback routine to the crash dump file.
_KBUGCHECK_DATA structure The KBUGCHECK_DATA structure contains bug check parameters.
_KBUGCHECK_DUMP_IO structure The KBUGCHECK_DUMP_IO structure describes an I/O operation on the crash dump file.
_KBUGCHECK_SECONDARY_DUMP_DATA structure The KBUGCHECK_SECONDARY_DUMP_DATA structure describes a section of driver-supplied data to be written by BugCheckSecondaryDumpDataCallback to the crash dump file.
_KDPC_WATCHDOG_INFORMATION structure The KDPC_WATCHDOG_INFORMATION structure holds time-out information about the current deferred procedure call (DPC).
_KEY_BASIC_INFORMATION structure The KEY_BASIC_INFORMATION structure defines a subset of the full information that is available for a registry key.
_KEY_CACHED_INFORMATION structure The KEY_CACHED_INFORMATION structure holds the cached information available for a registry key or subkey.
_KEY_FULL_INFORMATION structure 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 structure The KEY_NAME_INFORMATION structure holds the name and name length of the key.
_KEY_NODE_INFORMATION structure The KEY_NODE_INFORMATION structure defines the basic information available for a registry (sub)key.
_KEY_VALUE_BASIC_INFORMATION structure 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 structure 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 structure The KEY_VALUE_FULL_INFORMATION structure defines information available for a value entry of a registry key.
_KEY_VALUE_PARTIAL_INFORMATION structure 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 structure The KEY_VIRTUALIZATION_INFORMATION structure defines the basic information that is available for a registry key or subkey.
_KEY_WRITE_TIME_INFORMATION structure The KEY_WRITE_TIME_INFORMATION structure is used by the system to set the last write time for a registry key.
_KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT structure 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.
_KTMOBJECT_CURSOR structure The KTMOBJECT_CURSOR structure receives enumeration information about KTM objects when a component calls ZwEnumerateTransactionObject.
_LINK_SHARE_ACCESS structure The share access structure used by file systems for only link files.
_MDL structure An MDL structure is a partially opaque structure that represents a memory descriptor list (MDL).
_MM_COPY_ADDRESS structure The MM_COPY_ADDRESS structure contains either a virtual memory address or a physical memory address.
_MM_PHYSICAL_ADDRESS_LIST structure The MM_PHYSICAL_ADDRESS_LIST structure specifies a range of physical addresses.
_NLSTABLEINFO structure Stores the NLS file formats .
_OB_CALLBACK_REGISTRATION structure The OB_CALLBACK_REGISTRATION structure specifies the parameters when the ObRegisterCallbacks routine registers ObjectPreCallback and ObjectPostCallback callback routines.
_OB_OPERATION_REGISTRATION structure 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 structure 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 structure 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 structure The OB_POST_OPERATION_INFORMATION structure provides information about a process or thread handle operation to an ObjectPostCallback routine.
_OB_POST_OPERATION_PARAMETERS structure The OB_POST_OPERATION_PARAMETERS union describes the operation-specific parameters for an ObjectPostCallback routine.
_OB_PRE_CREATE_HANDLE_INFORMATION structure 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 structure 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 structure The OB_PRE_OPERATION_INFORMATION structure provides information about a process or thread handle operation to an ObjectPreCallback routine.
_OB_PRE_OPERATION_PARAMETERS structure The OB_PRE_OPERATION_PARAMETERS union describes the operation-specific parameters for an ObjectPreCallback routine.
_OSVERSIONINFOEXW structure The RTL_OSVERSIONINFOEXW structure contains operating system version information.
_OSVERSIONINFOW structure The RTL_OSVERSIONINFOW structure contains operating system version information.
_PCI_COMMON_CONFIG structure The PCI_COMMON_CONFIG structure is obsolete.
_PCI_MSIX_TABLE_CONFIG_INTERFACE structure 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_SLOT_NUMBER structure The PCI_SLOT_NUMBER structure is obsolete.
_PEP_ABANDON_DEVICE structure 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 structure 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 structure The PEP_ACPI_ABANDON_DEVICE structure indicates whether the platform extension plug-in (PEP) accepts ownership of an abandoned device.
_PEP_ACPI_ABANDON_DEVICE structure 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 structure The PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE structure contains an enumeration of the objects in the namespace of the device.
_PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE structure The PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE structure contains an enumeration of the objects in the namespace of the device.
_PEP_ACPI_EVALUATE_CONTROL_METHOD structure 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 structure 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 structure 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 structure 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 structure The PEP_ACPI_GPIO_RESOURCE structure describes the ACPI configuration for a general purpose input/output (GPIO) resource.
_PEP_ACPI_GPIO_RESOURCE structure The PEP_ACPI_GPIO_RESOURCE structure describes the ACPI configuration for a general purpose input/output (GPIO) resource.
_PEP_ACPI_INTERRUPT_RESOURCE structure The PEP_ACPI_INTERRUPT_RESOURCE structure describes an ACPI interrupt resource.
_PEP_ACPI_INTERRUPT_RESOURCE structure The PEP_ACPI_INTERRUPT_RESOURCE structure describes an ACPI interrupt resource.
_PEP_ACPI_IO_MEMORY_RESOURCE structure The PEP_ACPI_IO_MEMORY_RESOURCE structure describes an ACPI IO port descriptor resource.
_PEP_ACPI_IO_MEMORY_RESOURCE structure The PEP_ACPI_IO_MEMORY_RESOURCE structure describes an ACPI IO port descriptor resource.
_PEP_ACPI_OBJECT_NAME structure The PEP_ACPI_OBJECT_NAME union contains the four-character name of an ACPI object.
_PEP_ACPI_OBJECT_NAME structure The PEP_ACPI_OBJECT_NAME union contains the four-character name of an ACPI object.
_PEP_ACPI_OBJECT_NAME_WITH_TYPE structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure The PEP_ACPI_QUERY_OBJECT_INFORMATION structure contains information about an ACPI object.
_PEP_ACPI_QUERY_OBJECT_INFORMATION structure The PEP_ACPI_QUERY_OBJECT_INFORMATION structure contains information about an ACPI object.
_PEP_ACPI_REGISTER_DEVICE structure 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 structure 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 structure 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 structure 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 structure The PEP_ACPI_RESOURCE structure contains hardware details for a specific ACPI resource.
_PEP_ACPI_RESOURCE structure The PEP_ACPI_RESOURCE structure contains hardware details for a specific ACPI resource.
_PEP_ACPI_RESOURCE_FLAGS structure The PEP_ACPI_RESOURCE_FLAGS structure contains flags describing an ACPI resource.
_PEP_ACPI_RESOURCE_FLAGS structure The PEP_ACPI_RESOURCE_FLAGS structure contains flags describing an ACPI resource.
_PEP_ACPI_SPB_I2C_RESOURCE structure The PEP_ACPI_SPB_I2C_RESOURCE structure describes an ACPI I2C serial bus resource.
_PEP_ACPI_SPB_I2C_RESOURCE structure The PEP_ACPI_SPB_I2C_RESOURCE structure describes an ACPI I2C serial bus resource.
_PEP_ACPI_SPB_RESOURCE structure The PEP_ACPI_SPB_RESOURCE structure describes an ACPI serial bus connection resource.
_PEP_ACPI_SPB_RESOURCE structure The PEP_ACPI_SPB_RESOURCE structure describes an ACPI serial bus connection resource.
_PEP_ACPI_SPB_SPI_RESOURCE structure The PEP_ACPI_SPB_SPI_RESOURCE structure describes an ACPI SPI serial bus resource.
_PEP_ACPI_SPB_SPI_RESOURCE structure The PEP_ACPI_SPB_SPI_RESOURCE structure describes an ACPI SPI serial bus resource.
_PEP_ACPI_SPB_UART_RESOURCE structure The PEP_ACPI_SPB_UART_RESOURCE structure describes an ACPI UART serial bus resource.
_PEP_ACPI_SPB_UART_RESOURCE structure The PEP_ACPI_SPB_UART_RESOURCE structure describes an ACPI UART serial bus resource.
_PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES structure 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 structure 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 structure The PEP_ACPI_UNREGISTER_DEVICE structure contains information about a device that has been unregistered from ACPI services.
_PEP_ACPI_UNREGISTER_DEVICE structure The PEP_ACPI_UNREGISTER_DEVICE structure contains information about a device that has been unregistered from ACPI services.
_PEP_COMPONENT_ACTIVE structure 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 structure The PEP_COMPONENT_PERF_INFO structure describes the performance states (P-states) of a component.
_PEP_COMPONENT_PERF_INFO structure The PEP_COMPONENT_PERF_INFO structure describes the performance states (P-states) of a component.
_PEP_COMPONENT_PERF_SET structure The PEP_COMPONENT_PERF_SET structure describes the performance states (P-states) in a P-state set.
_PEP_COMPONENT_PERF_SET structure The PEP_COMPONENT_PERF_SET structure describes the performance states (P-states) in a P-state set.
_PEP_COMPONENT_PERF_STATE_REQUEST structure 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 structure 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 structure 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 structure 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 structure The PEP_COMPONENT_V2 structure specifies the power state attributes of a component in the device.
_PEP_COMPONENT_V2 structure The PEP_COMPONENT_V2 structure specifies the power state attributes of a component in the device.
_PEP_COORDINATED_DEPENDENCY_OPTION structure The PEP_COORIDNATED_DEPENDENCY_OPTION structure describes a coordinated idle state’s dependency to the OS.
_PEP_COORDINATED_DEPENDENCY_OPTION structure The PEP_COORIDNATED_DEPENDENCY_OPTION structure describes a coordinated idle state’s dependency to the OS.
_PEP_COORDINATED_IDLE_STATE structure The PEP_COORIDNATED_IDLE_STATE structure describes a coordinated idle state to the OS.
_PEP_COORDINATED_IDLE_STATE structure The PEP_COORIDNATED_IDLE_STATE structure describes a coordinated idle state to the OS.
_PEP_CRASHDUMP_INFORMATION structure The PEP_CRASHDUMP_INFORMATION structure contains information about a crash-dump device.
_PEP_CRASHDUMP_INFORMATION structure The PEP_CRASHDUMP_INFORMATION structure contains information about a crash-dump device.
_PEP_DEBUGGER_TRANSITION_REQUIREMENTS structure The PEP_DEBUGGER_TRANSITION_REQUIREMENTS structure indicates the platform idle states for which the debugger device must be turned on.
_PEP_DEBUGGER_TRANSITION_REQUIREMENTS structure The PEP_DEBUGGER_TRANSITION_REQUIREMENTS structure indicates the platform idle states for which the debugger device must be turned on.
_PEP_DEVICE_PLATFORM_CONSTRAINTS structure 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 structure 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 structure The PEP_DEVICE_POWER_STATE structure indicates the status of a transition to a new Dx (device power) state.
_PEP_DEVICE_POWER_STATE structure The PEP_DEVICE_POWER_STATE structure indicates the status of a transition to a new Dx (device power) state.
_PEP_DEVICE_REGISTER_V2 structure The PEP_DEVICE_REGISTER structure describes all the components in a particular device.
_PEP_DEVICE_REGISTER_V2 structure The PEP_DEVICE_REGISTER structure describes all the components in a particular device.
_PEP_DEVICE_STARTED structure The PEP_DEVICE_STARTED structure identifies a device whose driver has completed its registration with the Windows power management framework (PoFx).
_PEP_DEVICE_STARTED structure The PEP_DEVICE_STARTED structure identifies a device whose driver has completed its registration with the Windows power management framework (PoFx).
_PEP_INFORMATION structure 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 structure 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 structure The PEP_KERNEL_INFORMATION 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 structure The PEP_KERNEL_INFORMATION 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 structure The PEP_KERNEL_INFORMATION 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 structure 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 structure The PEP_LOW_POWER_EPOCH structure is used to provide data for a PEP_DPM_LOW_POWER_EPOCH notification (deprecated).
_PEP_LOW_POWER_EPOCH structure 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 structure 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 structure 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 structure 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 structure 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 structure The PEP_PLATFORM_IDLE_STATE structure specifies the properties of a platform idle state.
_PEP_PLATFORM_IDLE_STATE structure The PEP_PLATFORM_IDLE_STATE structure specifies the properties of a platform idle state.
_PEP_PLATFORM_IDLE_STATE_UPDATE structure The PEP_PLATFORM_IDLE_STATE_UPDATE structure contains the updated properties of a platform idle state.
_PEP_PLATFORM_IDLE_STATE_UPDATE structure The PEP_PLATFORM_IDLE_STATE_UPDATE structure contains the updated properties of a platform idle state.
_PEP_POWER_CONTROL_COMPLETE structure 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 structure 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 structure The PEP_POWER_CONTROL_REQUEST structure contains a request from a driver for a power control operation.
_PEP_POWER_CONTROL_REQUEST structure The PEP_POWER_CONTROL_REQUEST structure contains a request from a driver for a power control operation.
_PEP_PPM_CONTEXT_QUERY_PARKING_PAGE structure The PEP_PPM_CONTEXT_QUERY_PARKING_PAGE structure describes the parking page for a processor.
_PEP_PPM_CONTEXT_QUERY_PARKING_PAGE structure The PEP_PPM_CONTEXT_QUERY_PARKING_PAGE structure describes the parking page for a processor.
_PEP_PPM_CST_STATE structure The PEP_PPM_CST_STATE structure specifies the properties of a C state (ACPI processor power state).
_PEP_PPM_CST_STATE structure The PEP_PPM_CST_STATE structure specifies the properties of a C state (ACPI processor power state).
_PEP_PPM_CST_STATES structure 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 structure 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 structure 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 structure 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 structure The PEP_PPM_FEEDBACK_READ structure contains the value read from a processor performance feedback counter.
_PEP_PPM_FEEDBACK_READ structure The PEP_PPM_FEEDBACK_READ structure contains the value read from a processor performance feedback counter.
_PEP_PPM_IDLE_CANCEL structure The PEP_PPM_IDLE_CANCEL structure indicates why the processor could not enter the previously selected idle state.
_PEP_PPM_IDLE_COMPLETE structure The PEP_PPM_IDLE_COMPLETE structure describe the idle states from which the processor and hardware platform are waking.
_PEP_PPM_IDLE_COMPLETE structure The PEP_PPM_IDLE_COMPLETE structure describe the idle states from which the processor and hardware platform are waking.
_PEP_PPM_IDLE_COMPLETE_V2 structure 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 structure The PEP_PPM_IDLE_COMPLETE_V2 structure describe the idle states from which the processor and hardware platform are waking.
_PEP_PPM_IDLE_EXECUTE structure The PEP_PPM_IDLE_EXECUTE structure specifies the idle state that the processor is to enter.
_PEP_PPM_IDLE_EXECUTE structure The PEP_PPM_IDLE_EXECUTE structure specifies the idle state that the processor is to enter.
_PEP_PPM_IDLE_EXECUTE_V2 structure The PEP_PPM_IDLE_EXECUTE_V2 structure specifies the idle state that the processor is to enter.
_PEP_PPM_IDLE_EXECUTE_V2 structure The PEP_PPM_IDLE_EXECUTE_V2 structure specifies the idle state that the processor is to enter.
_PEP_PPM_IDLE_SELECT structure 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 structure The PEP_PPM_INITIATE_WAKE structure indicates whether a processor requires an interrupt to wake up from an idle state.
_PEP_PPM_INITIATE_WAKE structure 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 structure The PEP_PPM_IS_PROCESSOR_HALTED structure indicates whether the processor is currently halted in its selected idle state.
_PEP_PPM_IS_PROCESSOR_HALTED structure The PEP_PPM_IS_PROCESSOR_HALTED structure indicates whether the processor is currently halted in its selected idle state.
_PEP_PPM_LPI_COMPLETE structure 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_PARK_MASK structure The PEP_PROCESSOR_PARK_MASK structure contains the current core parking mask.
_PEP_PPM_PARK_MASK structure The PEP_PROCESSOR_PARK_MASK structure contains the current core parking mask.
_PEP_PPM_PARK_SELECTION structure 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 structure 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 structure 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 structure 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 structure 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 structure 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_SET structure The PEP_PPM_PERF_SET structure specifies the new performance level that the operating system is requesting for the processor.
_PEP_PPM_PERF_SET structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure The PEP_PPM_QUERY_COORDINATED_DEPENDENCY structure describes dependencies for coordinated idle states.
_PEP_PPM_QUERY_COORDINATED_DEPENDENCY structure The PEP_PPM_QUERY_COORDINATED_DEPENDENCY structure describes dependencies for coordinated idle states.
_PEP_PPM_QUERY_COORDINATED_STATES structure 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 structure 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 structure 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 structure 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 structure Used in the PEP_NOTIFY_PPM_QUERY_DOMAIN_INFO notification that queries for information about a performance domain. .
_PEP_PPM_QUERY_DOMAIN_INFO structure Used in the PEP_NOTIFY_PPM_QUERY_DOMAIN_INFO notification that queries for information about a performance domain. .
_PEP_PPM_QUERY_FEEDBACK_COUNTERS structure 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_FEEDBACK_COUNTERS structure 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 structure The PEP_PPM_QUERY_IDLE_STATES structure describes the idle states of a particular processor.
_PEP_PPM_QUERY_IDLE_STATES_V2 structure 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 structure 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 structure 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 structure 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 structure The PEP_PPM_QUERY_PERF_CAPABILITIES structure describes the performance capabilities of the processors in the specified processor performance domain.
_PEP_PPM_QUERY_PERF_CONSTRAINTS structure The PEP_PPM_PERF_CONSTRAINTS structure describes the performance limits to apply to the processor.
_PEP_PPM_QUERY_PERF_CONSTRAINTS structure The PEP_PPM_PERF_CONSTRAINTS structure describes the performance limits to apply to the processor.
_PEP_PPM_QUERY_PLATFORM_STATE structure The PEP_PPM_QUERY_PLATFORM_STATE structure contains information about a platform idle state.
_PEP_PPM_QUERY_PLATFORM_STATE structure The PEP_PPM_QUERY_PLATFORM_STATE structure contains information about a platform idle state.
_PEP_PPM_QUERY_PLATFORM_STATES structure The PEP_PPM_QUERY_PLATFORM_STATES structure specifies the number of platform idle states the hardware platform supports.
_PEP_PPM_QUERY_PLATFORM_STATES structure The PEP_PPM_QUERY_PLATFORM_STATES structure specifies the number of platform idle states the hardware platform supports.
_PEP_PPM_QUERY_STATE_NAME structure The PEP_PPM_QUERY_STATE_NAME structure contains information about a specific coordinated or platform idle state.
_PEP_PPM_QUERY_STATE_NAME structure The PEP_PPM_QUERY_STATE_NAME structure contains information about a specific coordinated or platform idle state.
_PEP_PPM_QUERY_VETO_REASON structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure The PEP_PPM_TEST_IDLE_STATE structure contains information about whether the processor can immediately enter a processor idle state.
_PEP_PREPARE_DEVICE structure 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 structure 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 structure The PEP_PROCESSOR_FEEDBACK_COUNTER structure describes a feedback counter to the operating system.
_PEP_PROCESSOR_FEEDBACK_COUNTER structure The PEP_PROCESSOR_FEEDBACK_COUNTER structure describes a feedback counter to the operating system.
_PEP_PROCESSOR_IDLE_CONSTRAINTS structure 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 structure The PEP_PROCESSOR_IDLE_DEPENDENCY structure specifies the dependencies of a platform idle state on the specified processor.
_PEP_PROCESSOR_IDLE_DEPENDENCY structure The PEP_PROCESSOR_IDLE_DEPENDENCY structure specifies the dependencies of a platform idle state on the specified processor.
_PEP_PROCESSOR_IDLE_STATE structure The PEP_PROCESSOR_IDLE_STATE structure describes the capabilities of a processor idle state.
_PEP_PROCESSOR_IDLE_STATE_UPDATE structure The PEP_PROCESSOR_IDLE_STATE_UPDATE structure contains the updated properties of a processor idle state.
_PEP_PROCESSOR_IDLE_STATE_UPDATE structure The PEP_PROCESSOR_IDLE_STATE_UPDATE structure contains the updated properties of a processor idle state.
_PEP_PROCESSOR_IDLE_STATE_V2 structure 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 structure The PEP_PROCESSOR_IDLE_STATE_V2 structure describes a processor idle state that the platform extension plug-in (PEP) supports.
_PEP_PROCESSOR_PARK_PREFERENCE structure 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 structure 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 structure The PEP_PROCESSOR_PARK_STATE structure describes the parking state for a single processor.
_PEP_PROCESSOR_PARK_STATE structure The PEP_PROCESSOR_PARK_STATE structure describes the parking state for a single processor.
_PEP_PROCESSOR_PERF_STATE structure Use in the PEP_NOTIFY_PPM_QUERY_DISCRETE_PERF_STATES notification. This structure describes the properties of a single performance state. .
_PEP_PROCESSOR_PERF_STATE structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure The PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME structure 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 structure The PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME structure 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 structure 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 structure 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 structure 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 structure 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 structure The PEP_REGISTER_COMPONENT_PERF_STATES structure describes the performance states (P-states) of the specified component.
_PEP_REGISTER_COMPONENT_PERF_STATES structure The PEP_REGISTER_COMPONENT_PERF_STATES structure describes the performance states (P-states) of the specified component.
_PEP_REGISTER_CRASHDUMP_DEVICE structure The PEP_REGISTER_CRASHDUMP_DEVICE structure provides a callback routine to turn on a crash-dump device.
_PEP_REGISTER_CRASHDUMP_DEVICE structure The PEP_REGISTER_CRASHDUMP_DEVICE structure provides a callback routine to turn on a crash-dump device.
_PEP_REGISTER_DEBUGGER structure The PEP_REGISTER_DEBUGGER structure identifies a registered device that is a core system resource that provides debugger transport.
_PEP_REGISTER_DEBUGGER structure The PEP_REGISTER_DEBUGGER structure identifies a registered device that is a core system resource that provides debugger transport.
_PEP_REGISTER_DEVICE_V2 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure The PEP_SYSTEM_LATENCY structure specifies the new value for the system latency tolerance.
_PEP_SYSTEM_LATENCY structure The PEP_SYSTEM_LATENCY structure specifies the new value for the system latency tolerance.
_PEP_UNMASKED_INTERRUPT_FLAGS structure The PEP_UNMASKED_INTERRUPT_FLAGS union indicates whether an unmasked interrupt source is a primary interrupt or a secondary interrupt.
_PEP_UNMASKED_INTERRUPT_FLAGS structure The PEP_UNMASKED_INTERRUPT_FLAGS union indicates whether an unmasked interrupt source is a primary interrupt or a secondary interrupt.
_PEP_UNMASKED_INTERRUPT_INFORMATION structure The PEP_UNMASKED_INTERRUPT_INFORMATION structure contains information about an interrupt source.
_PEP_UNMASKED_INTERRUPT_INFORMATION structure The PEP_UNMASKED_INTERRUPT_INFORMATION structure contains information about an interrupt source.
_PEP_UNREGISTER_DEVICE structure The PEP_UNREGISTER_DEVICE structure identifies a device whose registration is being removed from the Windows power management framework (PoFx).
_PEP_UNREGISTER_DEVICE structure The PEP_UNREGISTER_DEVICE structure identifies a device whose registration is being removed from the Windows power management framework (PoFx).
_PEP_WORK structure The PEP_WORK structure indicates whether the PEP has a work request to submit to the Windows power management framework (PoFx).
_PEP_WORK structure 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 structure 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 structure 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 structure The PEP_WORK_ACPI_NOTIFY structure contains the ACPI Notify code for a device that has generated a hardware event.
_PEP_WORK_ACPI_NOTIFY structure The PEP_WORK_ACPI_NOTIFY structure contains the ACPI Notify code for a device that has generated a hardware event.
_PEP_WORK_ACTIVE_COMPLETE structure The PEP_WORK_ACTIVE_COMPLETE structure identifies a component that is now in the active condition.
_PEP_WORK_COMPLETE_IDLE_STATE structure 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 structure 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 structure 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 structure 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 structure The PEP_WORK_DEVICE_IDLE structure indicates whether to ignore the idle time-out for the specified device.
_PEP_WORK_DEVICE_POWER structure The PEP_WORK_DEVICE_POWER structure describes the new power requirements for the specified device.
_PEP_WORK_IDLE_STATE structure The PEP_WORK_IDLE_STATE structure contains a request to transition a component to an Fx power state.
_PEP_WORK_INFORMATION structure The PEP_WORK_INFORMATION structure describes a work item that the PEP is submitting to the Windows power management framework (PoFx).
_PEP_WORK_INFORMATION structure 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 structure 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 structure 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_RESOURCE_DESCRIPTOR structure The PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR structure describes the counter resources available on the platform.
_PHYSICAL_COUNTER_RESOURCE_LIST structure The PHYSICAL_COUNTER_RESOURCE_LIST structure describes an array of PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR structures.
_PLUGPLAY_NOTIFICATION_HEADER structure 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 structure The PNP_BUS_INFORMATION structure describes a bus.
_PNP_LOCATION_INTERFACE structure The PNP_LOCATION_INTERFACE structure describes the GUID_PNP_LOCATION_INTERFACE interface.
_POWER_PLATFORM_INFORMATION structure The POWER_PLATFORM_INFORMATION structure contains information about the power capabilities of the system.
_POWER_PLATFORM_INFORMATION structure The POWER_PLATFORM_INFORMATION structure contains information about the power capabilities of the system.
_POWER_STATE structure The POWER_STATE union specifies a system power state value or a device power state value.
_POWER_STATE structure The POWER_STATE union specifies a system power state value or a device power state value.
_POWER_THROTTLING_PROCESS_STATE structure 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 structure Stores the throttling policies and how to apply them to a target thread when that thread is subject to power management.
_PO_FX_COMPONENT_IDLE_STATE structure 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 structure 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 structure The PO_FX_COMPONENT_PERF_SET structure represents a set of performance states for a single component within a device.
_PO_FX_COMPONENT_V1 structure The PO_FX_COMPONENT structure describes the power state attributes of a component in a device.
_PO_FX_COMPONENT_V2 structure The PO_FX_COMPONENT structure describes the power state attributes of a component in a device.
_PO_FX_CORE_DEVICE structure 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 structure 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 structure The PO_FX_DEVICE structure describes the power attributes of a device to the power management framework (PoFx).
_PO_FX_DEVICE_V2 structure The PO_FX_DEVICE structure describes the power attributes of a device to the power management framework (PoFx).
_PO_FX_PERF_STATE structure The PO_FX_PERF_STATE structure represents a performance state for a single component within a device.
_PO_FX_PERF_STATE_CHANGE structure 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.
_PRIVILEGE_SET structure The PRIVILEGE_SET structure specifies a set of security privileges. For more information, see the reference page for PRIVILEGE_SET in the Microsoft Windows SDK documentation.
_PROCESS_MITIGATION_CHILD_PROCESS_POLICY structure Stores policy information about creating child processes.
_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY structure Stores information about process mitigation policy.
_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY structure This structure is not supported.
_PROCESS_READWRITEVM_LOGGING_INFORMATION structure Stores options for read/write access for telemetry per process.
_PS_CREATE_NOTIFY_INFO structure The PS_CREATE_NOTIFY_INFO structure provides information about a newly created process.
_REENUMERATE_SELF_INTERFACE_STANDARD structure 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 structure 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 structure 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 structure 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 structure 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 structure 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 structure The REG_ENUMERATE_KEY_INFORMATION structure describes one subkey of a key whose subkeys are being enumerated.
_REG_ENUMERATE_VALUE_KEY_INFORMATION structure 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 structure The REG_KEY_HANDLE_CLOSE_INFORMATION structure contains information about a registry key whose handle is about to be closed.
_REG_LOAD_KEY_INFORMATION structure The REG_LOAD_KEY_INFORMATION structure contains information about a registry hive that is being loaded.
_REG_POST_CREATE_KEY_INFORMATION structure The REG_POST_CREATE_KEY_INFORMATION structure contains the result of an attempt to create a registry key.
_REG_POST_OPERATION_INFORMATION structure The REG_POST_OPERATION_INFORMATION structure contains information about a completed registry operation that a RegistryCallback routine can use.
_REG_PRE_CREATE_KEY_INFORMATION structure The REG_PRE_OPEN_KEY_INFORMATION structure contains the name of a registry key that is about to be opened.
_REG_QUERY_KEY_INFORMATION structure The REG_QUERY_KEY_INFORMATION structure describes the metadata that is about to be queried for a key.
_REG_QUERY_KEY_NAME structure The REG_QUERY_KEY_NAME structure describes the full registry key name of an object being queried.
_REG_QUERY_KEY_SECURITY_INFORMATION structure The REG_QUERY_KEY_SECURITY_INFORMATION structure receives security information for a registry key object.
_REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION structure 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 structure The REG_QUERY_VALUE_KEY_INFORMATION structure contains information about a registry key's value entry that is being queried.
_REG_RENAME_KEY_INFORMATION structure 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 structure The REG_REPLACE_KEY_INFORMATION structure describes the metadata that is about to be replaced for a key.
_REG_RESTORE_KEY_INFORMATION structure The REG_RESTORE_KEY_INFORMATION structure contains the information for a registry key that is about to be restored.
_REG_SAVE_KEY_INFORMATION structure The REG_SAVE_KEY_INFORMATION structure contains the information for a registry key that is about to be saved.
_REG_SET_INFORMATION_KEY_INFORMATION structure The REG_SET_INFORMATION_KEY_INFORMATION structure describes a new setting for a key's metadata.
_REG_SET_KEY_SECURITY_INFORMATION structure The REG_SET_KEY_SECURITY_INFORMATION structure specifies security information for a registry key object.
_REG_SET_VALUE_KEY_INFORMATION structure The REG_SET_VALUE_INFORMATION structure describes a new setting for a registry key's value entry.
_REG_UNLOAD_KEY_INFORMATION structure 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 structure The RESOURCEMANAGER_BASIC INFORMATION structure contains information about a resource manager object.
_RESOURCEMANAGER_COMPLETION_INFORMATION structure The RESOURCEMANAGER_COMPLETION_INFORMATION structure is not used.
_SCATTER_GATHER_LIST structure The SCATTER_GATHER_LIST structure describes the scatter/gather list for a DMA operation.
_SDEV_IDENTIFIER_INTERFACE structure This material is not yet available. This placeholder topic is provided as an example of documentation that may be included in a later release.
_SECTION_OBJECT_POINTERS structure 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.
_SILO_MONITOR_REGISTRATION structure This structure specifies a server silo monitor that can receive notifications about server silo events.
_SLIST_ENTRY structure An SLIST_ENTRY structure describes an entry in a sequenced singly linked list.
_SYSENV_VALUE structure Stores the value of a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_GET_VARIABLE request.
_SYSENV_VARIABLE structure Stores the name a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_GET_VARIABLE request.
_SYSENV_VARIABLE_INFO structure Stores the information about a system environment variable using SysEnv device. This structure is used in the IOCTL_SYSENV_QUERY_VARIABLE_INFO request.
_SYSTEM_POWER_STATE_CONTEXT structure 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 structure 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 structure The TARGET_DEVICE_CUSTOM_NOTIFICATION structure describes a custom device event.
_TARGET_DEVICE_REMOVAL_NOTIFICATION structure 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.
_THERMAL_COOLING_INTERFACE structure The THERMAL_COOLING_INTERFACE structure enables the operating system to control the thermal management settings of a device.
_TRANSACTIONMANAGER_BASIC_INFORMATION structure The TRANSACTIONMANAGER_BASIC_INFORMATION structure contains information about a transaction manager object.
_TRANSACTIONMANAGER_LOGPATH_INFORMATION structure The TRANSACTIONMANAGER_LOGPATH_INFORMATION structure contains information about a transaction manager object.
_TRANSACTIONMANAGER_LOG_INFORMATION structure The TRANSACTIONMANAGER_LOG_INFORMATION structure contains information about a transaction manager object.
_TRANSACTIONMANAGER_RECOVERY_INFORMATION structure The TRANSACTIONMANAGER_RECOVERY_INFORMATION structure contains information about a transaction manager object.
_TRANSACTION_BASIC_INFORMATION structure The TRANSACTION_BASIC_INFORMATION structure contains information about a transaction object.
_TRANSACTION_ENLISTMENTS_INFORMATION structure The TRANSACTION_ENLISTMENTS_INFORMATION structure contains information about the enlistments that are associated with a transaction object.
_TRANSACTION_ENLISTMENT_PAIR structure The TRANSACTION_ENLISTMENT_PAIR structure contains information about an enlistment that is associated with a transaction object.
_TRANSACTION_PROPERTIES_INFORMATION structure The TRANSACTION_PROPERTIES_INFORMATION structure contains a transaction object's properties.
_VPCI_INVALIDATE_BLOCK_OUTPUT structure The VPCI_INVALIDATE_BLOCK_OUTPUT structure is used in an IOCTL_VPCI_INVALIDATE_BLOCK IOCTL request.
_VPCI_READ_BLOCK_INPUT structure The VPCI_READ_BLOCK_INPUT structure is used in an IOCTL_VPCI_READ_BLOCK IOCTL request to read data from a specified configuration block of data for a PCI Express (PCIe) virtual function (VF).
_VPCI_WRITE_BLOCK_INPUT structure The VPCI_WRITE_BLOCK_INPUT structure is used in an IOCTL_VPCI_WRITE_BLOCK IOCTL request to write data to a specified configuration block for a PCI Express (PCIe) virtual function (VF).
_WMIGUIDREGINFO structure 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 structure 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.
_WNODE_HEADER structure The WNODE_HEADER structure is the first member of all other WNODE_XXX structures. It contains information common to all such structures.
_XVARIABLE_NAME structure 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 structure 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.
tagWNODE_ALL_DATA structure The WNODE_ALL_DATA structure contains data for all instances of a data block or event block.
tagWNODE_EVENT_ITEM structure The WNODE_EVENT_ITEM structure contains data generated by a driver for an event.
tagWNODE_EVENT_REFERENCE structure 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.
tagWNODE_METHOD_ITEM structure The WNODE_METHOD_ITEM structure indicates a method associated with an instance of a data block and contains any input data for the method.
tagWNODE_SINGLE_INSTANCE structure The WNODE_SINGLE_INSTANCE structure contains values for all data items in one instance of a data block.
tagWNODE_SINGLE_ITEM structure The WNODE_SINGLE_ITEM structure contains the value of a single data item in an instance of a data block.
tagWNODE_TOO_SMALL structure The WNODE_TOO_SMALL structure indicates the size of the buffer needed to receive output from a request.

Enumerations

Title Description
*PPEP_PROCESSOR_IDLE_CANCEL_CODE enumeration 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).
*PPEP_PROCESSOR_IDLE_TYPE enumeration The PEP_PROCESSOR_IDLE_TYPE enumeration indicates whether idle constraints apply to just the current processor or to all processors in the hardware platform.
DEVICE_REGISTRY_PROPERTY enumeration The DEVICE_REGISTRY_PROPERTY enumeration identifies device properties that are stored in the registry.
DMA_COMPLETION_STATUS enumeration The DMA_COMPLETION_STATUS enumeration describes the completion status of a DMA transfer.
PEP_PROCESSOR_IDLE_CANCEL_CODE enumeration 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 enumeration The PEP_PROCESSOR_IDLE_TYPE enumeration indicates whether idle constraints apply to just the current processor or to all processors in the hardware platform.
POWER_INFORMATION_LEVEL enumeration Indicates power level information.
POWER_INFORMATION_LEVEL enumeration Indicates power level information.
_BDCB_CALLBACK_TYPE enumeration 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 enumeration The BDCB_CLASSIFICATION enumeration lists different classifications of boot start images.
_BDCB_STATUS_UPDATE_TYPE enumeration The BDCB_STATUS_UPDATE_TYPE enumeration lists the types of boot-driver callback status updates.
_BOUND_CALLBACK_STATUS enumeration The BOUND_CALLBACK_STATUS enumeration indicates how a user-mode bounds exception was processed by the BoundCallback function.
_BUS_DATA_TYPE enumeration The BUS_DATA_TYPE enumeration indicates the type of bus configuration space.
_CLFS_CONTEXT_MODE enumeration 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 enumeration The CLFS_MGMT_POLICY_TYPE enumeration type identifies the type of a CLFS management policy.
_CLS_LOG_INFORMATION_CLASS enumeration The CLFS_LOG_INFORMATION_CLASS enumeration indicates the type of information that is requested by a call to ClfsQueryLogFileInformation.
_D3COLD_LAST_TRANSITION_STATUS enumeration 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_INSTALL_STATE enumeration The DEVICE_INSTALL_STATE enumeration describes a device's installation state.
_DEVICE_POWER_STATE enumeration The DEVICE_POWER_STATE enumeration type indicates a device power state.
_DEVICE_POWER_STATE enumeration The DEVICE_POWER_STATE enumeration type indicates a device power state.
_DEVICE_REMOVAL_POLICY enumeration The DEVICE_REMOVAL_POLICY enumeration describes a device's removal policy.
_DEVICE_RESET_TYPE enumeration 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_WAKE_DEPTH enumeration The DEVICE_WAKE_DEPTH enumeration specifies the deepest device power state from which a device can trigger a wake signal.
_ENLISTMENT_INFORMATION_CLASS enumeration 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.
_GPIO_PIN_CONFIG_TYPE enumeration The GPIO_PIN_CONFIG_TYPE enumeration describes a connection IO resource.
_GPIO_PIN_CONFIG_TYPE enumeration The GPIO_PIN_CONFIG_TYPE enumeration describes a connection IO resource.
_GPIO_PIN_IORESTRICTION_TYPE enumeration The GPIO_PIN_IORESTRICTION_TYPE enumeration describes the functions that a GPIO pin is limited to performing.
_GPIO_PIN_IORESTRICTION_TYPE enumeration The GPIO_PIN_IORESTRICTION_TYPE enumeration describes the functions that a GPIO pin is limited to performing.
_HARDWARE_COUNTER_TYPE enumeration The HARDWARE_COUNTER_TYPE enumeration specifies the type of a hardware counter.
_IMAGE_POLICY_ENTRY_TYPE enumeration This enumeration is not supported.
_IMAGE_POLICY_ID enumeration This enumeration is not supported.
_INTERFACE_TYPE enumeration The INTERFACE_TYPE enumeration indicates the bus type.
_IO_ACCESS_MODE enumeration Defines the types of access mode for Scheduled File I/O (SFIO).
_IO_ACCESS_MODE enumeration Defines the types of access mode for Scheduled File I/O (SFIO).
_IO_ACCESS_TYPE enumeration Defines the access rights for Scheduled File I/O (SFIO).
_IO_ACCESS_TYPE enumeration Defines the access rights for Scheduled File I/O (SFIO).
_IO_ALLOCATION_ACTION enumeration The IO_ALLOCATION_ACTION enumerated type is used to specify return values for AdapterControl and ControllerControl routines.
_IO_CONTAINER_INFORMATION_CLASS enumeration 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 enumeration 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_PAGING_PRIORITY enumeration The IO_PAGING_PRIORITY enumeration describes the priority value for a paging I/O IRP.
_IO_PRIORITY_HINT enumeration The IO_PRIORITY_HINT enumeration type specifies the priority hint for an IRP.
_IO_SESSION_EVENT enumeration The IO_SESSION_EVENT enumeration indicates the type of session event for which a driver is receiving notification.
_IO_SESSION_STATE enumeration The IO_SESSION_STATE enumeration contains constants that indicate the current state of a user session.
_IRQ_DEVICE_POLICY enumeration The IRQ_DEVICE_POLICY enumeration type indicates the policy the operating system can use to assign the interrupts from a device to different processors.
_IRQ_PRIORITY enumeration The IRQ_PRIORITY enumeration type indicates the priority the system should give to servicing a device's interrupts.
_KBUGCHECK_CALLBACK_REASON enumeration The KBUGCHECK_CALLBACK_REASON enumeration type specifies the situations in which a bug-check callback executes.
_KBUGCHECK_DUMP_IO_TYPE enumeration The KBUGCHECK_DUMP_IO_TYPE enumeration type identifies the type of a section of data within a crash dump file.
_KEY_INFORMATION_CLASS enumeration The KEY_INFORMATION_CLASS enumeration type represents the type of information to supply about a registry key.
_KEY_SET_INFORMATION_CLASS enumeration The KEY_SET_INFORMATION_CLASS enumeration type represents the type of information to set for a registry key.
_KEY_VALUE_INFORMATION_CLASS enumeration The KEY_VALUE_INFORMATION_CLASS enumeration type specifies the type of information to supply about the value of a registry key.
_KINTERRUPT_MODE enumeration The KINTERRUPT_MODE enumeration type indicates whether an interrupt is level-triggered or edge-triggered.
_KINTERRUPT_POLARITY enumeration The KINTERRUPT_POLARITY enumeration indicates how a device signals an interrupt request on an interrupt line.
_KTMOBJECT_TYPE enumeration The KTMOBJECT_TYPE enumeration identifies the types of objects that KTM supports.
_MEMORY_CACHING_TYPE enumeration The MEMORY_CACHING_TYPE enumeration type specifies the permitted caching behavior when allocating or mapping memory.
_MONITOR_DISPLAY_STATE enumeration Indicates the power state of the monitor being displayed on.
_MONITOR_DISPLAY_STATE enumeration Indicates the power state of the monitor being displayed on.
_PEP_ACPI_OBJECT_TYPE enumeration The PEP_ACPI_OBJECT_TYPE enumeration indicates the type of ACPI object.
_PEP_ACPI_OBJECT_TYPE enumeration The PEP_ACPI_OBJECT_TYPE enumeration indicates the type of ACPI object.
_PEP_ACPI_RESOURCE_TYPE enumeration 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 enumeration 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 enumeration The PEP_DEVICE_ACCEPTANCE_TYPE enumeration indicates whether a PEP accepts ownership of a device.
_PEP_DEVICE_ACCEPTANCE_TYPE enumeration The PEP_DEVICE_ACCEPTANCE_TYPE enumeration indicates whether a PEP accepts ownership of a device.
_PEP_PERF_STATE_TYPE enumeration 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 enumeration 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 enumeration 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 enumeration The PEP_PERF_STATE_UNIT enumeration indicates the measurement units in which the performance state (P-state) of a component is specified.
_PEP_WORK_TYPE enumeration The PEP_WORK_TYPE enumeration describes the type of work that the platform extension plug-in (PEP) is requesting.
_PEP_WORK_TYPE enumeration The PEP_WORK_TYPE enumeration describes the type of work that the platform extension plug-in (PEP) is requesting.
_PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE enumeration 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.
_POOL_TYPE enumeration The POOL_TYPE enumeration type specifies the type of system memory to allocate.
_POWER_REQUEST_TYPE enumeration The POWER_REQUEST_TYPE enumeration indicates the power request type.
_POWER_REQUEST_TYPE enumeration The POWER_REQUEST_TYPE enumeration indicates the power request type.
_POWER_STATE_TYPE enumeration 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 enumeration The POWER_STATE_TYPE enumeration type indicates that a power state value is a system power state or a device power state.
_PO_FX_PERF_STATE_TYPE enumeration 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 enumeration 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.
_PSCREATEPROCESSNOTIFYTYPE enumeration Indicates the type of process notification. This enumeration is used in PsSetCreateProcessNotifyRoutineEx2 to register callback notifications.
_PSCREATETHREADNOTIFYTYPE enumeration 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 enumeration 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 enumeration The RESOURCEMANAGER_INFORMATION_CLASS enumeration identifies the type of information that the ZwQueryInformationResourceManager routine can retrieve for a resource manager object.
_SUBSYSTEM_INFORMATION_TYPE enumeration Indicates the type of subsystem for a process or thread. This enumeration is used in NtQueryInformationProcess and NtQueryInformationThread calls.
_SYSTEM_POWER_STATE enumeration The SYSTEM_POWER_STATE enumeration type is used to indicate a system power state.
_SYSTEM_POWER_STATE enumeration The SYSTEM_POWER_STATE enumeration type is used to indicate a system power state.
_TRACE_INFORMATION_CLASS enumeration The TRACE_INFORMATION_CLASS enumeration type is used to indicate types of information associated with a WMI event tracing session.
_TRANSACTIONMANAGER_INFORMATION_CLASS enumeration The TRANSACTIONMANAGER_INFORMATION_CLASS enumeration specifies the type of information that the ZwQueryInformationTransactionManager routine can retrieve for a transaction manager object.
_TRANSACTION_INFORMATION_CLASS enumeration 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 enumeration The TRANSACTION_OUTCOME enumeration defines the outcomes (results) that KTM can assign to a transaction.
_TRANSACTION_STATE enumeration The TRANSACTION_STATE enumeration defines the states that KTM can assign to a transaction.
_WORK_QUEUE_TYPE enumeration The WORK_QUEUE_TYPE enumeration type indicates the type of system worker thread that handles a work item.

I/O control codes

Title Description
IOCTL_SYSENV_ENUM_VARIABLES IOCTL Returns information about system environment variables using SysEnv device.
IOCTL_SYSENV_GET_VARIABLE IOCTL Gets the value of the specified system environment variables using SysEnv device.
IOCTL_SYSENV_QUERY_VARIABLE_INFO IOCTL Returns information about system environment variables using SysEnv device.
IOCTL_SYSENV_SET_VARIABLE IOCTL Sets the value of the specified system environment variables using SysEnv device.

Macros

Title Description
ExFreePool macro The ExFreePool routine deallocates a block of pool memory.
ExInterlockedAddLargeStatistic macro The ExInterlockedAddLargeStatistic routine performs an interlocked addition of a ULONG increment value to a LARGE_INTEGER variable.
ExInterlockedCompareExchange64 macro The ExInterlockedCompareExchange64 routine compares one integer variable to another and, if they are equal, sets the first variable to a caller-supplied value.
ExInterlockedFlushSList macro The ExInterlockedFlushSList routine atomically removes all entries from a sequenced singly linked list.
ExInterlockedPopEntrySList macro The ExInterlockedPopEntrySList routine atomically removes the first entry from a sequenced singly linked list.
ExInterlockedPushEntrySList macro The ExInterlockedPushEntrySList routine atomically inserts an entry at the beginning of a sequenced singly linked list.
FIELD_OFFSET macro The FIELD_OFFSET macro returns the byte offset of a named field in a known structure type.
IoAcquireRemoveLock macro 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 macro The IoAdjustPagingPathCount routine increments or decrements a caller-supplied page-file counter as an atomic operation.
IoAssignArcName macro 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.
IoCallDriver macro The IoCallDriver routine sends an IRP to the driver associated with a specified device object.
IoCompleteRequest macro 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.
IoDeassignArcName macro The IoDeassignArcName routine removes a symbolic link between the ARC name for a device and the named device object.
IoGetFunctionCodeFromCtlCode macro The IoGetFunctionCodeFromCtlCode macro returns the value of the function code contained in an I/O control code.
IoInitializeRemoveLock macro The IoInitializeRemoveLock routine initializes a remove lock for a device object.
IoIsErrorUserInduced macro The IoIsErrorUserInduced routine determines whether an I/O error encountered while processing a request to a removable-media device was caused by the user.
IoReleaseRemoveLock macro The IoReleaseRemoveLock routine releases a remove lock acquired with a previous call to IoAcquireRemoveLock.
IoReleaseRemoveLockAndWait macro 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.
IoSizeOfIrp macro The IoSizeOfIrp routine determines the size in bytes for an IRP, given the number of stack locations in the IRP.
KeAcquireSpinLock macro 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 macro The KeAcquireSpinLockAtDpcLevel routine acquires a spin lock when the caller is already running at IRQL >= DISPATCH_LEVEL.
KeLowerIrql macro The KeLowerIrql routine restores the IRQL on the current processor to its original value.
KeQuerySystemTime macro The KeQuerySystemTime routine obtains the current system time.
KeQueryTickCount macro The KeQueryTickCount routine maintains a count of the interval timer interrupts that have occurred since the system was booted.
KeQueryTickCount macro The KeQueryTickCount routine maintains a count of the interval timer interrupts that have occurred since the system was booted.
KeRaiseIrql macro 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.
KeReleaseSpinLock macro The KeReleaseSpinLock routine releases a spin lock and restores the original IRQL at which the caller was running.
KeReleaseSpinLockFromDpcLevel macro The KeReleaseSpinLockFromDpcLevel routine releases an executive spin lock without changing the IRQL.
MmGetSystemAddressForMdl macro The MmGetSystemAddressForMdl routine is obsolete for Windows 2000 and later versions of Windows, and for Windows Me.
MmLockPagableCodeSection macro The MmLockPagableCodeSection routine locks a section of driver code, containing a set of driver routines marked with a special compiler directive, into system space.
ObDereferenceObject macro The ObDereferenceObject routine decrements the given object's reference count and performs retention checks.
ObDereferenceObjectWithTag macro 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.
ObReferenceObject macro The ObReferenceObject routine increments the reference count to the given object.
ObReferenceObjectWithTag macro 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.
READ_REGISTER_UCHAR macro The READ_REGISTER_UCHAR routine reads a byte from the specified register address.
READ_REGISTER_ULONG macro The READ_REGISTER_ULONG routine reads a ULONG value from the specified register address.
READ_REGISTER_USHORT macro The READ_REGISTER_USHORT routine reads a USHORT value from the specified register address.
RtlAnsiStringToUnicodeSize macro The RtlAnsiStringToUnicodeSize routine returns the number of bytes required to hold an ANSI string converted into a Unicode string.
RtlCheckBit macro The RtlCheckBit routine determines whether a particular bit in a given bitmap variable is clear or set.
RtlCopyMemory macro The RtlCopyMemory routine copies the contents of a source memory block to a destination memory block.
RtlEqualMemory macro The RtlEqualMemory routine compares two blocks of memory to determine whether the specified number of bytes are identical.
RtlFillMemory macro The RtlFillMemory routine fills a block of memory with the specified fill value.
RtlIntPtrToUnicodeString macro The RtlIntPtrToUnicodeString routine converts a specified ULONG_PTR value to a Unicode string that represents the value in a specified base.
RtlMoveMemory macro The RtlMoveMemory routine copies the contents of a source memory block to a destination memory block, and supports overlapping source and destination memory blocks.
RtlUlongByteSwap macro The RtlUlongByteSwap routine reverses the ordering of the four bytes in a 32-bit unsigned integer value.
RtlUlonglongByteSwap macro The RtlUlonglongByteSwap routine reverses the ordering of the eight bytes in a 64-bit unsigned integer value.
RtlUnicodeStringToAnsiSize macro The RtlUnicodeStringToAnsiSize routine returns the number of bytes required for a null-terminated ANSI string that is equivalent to a specified Unicode string.
RtlUshortByteSwap macro The RtlUshortByteSwap routine reverses the ordering of the two bytes in a 16-bit unsigned integer value.
RtlZeroMemory macro The RtlZeroMemory routine fills a block of memory with zeros, given a pointer to the block and the length, in bytes, to be filled.
WRITE_REGISTER_UCHAR macro The WRITE_REGISTER_UCHAR routine writes a byte to the specified address.
WRITE_REGISTER_ULONG macro The WRITE_REGISTER_ULONG routine writes a ULONG value to the specified address.
WRITE_REGISTER_USHORT macro The WRITE_REGISTER_USHORT routine writes a USHORT value to the specified address.

IOCTLs

Title Description
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 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

Title Description
_BUS_DATA_TYPE The BUS_DATA_TYPE enumeration indicates the type of bus configuration space.
_INTERFACE_TYPE The INTERFACE_TYPE enumeration indicates the bus type.
_IRQ_DEVICE_POLICY The IRQ_DEVICE_POLICY enumeration type indicates the policy the operating system can use to assign the interrupts from a device to different processors.
_IRQ_PRIORITY The IRQ_PRIORITY enumeration type indicates the priority the system should give to servicing a device's interrupts.
_KINTERRUPT_MODE The KINTERRUPT_MODE enumeration type indicates whether an interrupt is level-triggered or edge-triggered.
_KINTERRUPT_POLARITY The KINTERRUPT_POLARITY enumeration indicates how a device signals an interrupt request on an interrupt line.
_MEMORY_CACHING_TYPE The MEMORY_CACHING_TYPE enumeration type specifies the permitted caching behavior when allocating or mapping memory.
_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.
_BUS_DATA_TYPE The BUS_DATA_TYPE enumeration indicates the type of bus configuration space.
_HARDWARE_COUNTER_TYPE The HARDWARE_COUNTER_TYPE enumeration specifies the type of a hardware counter.
_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.
_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.
_SUBSYSTEM_INFORMATION_TYPE Indicates the type of subsystem for a process or thread. This enumeration is used in NtQueryInformationProcess and NtQueryInformationThread calls.
_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).
_MEMORY_INFORMATION_CLASS Defines classes of memory information that can be retrieved by using the ZwQueryVirtualMemory function.
_DEVICE_POWER_STATE The DEVICE_POWER_STATE enumeration type indicates a device power state.
_MONITOR_DISPLAY_STATE Indicates the power state of the monitor being displayed on.
_POWER_REQUEST_TYPE 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.
_SYSTEM_POWER_STATE The SYSTEM_POWER_STATE enumeration type is used to indicate a system power state.
POWER_INFORMATION_LEVEL Indicates power level information.
_GPIO_PIN_CONFIG_TYPE The GPIO_PIN_CONFIG_TYPE enumeration describes a connection IO resource.
_GPIO_PIN_IORESTRICTION_TYPE The GPIO_PIN_IORESTRICTION_TYPE enumeration describes the functions that a GPIO pin is limited to performing.
_PEP_ACPI_OBJECT_TYPE The PEP_ACPI_OBJECT_TYPE enumeration indicates the type of ACPI object.
_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 The PEP_DEVICE_ACCEPTANCE_TYPE enumeration indicates whether a PEP accepts ownership of a device.
_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 The PEP_PERF_STATE_UNIT enumeration indicates the measurement units in which the performance state (P-state) of a component is specified.
_PEP_WORK_TYPE The PEP_WORK_TYPE enumeration describes the type of work that the platform extension plug-in (PEP) is requesting.
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.
_GPIO_PIN_CONFIG_TYPE The GPIO_PIN_CONFIG_TYPE enumeration describes a connection IO resource.
_GPIO_PIN_IORESTRICTION_TYPE The GPIO_PIN_IORESTRICTION_TYPE enumeration describes the functions that a GPIO pin is limited to performing.
_PEP_ACPI_OBJECT_TYPE The PEP_ACPI_OBJECT_TYPE enumeration indicates the type of ACPI object.
_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 The PEP_DEVICE_ACCEPTANCE_TYPE enumeration indicates whether a PEP accepts ownership of a device.
_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 The PEP_PERF_STATE_UNIT enumeration indicates the measurement units in which the performance state (P-state) of a component is specified.
_PEP_WORK_TYPE The PEP_WORK_TYPE enumeration describes the type of work that the platform extension plug-in (PEP) is requesting.
_BOUND_CALLBACK_STATUS The BOUND_CALLBACK_STATUS enumeration indicates how a user-mode bounds exception was processed by the BoundCallback function.
_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_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_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_WAKE_DEPTH The DEVICE_WAKE_DEPTH enumeration specifies the deepest device power state from which a device can trigger a wake signal.
_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.
_IMAGE_POLICY_ENTRY_TYPE This enumeration is not supported.
_IMAGE_POLICY_ID This enumeration is not supported.
_INTERFACE_TYPE The INTERFACE_TYPE enumeration indicates the bus type.
_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_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_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.
_IRQ_DEVICE_POLICY The IRQ_DEVICE_POLICY enumeration type indicates the policy the operating system can use to assign the interrupts from a device to different processors.
_IRQ_PRIORITY The IRQ_PRIORITY enumeration 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.
_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 type indicates whether an interrupt is level-triggered or edge-triggered.
_KINTERRUPT_POLARITY The KINTERRUPT_POLARITY enumeration indicates 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.
_MEMORY_CACHING_TYPE The MEMORY_CACHING_TYPE enumeration type specifies the permitted caching behavior when allocating or mapping memory.
_MONITOR_DISPLAY_STATE Indicates the power state of the monitor being displayed on.
_PO_FX_PERF_STATE_TYPE The PO_FX_PERF_STATE_TYPE enumeration contains values that describe the type of performance states in a PO_FX_COMPONENT_PERF_SET.
_PO_FX_PERF_STATE_UNIT The PO_FX_PERF_STATE_UNIT enumeration contains values that describe the type of unit that is controlled by the performance states in a PO_FX_COMPONENT_PERF_SET.
_POOL_TYPE The POOL_TYPE enumeration type specifies the type of system memory to allocate.
_POWER_REQUEST_TYPE 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.
_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.
_SYSTEM_POWER_STATE The SYSTEM_POWER_STATE enumeration type is used to indicate a system power state.
_TRACE_INFORMATION_CLASS The TRACE_INFORMATION_CLASS enumeration type is used to indicate types of information associated with a WMI event tracing session.
_TRANSACTION_INFORMATION_CLASS The TRANSACTION_INFORMATION_CLASS enumeration specifies the type of information that ZwSetInformationTransaction can set and ZwQueryInformationTransaction can retrieve for a transaction manager object.
_TRANSACTION_OUTCOME The TRANSACTION_OUTCOME enumeration defines the outcomes (results) that KTM can assign to a transaction.
_TRANSACTION_STATE The TRANSACTION_STATE enumeration defines the states that KTM can assign to a transaction.
_TRANSACTIONMANAGER_INFORMATION_CLASS The TRANSACTIONMANAGER_INFORMATION_CLASS enumeration specifies the type of information that the ZwQueryInformationTransactionManager routine can retrieve for a transaction manager object.
_WORK_QUEUE_TYPE The WORK_QUEUE_TYPE enumeration type indicates the type of system worker thread that handles a work item.
DEVICE_REGISTRY_PROPERTY The DEVICE_REGISTRY_PROPERTY enumeration identifies device properties that are stored in the registry.
DMA_COMPLETION_STATUS The DMA_COMPLETION_STATUS enumeration describes the completion status of a DMA transfer.
POWER_INFORMATION_LEVEL Indicates power level information.
_INTERFACE_TYPE The INTERFACE_TYPE enumeration indicates the bus type.
_KINTERRUPT_MODE The KINTERRUPT_MODE enumeration type indicates whether an interrupt is level-triggered or edge-triggered.
_MEMORY_CACHING_TYPE The MEMORY_CACHING_TYPE enumeration type specifies the permitted caching behavior when allocating or mapping memory.
_PO_FX_PERF_STATE_TYPE The PO_FX_PERF_STATE_TYPE enumeration contains values that describe the type of performance states in a PO_FX_COMPONENT_PERF_SET.
_PO_FX_PERF_STATE_UNIT The PO_FX_PERF_STATE_UNIT enumeration contains values that describe the type of unit that is controlled by the performance states in a PO_FX_COMPONENT_PERF_SET.
_POOL_TYPE The POOL_TYPE enumeration type specifies the type of system memory to allocate.
DEVICE_REGISTRY_PROPERTY The DEVICE_REGISTRY_PROPERTY enumeration identifies device properties that are stored in the registry.

Functions

Title Description
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.
READ_PORT_UCHAR The READ_PORT_UCHAR routine reads a byte from the specified port address.
READ_PORT_ULONG The READ_PORT_ULONG routine reads a ULONG value from the specified port address.
READ_PORT_USHORT The READ_PORT_USHORT routine reads a USHORT value from the specified port address.
READ_REGISTER_UCHAR The READ_REGISTER_UCHAR routine reads a byte from the specified register address.
READ_REGISTER_UCHAR The READ_REGISTER_UCHAR routine reads a byte from the specified register address.
READ_REGISTER_ULONG The READ_REGISTER_ULONG routine reads a ULONG value from the specified register address.
READ_REGISTER_ULONG The READ_REGISTER_ULONG routine reads a ULONG value from the specified register address.
READ_REGISTER_USHORT The READ_REGISTER_USHORT routine reads a USHORT value from the specified register address.
READ_REGISTER_USHORT The READ_REGISTER_USHORT routine reads a USHORT value from the specified register address.
WRITE_PORT_UCHAR The WRITE_PORT_UCHAR routine writes a byte to the specified port address.
WRITE_PORT_ULONG The WRITE_PORT_ULONG routine writes a ULONG value to the specified port address.
WRITE_PORT_USHORT The WRITE_PORT_USHORT routine writes a USHORT value to the specified port address.
WRITE_REGISTER_UCHAR The WRITE_REGISTER_UCHAR routine writes a byte to the specified address.
WRITE_REGISTER_UCHAR The WRITE_REGISTER_UCHAR routine writes a byte to the specified address.
WRITE_REGISTER_ULONG The WRITE_REGISTER_ULONG routine writes a ULONG value to the specified address.
WRITE_REGISTER_ULONG The WRITE_REGISTER_ULONG routine writes a ULONG value to the specified address.
WRITE_REGISTER_USHORT The WRITE_REGISTER_USHORT routine writes a USHORT value to the specified address.
WRITE_REGISTER_USHORT The WRITE_REGISTER_USHORT routine writes a USHORT value to the specified address.
WdmlibIoConnectInterruptEx The WdmlibIoConnectInterruptEx function registers an interrupt-handling routine for a device's interrupts.
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.
FIELD_OFFSET The FIELD_OFFSET macro returns the byte offset of a named field in a known structure type.
InterlockedAnd The InterlockedAnd macro atomically computes a bitwise AND operation.
InterlockedCompareExchange The InterlockedCompareExchange routine performs an atomic operation that compares the input value pointed to by Destination with the value of Comparand.
InterlockedCompareExchangePointer The InterlockedCompareExchangePointer routine performs an atomic operation that compares the input pointer value pointed to by Destination with the pointer value Comparand.
InterlockedDecrement The InterlockedDecrement routine decrements a caller-supplied variable of type LONG as an atomic operation.
InterlockedExchange The InterlockedExchange routine sets an integer variable to a given value as an atomic operation.
InterlockedExchangeAdd The InterlockedExchangeAdd routine adds a value to a given integer as an atomic operation and returns the original value of the given integer.
InterlockedExchangePointer The InterlockedExchangePointer routine performs an atomic operation that sets a pointer to a new value.
InterlockedIncrement The InterlockedIncrement routine increments a caller-supplied variable as an atomic operation.
InterlockedOr The InterlockedOr routine atomically computes a bitwise OR operation.
InterlockedXor The InterlockedOr routine atomically computes a bitwise exclusive OR operation.
PINTERFACE_DEREFERENCE The InterfaceDereference routine decrements the reference count on a driver-defined interface.
PINTERFACE_REFERENCE The InterfaceReference routine increments the reference count on a driver-defined interface.
READ_PORT_BUFFER_UCHAR The READ_PORT_BUFFER_UCHAR routine reads a number of bytes from the specified port address into a buffer.
READ_PORT_BUFFER_ULONG The READ_PORT_BUFFER_ULONG routine reads a number of ULONG values from the specified port address into a buffer.
READ_PORT_BUFFER_USHORT The READ_PORT_BUFFER_USHORT routine reads a number of USHORT values from the specified port address into a buffer.
READ_PORT_UCHAR The READ_PORT_UCHAR routine reads a byte from the specified port address.
READ_PORT_ULONG The READ_PORT_ULONG routine reads a ULONG value from the specified port address.
READ_PORT_USHORT The READ_PORT_USHORT routine reads a USHORT value from the specified port address.
READ_REGISTER_BUFFER_UCHAR The READ_REGISTER_BUFFER_UCHAR routine reads a number of bytes from the specified register address into a buffer.
READ_REGISTER_BUFFER_ULONG The READ_REGISTER_BUFFER_ULONG routine reads a number of ULONG values from the specified register address into a buffer.
READ_REGISTER_BUFFER_USHORT The READ_REGISTER_BUFFER_USHORT routine reads a number of USHORT values from the specified register address into a buffer.
READ_REGISTER_UCHAR The READ_REGISTER_UCHAR routine reads a byte from the specified register address.
READ_REGISTER_ULONG The READ_REGISTER_ULONG routine reads a ULONG value from the specified register address.
READ_REGISTER_USHORT The READ_REGISTER_USHORT routine reads a USHORT value from the specified register address.
WRITE_PORT_BUFFER_UCHAR The WRITE_PORT_BUFFER_UCHAR routine writes a number of bytes from a buffer to the specified port.
WRITE_PORT_BUFFER_ULONG The WRITE_PORT_BUFFER_ULONG routine writes a number of ULONG values from a buffer to the specified port address.
WRITE_PORT_BUFFER_USHORT The WRITE_PORT_BUFFER_USHORT routine writes a number of USHORT values from a buffer to the specified port address.
WRITE_PORT_UCHAR The WRITE_PORT_UCHAR routine writes a byte to the specified port address.
WRITE_PORT_ULONG The WRITE_PORT_ULONG routine writes a ULONG value to the specified port address.
WRITE_PORT_USHORT The WRITE_PORT_USHORT routine writes a USHORT value to the specified port address.
WRITE_REGISTER_BUFFER_UCHAR The WRITE_REGISTER_BUFFER_UCHAR routine writes a number of bytes from a buffer to the specified register.
WRITE_REGISTER_BUFFER_ULONG The WRITE_REGISTER_BUFFER_ULONG routine writes a number of ULONG values from a buffer to the specified register.
WRITE_REGISTER_BUFFER_USHORT The WRITE_REGISTER_BUFFER_USHORT routine writes a number of USHORT values from a buffer to the specified register.
WRITE_REGISTER_UCHAR The WRITE_REGISTER_UCHAR routine writes a byte to the specified address.
WRITE_REGISTER_ULONG The WRITE_REGISTER_ULONG routine writes a ULONG value to the specified address.
WRITE_REGISTER_USHORT The WRITE_REGISTER_USHORT routine writes a USHORT value to the specified address.
DRIVER_REINITIALIZE The Reinitialize routine continues driver and device initialization after the driver's DriverEntry routine returns.
ExFreePool The ExFreePool routine deallocates a block of pool memory.
EXPAND_STACK_CALLOUT The ExpandedStackCall routine executes with a guaranteed stack size.
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.
ExUuidCreate The ExUuidCreate routine initializes a UUID (GUID) structure to a newly generated value.
HalAllocateHardwareCounters The HalAllocateHardwareCounters routine allocates a set of hardware performance counters.
HalExamineMBR The HalExamineMBR routine reads the master boot record (MBR) of a disk and returns data from the MBR if the MBR is of the type specified by the caller.
HalFreeHardwareCounters The HalFreeHardwareCounters routine frees a set of hardware performance counters that was acquired in a previous call to HalAllocateHardwareCounters routine.
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.
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.
IoClearActivityIdThread The IoClearActivityIdThread routine clears the activity ID of the current thread.
IoCreateController The IoCreateController routine allocates memory for and initializes a controller object with a controller extension of a driver-determined size.
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 an 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.
IoFreeController The IoFreeController routine releases a previously allocated controller object when the driver has completed an I/O request.
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.
IoGetConfigurationInformation The IoGetConfigurationInformation routine returns a pointer to the I/O manager's global configuration information structure, which contains the current values for how many physical disk, floppy, CD-ROM, tape, SCSI HBA, serial, and parallel devices have device objects created to represent them by drivers as they are loaded.
IoGetFileObjectGenericMapping The IoGetFileObjectGenericMapping routine returns information about the mapping between each generic access right and the set of specific access rights for file objects.
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.
IoGetPagingIoPriority The IoGetPagingIoPriority routine indicates the priority level of a paging I/O request.
IoIncrementKeepAliveCount The IoIncrementKeepAliveCount routine increments a reference count associated with an Windows app process on a specific device.
IoIsValidIrpStatus The IoIsValidIrpStatus routine validates the specified NTSTATUS status code value.
IoMakeAssociatedIrp This routine is reserved for use by file systems and file system filter drivers.
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.
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.
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.
IoReportDetectedDevice The IoReportDetectedDevice routine reports a non-PnP device to the PnP manager.
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.
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.
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.
IoSetMasterIrpStatus The IoSetMasterIrpStatus routine conditionally replaces the Status value in an IRP with the specified NTSTATUS value.
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.
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.
IoUnregisterBootDriverCallback The IoUnRegisterBootDriverCallback routine unregisters a previously registered BOOT_DRIVER_CALLBACK_FUNCTION routine.
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.
KeAreApcsDisabled The KeAreApcsDisabled routine returns whether the calling thread is within a critical region or a guarded region, which disables normal kernel APC delivery.
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.
KeEnterCriticalRegion The KeEnterCriticalRegion routine temporarily disables the execution of normal kernel APCs, but does not prevent special kernel APCs from running.
KeEnterGuardedRegion The KeEnterGuardedRegion routine 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.
KeGetCurrentNodeNumber The KeGetCurrentNodeNumber routine gets 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 routine gets the processor number of the logical processor that the caller is running on.
KeInitializeCrashDumpHeader The KeInitializeCrashDumpHeader routine supplies the header information the system requires for a crash dump file.
KeInvalidateAllCaches The KeInvalidateAllCaches routine flushes all processor caches.
KeLeaveCriticalRegion 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.
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.
KeQueryActiveProcessorCount 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.
KeQueryActiveProcessors The KeQueryActiveProcessors routine returns a bitmask of the currently active processors.
KeQueryGroupAffinity 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.
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.
KeQueryMaximumProcessorCount 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.
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.
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.
KeQueryTickCount The KeQueryTickCount routine maintains a count of the interval timer interrupts that have occurred since the system was booted.
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.
KeSetBasePriorityThread The KeSetBasePriorityThread routine sets the run-time priority, relative to the current process, for a given thread.
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.
KeSetTargetProcessorDpc The KeSetTargetProcessorDpc routine specifies the processor that a DPC routine will be run on.
MmAllocateContiguousMemory The MmAllocateContiguousMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateContiguousMemorySpecifyCache 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.
MmAllocateContiguousNodeMemory The MmAllocateContiguousNodeMemory routine allocates a range of contiguous, nonpaged physical memory and maps it to the system address space.
MmAllocateNonCachedMemory The MmAllocateNonCachedMemory routine allocates a virtual address range of noncached and cache-aligned memory.
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.
MmFreeContiguousMemorySpecifyCache The MmFreeContiguousMemorySpecifyCache routine frees a buffer that was allocated by an MmAllocateContiguousMemorySpecifyCacheXxx routine.
MmFreeNonCachedMemory The MmFreeNonCachedMemory routine releases a range of noncached memory that was allocated by the MmAllocateNonCachedMemory routine.
MmGetPhysicalAddress The MmGetPhysicalAddress routine returns the physical address corresponding to a valid nonpaged virtual address.
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.
MmIsThisAnNtAsSystem The MmIsThisAnNtAsSystem routine is obsolete for Windows XP and later versions of Windows. Use RtlGetVersion or RtlVerifyVersionInfo instead.
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.
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.
MmUnsecureVirtualMemory The MmUnsecureVirtualMemory routine unsecures a memory address range secured by the MmSecureVirtualMemory routine.
NtOpenProcess The ZwOpenProcess routine opens a handle to a process object and sets the access rights to this 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.
PGET_LOCATION_STRING The PnpGetLocationString routine provides the device-specific part of the device's SPDRP_LOCATION_PATHS property.
pHalExamineMBR The HalExamineMBR routine reads the master boot record (MBR) of a disk and returns data from the MBR if the MBR is of the type specified by the caller.
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.
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.
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.
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.
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.
PsGetProcessId The PsGetProcessId routine returns the process identifier (process ID) that is associated with a specified process.
PsGetServerSiloActiveConsoleId Gets the active console for the current server silo context for the supplied thread.
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.
PsInsertPermanentSiloContext This routine inserts an object in an empty slot in a Silo.
PsInsertSiloContext 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.
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.
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.
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).
PsStartSiloMonitor This routine tries to start the server silo monitor.
PsTerminateServerSilo This routine terminates the specified silo.
PsUnregisterSiloMonitor This routine unregisters a server silo monitor.
RTL_RUN_ONCE_INIT_FN The RunOnceInitialization routine performs a one-time initialization operation.
RtlCharToInteger The RtlCharToInteger routine converts a single-byte character string to an integer value in the specified base.
RtlCompareString The RtlCompareString routine compares two counted strings.
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.
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.
RtlCopyString The RtlCopyString routine copies a source string to a destination string.
RtlEqualString The RtlEqualString routine compares two counted 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.
RtlGetEnabledExtendedFeatures The RtlGetEnabledExtendedFeatures routine returns a mask of extended processor features that are enabled by the system.
RtlIncrementCorrelationVector Increments the specified correlation vector. For a correlation vector of the form X.i, the incremented value is be X.(i+1).
RtlInitializeCorrelationVector Initializes the specified correlation vector with the supplied GUID.
RtlIsStateSeparationEnabled Checks if the SKU for the current context supports multiple sessions.
RtlMapGenericMask The RtlMapGenericMask routine determines the nongeneric access rights specified by an ACCESS_MASK.
RtlPrefixUnicodeString The RtlPrefixUnicodeString routine compares two Unicode strings to determine whether one string is a prefix of the other.
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.
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.
RtlValidateCorrelationVector Validates the specified correlation vector to check whether it conforms to the Correlation Vector Specification (v2).
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.
SeSinglePrivilegeCheck The SeSinglePrivilegeCheck routine checks for the passed privilege value in the context of the current thread.
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.
ZwAllocateLocallyUniqueId The ZwAllocateLocallyUniqueId routine allocates a locally unique identifier (LUID).
ZwDeviceIoControlFile The ZwDeviceIoControlFile routine sends a control code directly to a specified device driver, causing the corresponding driver to perform the specified operation.
ZwOpenProcess The ZwOpenProcess routine opens a handle to a process object and sets the access rights to this object.
ZwPowerInformation The ZwPowerInformation routine sets or retrieves system power information.
ZwQueryVolumeInformationFile The ZwQueryVolumeInformationFile routine retrieves information about the volume associated with a given file, directory, storage device, or volume.
ZwSetInformationThread The ZwSetInformationThread routine sets the priority of a thread.
ZwTerminateProcess The ZwTerminateProcess routine terminates a process and all of its threads.
IoGetAttachedDeviceReference The IoGetAttachedDeviceReference routine returns a pointer to the highest level device object in a driver stack and increments the reference count on that object.
IoGetConfigurationInformation The IoGetConfigurationInformation routine returns a pointer to the I/O manager's global configuration information structure, which contains the current values for how many physical disk, floppy, CD-ROM, tape, SCSI HBA, serial, and parallel devices have device objects created to represent them by drivers as they are loaded.
IoSetStartIoAttributes The IoSetStartIoAttributes routine sets attributes for the driver's StartIo routine.
IoSizeOfIrp The IoSizeOfIrp routine determines the size in bytes for an IRP, given the number of stack locations in the IRP.
IoStartNextPacket The IoStartNextPacket routine dequeues the next IRP, if any, from the given device object's associated device queue and calls the driver's StartIo routine.
IoStartNextPacketByKey The IoStartNextPacketByKey routine dequeues the next I/O request packet from the specified device object's associated device queue according to a specified sort-key value and calls the driver's StartIo routine with that IRP.
IoStartPacket The IoStartPacket routine calls the driver's StartIo routine with the given IRP or inserts the IRP into the device queue associated with the given device object if the device is already busy.
IoStartTimer The IoStartTimer routine enables the timer associated with a given device object so the driver-supplied IoTimer routine is called once per second.
IoStopTimer The IoStopTimer routine disables the timer for a specified device object so the driver-supplied IoTimer routine is not called.
IoWriteErrorLogEntry The IoWriteErrorLogEntry routine queues a given error log packet to the system error logging thread.
KeGetProcessorIndexFromNumber The KeGetProcessorIndexFromNumber routine converts a group number and a group-relative processor number to a systemwide processor index.
KeGetProcessorNumberFromIndex The KeGetProcessorNumberFromIndex routine converts a systemwide processor index to a group number and a group-relative processor number.
KeQueryPerformanceCounter The KeQueryPerformanceCounter routine retrieves the current value and frequency of the performance counter.Use KeQueryPerformanceCounter to acquire high resolution (<1us) time stamps for time interval measurements.
KeSetKernelStackSwapEnable The KeSetKernelStackSwapEnable routine enables and disables swapping of the caller's stack to disk.
KeStallExecutionProcessor The KeStallExecutionProcessor routine stalls the caller on the current processor for a specified time interval.
NtAllocateVirtualMemory The ZwAllocateVirtualMemory routine reserves, commits, or both, a region of pages within the user-mode virtual address space of a specified process.
NtClose The ZwClose routine closes an object handle.
NtCreateFile The ZwCreateFile routine creates a new file or opens an existing file.
NtCreateSection The ZwCreateSection routine creates a section object.
NtDeviceIoControlFile The ZwDeviceIoControlFile routine sends a control code directly to a specified device driver, causing the corresponding driver to perform the specified operation.
NtDuplicateToken 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.
NtFlushBuffersFileEx 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.
NtFreeVirtualMemory The ZwFreeVirtualMemory routine releases, decommits, or both, a region of pages within the virtual address space of a specified process.
NtFsControlFile 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.
NtLockFile The NtLockFile routine requests a byte-range lock for the specified file.
NtOpenFile The ZwOpenFile routine opens an existing file, directory, device, or volume.
NtOpenProcessTokenEx The ZwOpenProcessTokenEx routine opens the access token associated with a process.
NtOpenThreadTokenEx The ZwOpenThreadTokenEx routine opens the access token associated with a thread.
NtQueryDirectoryFile The ZwQueryDirectoryFile routine returns various kinds of information about files in the directory specified by a given file handle.
NtQueryInformationFile The ZwQueryInformationFile routine returns various kinds of information about a file object.
NtQueryInformationToken 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.
NtQueryObject The ZwQueryObject routine provides information about a supplied object.
NtQueryQuotaInformationFile The ZwQueryQuotaInformationFile routine retrieves quota entries associated with the volume specified by the FileHandle parameter.
NtQuerySecurityObject The ZwQuerySecurityObject routine retrieves a copy of an object's security descriptor.
NtQueryVirtualMemory The ZwQueryVirtualMemory routine determines the state, protection, and type of a region of pages within the virtual address space of the subject process.
NtQueryVolumeInformationFile The ZwQueryVolumeInformationFile routine retrieves information about the volume associated with a given file, directory, storage device, or volume.
NtReadFile The ZwReadFile routine reads data from an open file.
NtSetInformationFile The ZwSetInformationFile routine changes various kinds of information about a file object.
NtSetInformationThread The ZwSetInformationThread routine sets the priority of a thread.
NtSetInformationToken The ZwSetInformationToken routine modifies information in a specified token. The calling process must have appropriate access rights to set the information.
NtSetQuotaInformationFile 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.
NtSetSecurityObject The ZwSetSecurityObject routine sets an object's security state.
NtUnlockFile The ZwUnlockFile routine unlocks a byte-range lock in a file.
NtWriteFile The ZwWriteFile routine writes data to an open file.
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.
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.
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.
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.
PsGetCurrentThread The PsGetCurrentThread routine identifies the current thread.
PsIsSystemThread The PsIsSystemThread routine checks whether a given thread is a system thread.
RtlInitStringEx The RtlInitStringEx routine initializes a counted string of 8-bit characters.
RtlUnicodeToUTF8N The RtlUnicodeToUTF8N routine converts a Unicode string to a UTF-8 string.
RtlUTF8ToUnicodeN The RtlUTF8ToUnicodeN routine converts a UTF-8 string to a Unicode string.
SeFreePrivileges The SeFreePrivileges routine frees a privilege set returned by SeAccessCheck.
ZwAllocateVirtualMemory The ZwAllocateVirtualMemory routine reserves, commits, or both, a region of pages within the user-mode virtual address space of a specified process.
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.
ZwDeleteFile The ZwDeleteFile routine deletes the specified file.
ZwDeviceIoControlFile 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 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.
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.
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.
ZwLockFile The ZwLockFile routine requests a byte-range lock for the specified file.
ZwNotifyChangeKey The ZwNotifyChangeKey routine allows a driver to request notification when a registry key changes.
ZwOpenDirectoryObject The ZwOpenDirectoryObject routine opens an existing directory object.
ZwOpenProcessTokenEx The ZwOpenProcessTokenEx routine opens the access token associated with a process.
ZwOpenThreadTokenEx The ZwOpenThreadTokenEx routine opens the access token associated with a thread.
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.
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.
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.
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.
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.
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.
ZwSetVolumeInformationFile The ZwSetVolumeInformationFile routine modifies information about the volume associated with a given file, directory, storage device, or volume.
ZwUnlockFile The ZwUnlockFile routine unlocks a byte-range lock in a file.
ZwWaitForSingleObject The ZwWaitForSingleObject routine waits until the specified object attains a state of Signaled. An optional time-out can also be specified.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
RtlULongLongAdd Adds two values of type ULONGLONG.
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 Converts a value of type ULONG_PTR to a value of type UINT8.
RtlULongToUIntPtr 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.
RtlUShortAdd Adds two values of type USHORT.
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.
NtPowerInformation The ZwPowerInformation routine sets or retrieves system power information.
RtlStringCbCatA The RtlStringCbCatW and RtlStringCbCatA functions concatenate two byte-counted strings.
RtlStringCbCatExA The RtlStringCbCatExW and RtlStringCbCatExA functions concatenate two byte-counted strings.
RtlStringCbCatExW 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 The RtlStringCbCatNExW and RtlStringCbCatNExA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatNW The RtlStringCbCatNW and RtlStringCbCatNA functions concatenate two byte-counted strings while limiting the size of the appended string.
RtlStringCbCatW 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 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 The RtlStringCbCopyNExW and RtlStringCbCopyNExA functions copy a byte-counted string to a buffer while limiting the size of the copied string.
RtlStringCbCopyNW 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 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 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 The RtlStringCbPrintfExW and RtlStringCbPrintfExA functions create a byte-counted text string, with formatting that is based on supplied formatting information.
RtlStringCbPrintfW 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 The RtlStringCbVPrintfExW and RtlStringCbVPrintfExA 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.
RtlStringCchCatA The RtlStringCchCatW and RtlStringCchCatA functions concatenate two character-counted strings.
RtlStringCchCatExA The RtlStringCchCatExW and RtlStringCchCatExA functions concatenate two character-counted strings.
RtlStringCchCatExW 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 The RtlStringCchCatNExW and RtlStringCchCatNExA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatNW The RtlStringCchCatNW and RtlStringCchCatNA functions concatenate two character-counted strings while limiting the size of the appended string.
RtlStringCchCatW 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 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 The RtlStringCchCopyNExW and RtlStringCchCopyNExA functions copy a character-counted string to a buffer while limiting the size of the copied string.
RtlStringCchCopyNW 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 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 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 The RtlStringCchPrintfExW and RtlStringCchPrintfExA functions create a character-counted text string, with formatting that is based on supplied formatting information.
RtlStringCchPrintfW 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 The RtlStringCchVPrintfExW and RtlStringCchVPrintfExA 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.
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.
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.
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.
PEPCALLBACKNOTIFYACPI An AcceptAcpiNotification event callback routine handles ACPI 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 An AcceptProcessorNotification event callback routine handles processor power management (PPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKPOWERONCRASHDUMPDEVICE The PowerOnDumpDeviceCallback callback routine turns on the crash-dump device.
POFXCALLBACKCRITICALRESOURCE The TransitionCriticalResource routine changes the active/inactive state of a core system component.
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.
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.
PoFxRegisterCoreDevice The PoFxRegisterCoreDevice routine registers a new core system resource 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 The PoFxRegisterPluginEx routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PPO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK An EnumerateInterruptSource callback routine supplies a platform extension plug-in (PEP) with information about an interrupt source.
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.
PEPCALLBACKNOTIFYACPI An AcceptAcpiNotification event callback routine handles ACPI 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 An AcceptProcessorNotification event callback routine handles processor power management (PPM) notifications from the Windows power management framework (PoFx).
PEPCALLBACKPOWERONCRASHDUMPDEVICE The PowerOnDumpDeviceCallback callback routine turns on the crash-dump device.
POFXCALLBACKCRITICALRESOURCE The TransitionCriticalResource routine changes the active/inactive state of a core system component.
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.
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.
PoFxRegisterCoreDevice The PoFxRegisterCoreDevice routine registers a new core system resource 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 The PoFxRegisterPluginEx routine registers a platform extension plug-in (PEP) with the Windows power management framework (PoFx).
PPO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK An EnumerateInterruptSource callback routine supplies a platform extension plug-in (PEP) with information about an interrupt source.
DEVICE_ACTIVE_COOLING The ActiveCooling callback routine engages or disengages a device's active-cooling function.
DEVICE_PASSIVE_COOLING The PassiveCooling callback routine controls the degree to which the device must throttle its performance to meet cooling requirements.
WdmlibProcgrpInitialize The WdmlibProcgrpInitialize function initializes the Processor Group (ProcGrp) compatibility library.
PwmParsePinPath Parses a pin path under the Pulse Width Modulation (PWM) controller namespace to validate its format and extract the pin number.
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.
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.
DMA_COMPLETION_ROUTINE The DmaCompletionRoutine callback routine notifies the driver that previously requested a system DMA transfer that this transfer is complete.
DRIVER_ADD_DEVICE The AddDevice routine is responsible for creating functional device objects (FDO) or filter device objects (filter DO) for devices enumerated by the Plug and Play (PnP) manager.
DRIVER_CANCEL The Cancel routine cancels an I/O operation.
DRIVER_CONTROL This routine starts a DMA data-transfer or a data transfer operation.
DRIVER_DISPATCH The callback routine services various IRPs. For a list of function codes, see Remarks.
DRIVER_INITIALIZE DriverEntry is the first routine called after a driver is loaded, and is responsible for initializing the driver.
DRIVER_LIST_CONTROL The AdapterListControl routine starts a direct memory access (DMA) scatter/gather operation.
DRIVER_STARTIO The StartIo routine starts the I/O operation described by an IRP.
DRIVER_UNLOAD The Unload routine performs any operations that are necessary before the system unloads the driver.
EX_CALLBACK_FUNCTION A filter driver's RegistryCallback routine can monitor, block, or modify a registry operation.
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.
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.
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 of the specified type and returns a pointer to the allocated block.
ExAllocatePoolWithQuota The ExAllocatePoolWithQuota routine is obsolete, and is exported only for existing driver binaries. Use ExAllocatePoolWithQuotaTag instead.ExAllocatePoolWithQuota allocates pool memory, charging quota against the current process.
ExAllocatePoolWithQuotaTag The ExAllocatePoolWithQuotaTag routine allocates pool memory, charging the quota against the current process.
ExAllocatePoolWithTag 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.
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.
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.
ExFlushLookasideListEx The ExFlushLookasideListEx routine flushes all entries from the specified lookaside list and frees the allocated storage for each entry.
ExFreePool The ExFreePool routine deallocates a block of pool memory.
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.
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.
ExInitializeResourceLite The ExInitializeResourceLite routine initializes a resource variable.
ExInitializeRundownProtection The ExInitializeRundownProtection routine initializes run-down protection on a shared object.
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.
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.
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.
ExReleaseResourceForThreadLite The ExReleaseResourceForThreadLite routine releases the input resource of the indicated thread.
ExReleaseRundownProtection The ExReleaseRundownProtection routine releases run-down protection that the caller previously acquired by calling the ExAcquireRundownProtection routine.
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.
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.
ExRundownCompleted The ExRundownCompleted routine updates the run-down status of a shared object to indicate that the run down of the object has completed.
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).
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.
ExUnregisterCallback The ExUnregisterCallback routine removes a callback routine previously registered with a callback object from the list of routines to be called during the notification process.
ExWaitForRundownProtectionRelease The ExWaitForRundownProtectionRelease routine waits until all drivers that have already been granted run-down protection complete their accesses of the shared object.
FIELD_OFFSET The FIELD_OFFSET macro returns the byte offset of a named field in a known structure type.
FirstEntrySList The FirstEntrySList routine returns the first entry in a sequenced singly linked list.
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_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.
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 macro atomically computes a bitwise AND operation.
InterlockedCompareExchange The InterlockedCompareExchange routine performs an atomic operation that compares the input value pointed to by Destination with the value of Comparand.
InterlockedCompareExchangePointer The InterlockedCompareExchangePointer routine performs an atomic operation that compares the input pointer value pointed to by Destination with the pointer value Comparand.
InterlockedDecrement The InterlockedDecrement routine decrements a caller-supplied variable of type LONG as an atomic operation.
InterlockedExchange The InterlockedExchange routine sets an integer variable to a given value as an atomic operation.
InterlockedExchangeAdd The InterlockedExchangeAdd routine adds a value to a given integer as an atomic operation and returns the original value of the given integer.
InterlockedExchangePointer The InterlockedExchangePointer routine performs an atomic operation that sets a pointer to a new value.
InterlockedIncrement The InterlockedIncrement routine increments a caller-supplied variable as an atomic operation.
InterlockedOr The InterlockedOr routine atomically computes a bitwise OR operation.
InterlockedXor The InterlockedOr routine atomically computes a bitwise exclusive OR operation.
IO_COMPLETION_ROUTINE The IoCompletion routine completes the processing of I/O operations.