PMRX_CHANGE_BUFFERING_STATE_CALLDOWN Rückruffunktion (mrx.h)

DieMRxCompleteBufferingStateChangeRequest-Routine wird von RDBSS aufgerufen, um den Netzwerk-Mini-Redirector zu benachrichtigen, dass eine Änderungsanforderung für den Pufferzustand abgeschlossen wurde.

Syntax

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
)
{...}

Parameter

[in, out] RxContext

Ein Zeiger auf die RX_CONTEXT-Struktur. Dieser Parameter enthält das IRP, das den Vorgang anfordert.

[in, out] SrvOpen

Ein Zeiger auf einen Kontextparameter, der von der Rückrufroutine für die Netzwerkminiumleitung verwendet werden soll.

[in] MRxContext

Ein Zeiger auf die SRV_OPEN-Struktur und die zugehörige FCB-Struktur, die geändert werden soll.

Rückgabewert

MRxCompleteBufferingStateChangeRequest gibt STATUS_SUCCESS bei Erfolg oder einen geeigneten NTSTATUS-Wert zurück, z. B.:

Rückgabecode Beschreibung
STATUS_NOT_SUPPORTED Eine Option in der Änderung der Pufferanforderung wird nicht unterstützt.

Hinweise

Vor dem Aufrufen von MRxCompleteBufferingStateChangeRequest, RDBSS:

  • Ruft eine exklusive Sperre für die FCB-Struktur ab.

  • Legt das FcbState-Element von SrvOpen-Fcb> auf FCB_STATE_BUFFERSTATE_CHANGING fest.

  • Ändert die folgenden Member in der RX_CONTEXT-Struktur, auf die der RxContext-Parameter verweist:

    • pRelevantSrvOpen wird auf die SRV_OPEN-Struktur festgelegt.
    • pFcb ist auf die FCB-Struktur festgelegt.
    • pFobx ist auf die FOBX-Struktur festgelegt.

Wenn die Sperrpufferung aktiviert ist, muss MRxCompleteBufferingStateChangeRequest die Bytebereichssperren für den Server leeren. Die Liste der gesperrten Regionen wird an den Netzwerkminiumleitungsor im LowIoContext.ParamsFor.Locks.LockList-Element der RX_CONTEXT-Struktur übergeben.

Der SMB-Redirector (Server Message Block) verwendet MRxCompleteBufferingStateChangeRequest , um eine Oplock-Unterbrechungsantwort zu senden oder das Handle für einen Oplock-Umbruch zu schließen, wenn die Datei nicht mehr verwendet wird. Bytebereichssperren, die auf den Server geleert werden müssen, werden an den Netzwerkminiumleitungsor im LowIoContext.ParamsFor.Locks.LockList-Member der RX_CONTEXT-Struktur übergeben. Die neue Oplockebene wird im MrxContext-Parameter übergeben.

RDBSS ignoriert den Rückgabewert von MRxCompleteBufferingStateChangeRequest.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile mrx.h (mrx.h einschließen)

Weitere Informationen

MRxComputeNewBufferingState

MRxGetConnectionId