Partager via


DRIVER_PROXY_ENDPOINT_FUNCTION fonction de rappel (wdm.h)

Le rappel DRIVER_PROXY_ENDPOINT_FUNCTION définit la signature de fonction pour une fonction de point de terminaison permutable à chaud dans le système DriverProxy. Il s’agit d’un type de pointeur de fonction générique qui représente n’importe quelle fonction de pilote pouvant être permutable à chaud via l’infrastructure driver Hot-Swap.

Syntaxe

DRIVER_PROXY_ENDPOINT_FUNCTION DriverProxyEndpointFunction;

VOID DriverProxyEndpointFunction()
{...}

Valeur retournée

Aucun

Remarques

Les fonctions de point de terminaison sont des fonctions implémentées par le pilote qui peuvent être remplacées au moment de l’exécution sans décharger le pilote. Le système DriverProxy crée des fonctions wrapper qui redirigent les appels vers l’implémentation actuelle de chaque fonction de point de terminaison, ce qui active la fonctionnalité d’échange à chaud.

Ce type de rappel sert de pointeur de fonction générique pour le système DriverProxy. Dans la pratique, les fonctions de point de terminaison ont des signatures différentes en fonction de leur objectif spécifique, mais elles sont toutes traitées comme des pointeurs DRIVER_PROXY_ENDPOINT_FUNCTION au sein de l’infrastructure DriverProxy.

Dans Driver Hot-Swap V2, les fonctions de point de terminaison sont automatiquement découvertes pendant le processus de génération via l’analyse du compilateur et de l’éditeur de liens. Le compilateur identifie les fonctions qui doivent être permutables à chaud et place des informations sur celles-ci dans la .shsept section du fichier binaire.

Principales caractéristiques des fonctions de point de terminaison :

  • Ils peuvent être remplacés au moment de l’exécution via le système DriverProxy
  • Ils sont accessibles via des fonctions wrapper retournées par IoGetDriverProxyWrapperFromEndpoint
  • Ils doivent être associés à une extension DriverProxy créée par IoCreateDriverProxyExtension
  • Leur remplacement est coordonné via l’infrastructure DriverProxy pour garantir la sécurité des threads

Les exigences IRQL réelles pour les fonctions de point de terminaison dépendent de la fonction spécifique implémentée. Les pilotes doivent concevoir leurs fonctions de point de terminaison en fonction des contraintes IRQL de leur utilisation prévue.

Spécifications

Requirement Valeur
plateforme cible Universal
Header wdm.h
IRQL Variable

Voir aussi

IoGetDriverProxyWrapperFromEndpoint

IofGetDriverProxyWrapperFromEndpoint

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_INFORMATION