fonction FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE (ndis.h)
NDIS appelle la fonction FilterSynchronousOidRequestComplete d’un pilote de filtre une fois qu’une requête OID synchrone a été effectuée à partir d’un pilote sous-jacent.
Cette fonction est prise en charge dans NDIS 6.81 et versions ultérieures.
Syntaxe
void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
[in] NDIS_HANDLE FilterModuleContext,
[in, out] NDIS_OID_REQUEST *OidRequest,
[in, out] NDIS_STATUS *Status,
[in] PVOID CallContext
);
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 .
[in, out] OidRequest
Pointeur vers une structure NDIS_OID_REQUEST qui spécifie l’opération en cours d’exécution.
[in, out] Status
Pointeur vers le code status résultant de la demande en cours d’exécution.
[in] CallContext
Emplacement de stockage de taille PVOID pour que le pilote de filtre partage l’état entre ses gestionnaires FilterSynchronousOidRequest et FilterSynchronousOidRequestComplete . Si le pilote de filtre implémente un gestionnaire FilterSynchronousOidRequest , ce paramètre contient la valeur de contexte retournée par le gestionnaire FilterSynchronousOidRequest . Sinon, si le pilote de filtre n’implémente pas de gestionnaire FilterSynchronousOidRequest , cette valeur est égale à zéro.
Valeur de retour
None
Remarques
FilterSynchronousOidRequestComplete est une fonction facultative. Si un pilote de filtre n’a pas besoin d’observer ou de modifier les requêtes OID synchrones effectuées à partir du pilote miniport, le pilote de filtre doit définir le point d’entrée de cette fonction sur NULL lorsqu’il appelle NdisFRegisterFilterDriver.
NDIS appelle la fonction FilterSynchronousOidRequestComplete du pilote de filtre pour traiter les requêtes OID synchrones terminées par les pilotes sous-jacents. Les pilotes de filtre peuvent lire ou modifier certains champs de la structure NDIS_OID_REQUEST comme suit :
Champ | Filtrer l’accès |
---|---|
En-tête | Lecture seule |
RequestType | Lecture/écriture |
PortNumber | Lecture/écriture |
Délai d'expiration | Ne pas accéder |
RequestId | Ne pas accéder |
RequestHandle | Lecture/écriture |
DATA | Lecture/écriture |
NdisReserved | Ne pas accéder |
MiniportReserved | Ne pas accéder |
SourceReserved | Ne pas accéder |
SupportedRevision | Lecture/écriture |
Reserved1, Reserved2 | Ne pas accéder |
SwitchId | Lecture/écriture |
VPortId | Lecture/écriture |
Indicateurs | Lecture/écriture |
En plus de modifier la structure NDIS_OID_REQUEST, les pilotes de filtre peuvent lire ou modifier le code status avec lequel l’opération s’est terminée. Le pilote de filtre peut écrire une nouvelle valeur dans le paramètre *Status . Les pilotes de filtre ne doivent pas écrire NDIS_STATUS_PENDING ou NDIS_STATUS_ALREADY_COMPLETE dans le paramètre *Status .
Si le pilote de filtre inscrit également un gestionnaire FilterSynchronousOidRequest , NDIS garantit que le gestionnaire FilterSynchronousOidRequestComplete sera appelé si et uniquement si le gestionnaire FilterSynchronousOidRequest retourne NDIS_STATUS_SUCCESS.
Les pilotes de filtre doivent retourner rapidement à partir de leur gestionnaire FilterSynchronousOidRequestComplete , sans blocage, attente ou mise en veille. Les requêtes OID synchrones sont utilisées uniquement pour les opérations à faible latence, et les pilotes de filtre doivent s’efforcer de les poursuivre ou de les terminer en quelques millisecondes.
NDIS ne sérialise pas les requêtes OID synchrones les unes par rapport aux autres requêtes OID ou à FilterPause. Il incombe au pilote de filtre d’implémenter toute synchronisation nécessaire.
NDIS sérialise les requêtes OID synchrones sur FilterDetach : NDIS garantit qu’aucune requête OID synchrone ne sera active une fois FilterDetach appelée.
Les pilotes de filtre ne doivent pas appeler NdisAllocateCloneOidRequest ou NdisCancelOidRequest sur une requête OID synchrone. Les pilotes de filtre ne doivent pas appeler NdisFSynchronousOidRequest sur une requête OID reçue via un gestionnaire FilterSynchronousOidRequestComplete .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10, version 1709 |
Plateforme cible | Windows |
En-tête | ndis.h (inclure Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Voir aussi
Commentaires
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