Partager via


IofGetDriverProxyWrapperFromEndpoint, fonction (wdm.h)

La fonction IofGetDriverProxyWrapperFromEndpoint obtient le pointeur vers le wrapper d’une fonction de point de terminaison à l’aide du pointeur de fonction de point de terminaison.

Syntaxe

NTSTATUS IofGetDriverProxyWrapperFromEndpoint(
  PDRIVER_PROXY_EXTENSION                 DriverProxyExtension,
  PDRIVER_PROXY_ENDPOINT_FUNCTION         Endpoint,
  PDRIVER_PROXY_WRAPPED_ENDPOINT_FUNCTION *Wrapper
);

Paramètres

DriverProxyExtension

[in] Pointeur vers l’extension DriverProxy à laquelle les points de terminaison sont inscrits. Cette extension a été créée dans un appel antérieur à IoCreateDriverProxyExtension.

Endpoint

[in] Pointeur vers la fonction de point de terminaison pour laquelle trouver le wrapper. Il doit s’agir d’un pointeur de fonction qui a été précédemment inscrit auprès d’IoRegisterDriverProxyEndpoints.

Wrapper

[out] Pointeur vers une variable qui reçoit un pointeur vers la fonction de point de terminaison encapsulée. Si le point de terminaison est trouvé, cela pointe vers la fonction wrapper qui doit être appelée au lieu du point de terminaison d’origine.

Valeur retournée

IofGetDriverProxyWrapperFromEndpoint retourne l’une des valeurs NTSTATUS suivantes :

Code de retour Descriptif
STATUS_SUCCESS La fonction wrapper a été trouvée et retournée.
STATUS_NOT_FOUND La fonction de point de terminaison spécifiée n’a pas été trouvée dans les points de terminaison inscrits.

Remarques

Cette fonction est la méthode standard pour récupérer des wrappers de point de terminaison dans Driver Hot-Swap V2. Le pointeur de point de terminaison passé à cette fonction doit correspondre exactement à un pointeur identifié pendant le processus d’énumération de point de terminaison automatique.

Pour éviter les avertissements du compilateur lors de l’appel de cette fonction, vous devrez peut-être caster les paramètres Endpoint et Wrapper . Pour plus de commodité, une macro IoGetDriverProxyWrapperFromEndpoint est fournie qui gère automatiquement le cast de type. Il est recommandé d’utiliser la macro au lieu d’appeler cette fonction directement.

La fonction peut être appelée à n’importe quel niveau IRQL et effectue une opération de recherche rapide.

Une fois qu’un wrapper est obtenu, les pilotes doivent appeler la fonction wrapper au lieu de la fonction de point de terminaison d’origine pour activer la fonctionnalité permutable à chaud.

Spécifications

Requirement Valeur
plateforme cible Universal
Header wdm.h
Library NtosKrnl.lib
IRQL N’importe quel niveau

Voir aussi

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION