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

FilterSynchronousOidRequest

NdisFSynchronousOidRequest

Interface de requête OID synchrone dans NDIS 6.80