RxIndicateChangeOfBufferingStateForSrvOpen, fonction (rxprocs.h)
RxIndicateChangeOfBufferingStateForSrvOpen est appelée pour inscrire une demande d’état de mise en mémoire tampon modifiée (indication d’arrêt d’oplock, par exemple) pour un traitement ultérieur. Si les conditions préalables nécessaires sont satisfaites, l’oplock est traité plus loin.
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é pour la structure de clé SRV_OPEN.
Context
Pointeur vers le contexte à renvoyer au mini-redirecteur réseau pendant les rappels pour le traitement de la requête.
Valeur de retour
Aucun
Remarques
Cette routine enregistre la demande d’état de mise en mémoire tampon modifiée en l’insérant dans la liste d’inscription (traitement au niveau DPC) ou dans la liste de répartiteur/gestionnaire appropriée.
Il s’agit d’une instance où, dans les indications de modification de l’état de mise en mémoire tampon du serveur, utilisez la clé générée par le client (l’adresse SRV_OPEN elle-même est la meilleure clé qui peut être utilisée). Cela implique qu’aucune recherche supplémentaire n’est requise.
Toutefois, si cette routine est appelée au niveau DPC, l’indication est traitée comme si la recherche doit être effectuée.
Si la ressource du FCB a déjà été acquise par ce thread, l’indication de modification de l’état de mise en mémoire tampon est traitée immédiatement 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 ultérieurement, RxChangeBufferingState peut être appelée.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | rxprocs.h (include Rxprocs.h, Struchdr.h, Fcb.h) |
IRQL | <= APC_LEVEL |