Fonction RxChangeBufferingState (rxprocs.h)
RxChangeBufferingState est appelé pour traiter une demande de modification d’état de mise en mémoire tampon.
Syntaxe
NTSTATUS RxChangeBufferingState(
PSRV_OPEN SrvOpen,
PVOID Context,
BOOLEAN ComputeNewState
);
Paramètres
SrvOpen
Pointeur vers la structure de données SRV_OPEN à modifier.
Context
Pointeur vers le paramètre de contexte à utiliser par le rappel du mini-redirecteur réseau.
ComputeNewState
Valeur qui indique si le nouvel état de mise en mémoire tampon doit être calculé. Lorsque cette valeur est définie sur TRUE, le nouvel état de mise en mémoire tampon est déterminé en appelant le mini-redirecteur réseau pour calculer le nouvel état de mise en mémoire tampon. Lorsque cette valeur est FALSE, le nouvel état de mise en mémoire tampon est déterminé par le membre BufferingFlags de la structure passée dans SrvOpen .
Valeur retournée
RxChangeBufferingState retourne toujours STATUS_SUCCESS si cette routine a réussi ou si une erreur se produit. Si une erreur se produit, l’état de mise en mémoire tampon est modifié de sorte qu’aucune mise en mémoire tampon n’est activée.
Remarques
Si la mise en mémoire tampon locale est désactivée pour ce fcb (FCB_STATE_DISABLE_LOCAL_BUFFERING est définie dans le membre de structure FcbState du FCB), cela désactive la mise en mémoire tampon locale indépendamment du mode ouvert sur le FCB et de toutes les options de mise en mémoire tampon par défaut. Lorsque FCB_STATE_DISABLE_LOCAL_BUFFERING est défini, le nouvel état de mise en mémoire tampon défini par RxChangeBufferingState consiste à désactiver toute la mise en mémoire tampon.
Si ComputeNewState a la valeur TRUE, la routine MRxComputeNewBufferingState exportée par le mini-redirecteur réseau est appelée pour calculer le nouvel état de mise en mémoire tampon à utiliser.
Si le FCB est acquis exclusivement et que ComputeNewState a la valeur FALSE. rxChangeBufferingState définit alors les options d’état de mise en mémoire tampon suivantes :
- FCB_STATE_WRITECACHING_ENABLED
- FCB_STATE_FILESIZECACHEING_ENABLED
- FCB_STATE_FILETIMECACHEING_ENABLED
- FCB_STATE_WRITEBUFFERING_ENABLED
- FCB_STATE_LOCK_BUFFERING_ENABLED
- FCB_STATE_READBUFFERING_ENABLED
- FCB_STATE_READCACHING_ENABLED
- ShareAccess.SharedRead
- ShareAccess.SharedWrite
- ShareAccess.SharedDelete
- FCB_STATE_WRITEBUFFERING_ENABLED
- FCB_STATE_READBUFFERING_ENABLED
- FCB_STATE_OPENSHARING_ENABLED
- FCB_STATE_COLLAPSING_ENABLED
- FCB_STATE_FILESIZECACHEING_ENABLED
- FCB_STATE_FILETIMECACHEING_ENABLED
À la sortie de RxChangeBufferingState, il n’y a aucun changement dans la propriété des ressources.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | rxprocs.h (incluent Rxprocs.h, Struchdr.h, Fcb.h) |
IRQL | <= APC_LEVEL |
Voir aussi
RxIndicateChangeOfBufferingState