Edit

Share via


DRIVER_PROXY_ENDPOINT_INFORMATION structure (wdm.h)

Note

This structure is used for Driver Hot-Swap V1 only. New drivers should use Driver Hot-Swap V2, which handles endpoint registration automatically through compiler-based endpoint enumeration.

The DRIVER_PROXY_ENDPOINT_INFORMATION structure contains information about a DriverProxy endpoint function that is being registered for hot-swappable functionality in Driver Hot-Swap V1 implementations.

Syntax

typedef struct _DRIVER_PROXY_ENDPOINT_INFORMATION {
  DRIVER_PROXY_ENDPOINT_FUNCTION_ID Id;
  PDRIVER_PROXY_ENDPOINT_FUNCTION   EndpointFunction;
  ULONG                             ParameterCount;
} DRIVER_PROXY_ENDPOINT_INFORMATION, *PDRIVER_PROXY_ENDPOINT_INFORMATION;

Members

Id

A unique identifier for the endpoint function. This ID is used to identify the endpoint within the DriverProxy system and must be unique within the scope of the DriverProxy extension. If an endpoint with the same ID already exists, it will be replaced during registration, provided the parameter count matches.

EndpointFunction

A pointer to the DRIVER_PROXY_ENDPOINT_FUNCTION that represents the endpoint function to be registered. This is the actual function that will be made hot-swappable through the DriverProxy system.

ParameterCount

The number of parameters that the endpoint function accepts. This value is used for validation during endpoint registration. If an endpoint with the same ID already exists, the parameter count must match exactly, or the registration will fail with STATUS_INVALID_PARAMETER_3.

Remarks

This structure is used with IoRegisterDriverProxyEndpoints to register endpoint functions in Driver Hot-Swap V1 implementations, which require manual registration. Each structure in the array describes one endpoint function that should be made hot-swappable.

Driver Hot-Swap V2 automatically discovers and registers endpoints during the build process, eliminating the need for this structure in newer implementations.

When registering multiple endpoints, all endpoints in the array are processed atomically. Either all endpoints are successfully registered, or the entire operation fails and no changes are made.

Requirements

Requirement Value
Header wdm.h

See also

IoRegisterDriverProxyEndpoints

DRIVER_PROXY_ENDPOINT_FUNCTION

DRIVER_PROXY_REGISTER_CALLBACK

IoCreateDriverProxyExtension

IoGetDriverProxyEndpointWrapper