PMRX_CHANGE_BUFFERING_STATE_CALLDOWN funzione di callback (mrx.h)

La routineMRxCompleteBufferingStateChangeRequest viene chiamata da RDBSS per notificare al mini-reindirizzamento di rete che è stata completata una richiesta di modifica dello stato del buffer.

Sintassi

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

Parametri

[in, out] RxContext

Puntatore alla struttura RX_CONTEXT. Questo parametro contiene l'IRP che richiede l'operazione.

[in, out] SrvOpen

Puntatore a un parametro di contesto da usare dalla routine di callback del mini-reindirizzamento di rete.

[in] MRxContext

Puntatore alla struttura SRV_OPEN e alla struttura FCB associata da modificare.

Valore restituito

MRxCompleteBufferingStateChangeRequest restituisce STATUS_SUCCESS sull'esito positivo o su un valore NTSTATUS appropriato, ad esempio quanto segue:

Codice restituito Descrizione
STATUS_NOT_SUPPORTED Un'opzione nella modifica della richiesta di buffering non è supportata.

Commenti

Prima di chiamare MRxCompleteBufferingStateChangeRequest, RDBSS:

  • Acquisisce un blocco esclusivo sulla struttura FCB.

  • Imposta il membro FcbState di SrvOpen-Fcb> su FCB_STATE_BUFFERSTATE_CHANGING.

  • Modifica i membri seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :

    • pRelevantSrvOpen è impostato sulla struttura SRV_OPEN.
    • pFcb è impostato sulla struttura FCB.
    • pFobx è impostato sulla struttura FOBX.

Se il buffer di blocco è abilitato, MRxCompleteBufferingStateChangeRequest dovrà scaricare i blocchi di intervallo di byte nel server. L'elenco delle aree bloccate viene passato al mini-reindirizzamento di rete nella struttura LowIoContext.ParamsFor.Locks.LockList della struttura RX_CONTEXT.

Il reindirizzamento Server Message Block (SMB) usa MRxCompleteBufferingStateChangeRequest per inviare una risposta di interruzione di oplock o per chiudere l'handle in un'interruzione di oplock se il file non è più in uso. I blocchi dell'intervallo di byte che devono essere scaricati nel server vengono passati al mini-reindirizzamento di rete nel membro LowIoContext.ParamsFor.Locks.LockList della struttura RX_CONTEXT. Il nuovo livello di oplock viene passato nel parametro MrxContext .

RDBSS ignora il valore restituito da MRxCompleteBufferingStateChangeRequest.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione mrx.h (include Mrx.h)

Vedi anche

MRxComputeNewBufferingState

MRxGetConnectionId