FILTER_SET_MODULE_OPTIONS fonction de rappel (ndis.h)
La fonction FilterSetModuleOptions modifie l’ensemble de services facultatifs associés à un module de filtre spécifié.
Syntaxe
FILTER_SET_MODULE_OPTIONS FilterSetModuleOptions;
NDIS_STATUS FilterSetModuleOptions(
[in] NDIS_HANDLE FilterModuleContext
)
{...}
Paramètres
[in] FilterModuleContext
Handle de la zone de contexte pour le module de filtre qui est la cible de cette requête. Le pilote de filtre a créé et initialisé cette zone de contexte dans la fonction FilterAttach .
Valeur retournée
FilterSetModuleOptions retourne l’une des valeurs status suivantes :
Code de retour | Description |
---|---|
|
FilterSetModuleOptions a correctement inscrit les services et ressources facultatifs du module de filtre. |
|
FilterSetModuleOptions n’a pas pu allouer les ressources requises par le module de filtre. |
|
La tentative d’inscription des options du pilote de filtre a échoué. Généralement, une telle status d’erreur est propagée à partir d’une fonction NdisXxx ou d’une routine de prise en charge en mode noyau. |
Remarques
Si FilterSetModuleOptions est défini, NDIS appelle FilterSetModuleOptions avant d’appeler la fonction FilterRestart pour démarrer le module de filtre.
Un pilote de filtre spécifie les valeurs par défaut pour les options de module de filtre modifiables dans la structure NDIS_FILTER_DRIVER_CHARACTERISTICS qu’il transmet au Fonction NdisFRegisterFilterDriver pendant l’initialisation du pilote.
Pour modifier les options d’un module de filtre spécifique au moment de l’exécution, le pilote de filtre doit également spécifier un point d’entrée pour FilterSetModuleOptions dans le NDIS_FILTER_DRIVER_CHARACTERISTICS structure.
Pour spécifier les options à modifier, FilterSetModuleOptions définit une structure de caractéristiques et appelle la fonction NdisSetOptionalHandlers . Les pilotes de filtre ne doivent pas appeler NdisSetOptionalHandlers à partir d’un autre thread.
Les structures de caractéristiques possibles qui peuvent être spécifiées à partir de FilterSetModuleOptions sont les suivantes :
NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICSPour plus d’informations sur les quatre dernières structures, consultez la documentation sur le déchargement de cheminée TCP NDIS 6.0.
Les options spécifiées dans chaque structure de caractéristiques peuvent être différentes pour chaque module de filtre.
Lorsque NDIS appelle la fonction FilterDetach , le pilote de filtre doit annuler toutes les opérations effectuées dans FilterSetModuleOptions.
NDIS appelle FilterSetModuleOptions à IRQL = PASSIVE_LEVEL.
Exemples
Pour définir une fonction FilterSetModuleOptions , vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction que vous définissez. Windows fournit un ensemble de types de fonctions pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction permet à l’analyse du code pour les pilotes, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification de trouver les erreurs, et il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.Par exemple, pour définir une fonction FilterSetModuleOptions nommée « MySetModuleOptions », utilisez le type FILTER_SET_MODULE_OPTIONS comme indiqué dans cet exemple de code :
FILTER_SET_MODULE_OPTIONS MySetModuleOptions;
Ensuite, implémentez votre fonction comme suit :
_Use_decl_annotations_
NDIS_STATUS
MySetModuleOptions(
NDIS_HANDLE FilterModuleContext
)
{...}
Le type de fonction FILTER_SET_MODULE_OPTIONS est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction FILTER_SET_MODULE_OPTIONS dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes NDIS.
Pour plus d’informations sur Use_decl_annotations, consultez Annotating Function Behavior.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.0 et versions ultérieures. |
Plateforme cible | Windows |
En-tête | ndis.h (inclure Ndis.h) |
IRQL | PASSIVE_LEVEL |
Voir aussi
NDIS_FILTER_DRIVER_CHARACTERISTICS NDIS_FILTER_PARTIAL_CHARACTERISTICSCommentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour