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

Voir aussi

RX_CONTEXT

RxChangeBufferingState

RxIndicateChangeOfBufferingState