Edit

Share via


IoGetDriverProxyFeatures function (wdm.h)

The IoGetDriverProxyFeatures function gets the DriverProxy feature flags for the current system and the specified driver.

This function allows drivers to determine whether DriverProxy functionality is available and enabled for their specific driver instance. DriverProxy enables hot-swappable driver functionality by allowing drivers to register endpoint functions that can be replaced at runtime without unloading the driver.

Syntax

VOID IoGetDriverProxyFeatures(
  PDRIVER_OBJECT              DriverObject,
  PDRIVER_PROXY_FEATURE_FLAGS Flags
);

Parameters

DriverObject

[in, optional] An optional pointer to the DRIVER_OBJECT to check for DriverProxy support. If this parameter is NULL, the function checks whether DriverProxy is enabled for all drivers on the system.

Flags

[out] A pointer to a DRIVER_PROXY_FEATURE_FLAGS structure that receives the DriverProxy feature flags. The structure indicates whether DriverProxy functionality is available and enabled.

Return value

This function does not return a value.

Remarks

The IoGetDriverProxyFeatures function determines DriverProxy availability based on several factors:

  • Whether the system supports DriverProxy functionality
  • Whether the Secure Kernel is running (required for DriverProxy)
  • Whether the specific driver is excluded from DriverProxy operations via registry settings
  • Whether DriverProxy has been globally disabled

Drivers should call this function before attempting to use other DriverProxy APIs such as IoCreateDriverProxyExtension or IoRegisterDriverProxyEndpoints.

The function can be called at any IRQL level and is safe to use during driver initialization.

Requirements

Requirement Value
Target Platform Universal
Header wdm.h
Library NtosKrnl.lib
IRQL Any level

See also

DRIVER_PROXY_FEATURE_FLAGS

IoCreateDriverProxyExtension

IoRegisterDriverProxyEndpoints

DRIVER_OBJECT