PMRX_CHANGE_BUFFERING_STATE_CALLDOWN fonction de rappel (mrx.h)
La routineMRxCompleteBufferingStateChangeRequest est appelée par RDBSS pour informer le mini-redirecteur réseau qu’une demande de modification d’état de mise en mémoire tampon a été effectuée.
Syntaxe
PMRX_CHANGE_BUFFERING_STATE_CALLDOWN PmrxChangeBufferingStateCalldown;
NTSTATUS PmrxChangeBufferingStateCalldown(
[in, out] IN OUT PRX_CONTEXT RxContext,
[in, out] IN OUT PMRX_SRV_OPEN SrvOpen,
[in] IN PVOID MRxContext
)
{...}
Paramètres
[in, out] RxContext
Pointeur vers la structure RX_CONTEXT. Ce paramètre contient l’IRP qui demande l’opération.
[in, out] SrvOpen
Pointeur vers un paramètre de contexte à utiliser par la routine de rappel du mini-redirecteur réseau.
[in] MRxContext
Pointeur vers la structure SRV_OPEN et la structure FCB associée à modifier.
Valeur retournée
MRxCompleteBufferingStateChangeRequest retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, par exemple :
Code de retour | Description |
---|---|
STATUS_NOT_SUPPORTED | Une option dans la modification de la demande de mise en mémoire tampon n’est pas prise en charge. |
Remarques
Avant d’appeler MRxCompleteBufferingStateChangeRequest, RDBSS :
Acquiert un verrou exclusif sur la structure FCB.
Définit le membre FcbState de SrvOpen-Fcb> sur FCB_STATE_BUFFERSTATE_CHANGING.
Modifie les membres suivants dans la structure RX_CONTEXT pointée vers le paramètre RxContext :
- pRelevantSrvOpen est défini sur la structure SRV_OPEN.
- pFcb est défini sur la structure FCB.
- pFobx est défini sur la structure FOBX.
Si la mise en mémoire tampon des verrous est activée, MRxCompleteBufferingStateChangeRequest doit vider les verrous de plage d’octets sur le serveur. La liste des régions verrouillées est transmise au mini-redirecteur réseau dans le membre LowIoContext.ParamsFor.Locks.Locks.LockList de la structure RX_CONTEXT.
Le redirecteur SMB (Server Message Block) utilise MRxCompleteBufferingStateChangeRequest pour envoyer une réponse d’arrêt oplock ou pour fermer le handle lors d’un arrêt d’opération si le fichier n’est plus utilisé. Les verrous de plage d’octets qui doivent être vidés du serveur sont passés au mini-redirecteur réseau dans le membre LowIoContext.ParamsFor.Locks.LockList de la structure RX_CONTEXT. Le nouveau niveau oplock est passé dans le paramètre MrxContext .
RDBSS ignore la valeur de retour de MRxCompleteBufferingStateChangeRequest.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | mrx.h (inclure Mrx.h) |