Partager via


PMRX_CHANGE_BUFFERING_STATE_CALLDOWN fonction de rappel (mrx.h)

La routineMRxCompleteBufferingStateChangeRequest est appelée par RDBSS pour avertir 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 de mini-redirecteur réseau.

[in] MRxContext

Pointeur vers la structure SRV_OPEN et la structure FCB associée à modifier.

Valeur de retour

MRxCompleteBufferingStateChangeRequest retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, par exemple :

Retourner le code 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 par 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 de verrou est activée, MRxCompleteBufferingStateChangeRequest devez 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 la LowIoContext.ParamsFor.Locks.LockList membre de la structure RX_CONTEXT.

Le redirecteur SMB (Server Message Block) utilise MRxCompleteBufferingStateChangeRequest pour envoyer une réponse d’arrêt d’oplock ou pour fermer le handle sur un arrêt d’oplock si le fichier n’est plus utilisé. Les verrous de plage d’octets qui doivent être vidés sur le serveur sont transmis au mini-redirecteur réseau dans le LowIoContext.ParamsFor.Locks.LockList membre de la structure RX_CONTEXT. Le nouveau niveau d’oplock est passé dans le paramètre MrxContext.

RDBSS ignore la valeur de retour de MRxCompleteBufferingStateChangeRequest.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête mrx.h (inclure Mrx.h)

Voir aussi

MRxComputeNewBufferingState

MRxGetConnectionId