RxIndicateChangeOfBufferingStateForSrvOpen, fonction (rxprocs.h)
RxIndicateChangeOfBufferingStateForSrvOpen est appelé pour inscrire une demande d’état de mise en mémoire tampon de modification (indication d’arrêt d’oplock, par exemple) en vue d’un traitement ultérieur. Si les conditions préalables nécessaires sont remplies, le verrouillage d’opération est traité plus avant.
Syntaxe
void RxIndicateChangeOfBufferingStateForSrvOpen(
PMRX_SRV_CALL SrvCall,
PMRX_SRV_OPEN SrvOpen,
PVOID SrvOpenKey,
PVOID Context
);
Paramètres
SrvCall
Pointeur vers la structure SRV_CALL.
SrvOpen
Pointeur vers la structure SRV_OPEN.
SrvOpenKey
Pointeur vers la clé de la structure de clé SRV_OPEN.
Context
Pointeur vers le contexte à transmettre au mini-redirecteur réseau pendant les rappels pour le traitement de la demande.
Valeur de retour
None
Remarques
Cette routine enregistre la demande d’état de mise en mémoire tampon de modification en l’insérant dans la liste d’inscription (traitement au niveau DPC) ou dans la liste de répartiteurs/gestionnaires appropriés.
Il s’agit d’un instance où, dans l’état de mise en mémoire tampon, les indications de modification du serveur utilisent la clé générée par le client (l’adresse SRV_OPEN en soi est la meilleure clé qui peut être utilisée). Cela implique qu’aucune autre recherche n’est requise.
Toutefois, si cette routine est appelée au niveau DPC, l’indication est traitée comme si la recherche devait être effectuée.
Si la ressource pour le fcb a déjà été acquise par ce thread, l’indication de changement d’état de mise en mémoire tampon est traitée immédiatement et sans délai supplémentaire. RxIndicateChangeOfBufferingStateForSrvOpen appelle RxChangeBufferingState immédiatement dans ce cas.
Les routines internes appelées par cette routine peuvent échouer en raison d’un manque de mémoire disponible (impossible d’allouer de la mémoire de pool non paginée, par exemple), mais comme il s’agit d’une routine VOID, aucune erreur n’est retournée lorsque cette condition se produit.
Si une demande d’état de mise en mémoire tampon peut être traitée immédiatement au lieu d’être mise en file d’attente pour traitement ultérieurement, RxChangeBufferingState peut être appelé.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | rxprocs.h (inclure Rxprocs.h, Struchdr.h, Fcb.h) |
IRQL | <= APC_LEVEL |