Freigeben über


RxChangeBufferingState-Funktion (rxprocs.h)

RxChangeBufferingState wird aufgerufen, um eine Änderungsanforderung für den Pufferstatus zu verarbeiten.

Syntax

NTSTATUS RxChangeBufferingState(
  PSRV_OPEN SrvOpen,
  PVOID     Context,
  BOOLEAN   ComputeNewState
);

Parameter

SrvOpen

Ein Zeiger auf die zu ändernde SRV_OPEN Datenstruktur.

Context

Ein Zeiger auf den Kontextparameter für die Verwendung durch den Miniumleitungsrückruf des Netzwerks.

ComputeNewState

Der Wert, der angibt, ob der neue Pufferstatus berechnet werden soll. Wenn dieser Wert auf TRUEfestgelegt ist, wird der neue Pufferzustand durch Aufrufen des Netzwerk-Miniumleitungsmoduls zum Berechnen des neuen Pufferzustands bestimmt. Wenn dieser Wert FALSE-ist, wird der neue Pufferzustand durch den BufferingFlags Member des übergebenen SrvOpen--Struktur bestimmt.

Rückgabewert

RxChangeBufferingState gibt immer STATUS_SUCCESS zurück, ob diese Routine erfolgreich war oder ein Fehler auftritt. Wenn ein Fehler auftritt, wird der Pufferstatus geändert, sodass keine Pufferung aktiviert ist.

Bemerkungen

Wenn die lokale Pufferung für diesen FCB deaktiviert ist (FCB_STATE_DISABLE_LOCAL_BUFFERING im FcbState-Strukturelement des FCB festgelegt wird), wird die lokale Pufferung unabhängig vom geöffneten Modus auf dem FCB und allen Standardpufferoptionen deaktiviert. Wenn FCB_STATE_DISABLE_LOCAL_BUFFERING festgelegt wird, wird der neue Pufferstatus, der von RxChangeBufferingState- festgelegt wird, alle Puffer deaktiviert.

Wenn ComputeNewState-TRUEist, wird die MRxComputeNewBufferingState Routine aufgerufen, die vom Netzwerk-Miniumleitungsmodul exportiert wird, um den neuen zu verwendenden Pufferzustand zu berechnen.

Wenn der FCB ausschließlich erworben wird und ComputeNewStateFALSEist. dann RxChangeBufferingState die folgenden Pufferstatusoptionen festlegen:

  • 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
Um den FCB ausschließlich zu erwerben, muss der FCB nicht mit einem der folgenden Werte eröffnet werden:
  • ShareAccess.SharedRead
  • ShareAccess.SharedWrite
  • ShareAccess.SharedDelete
RDBSS verwendet derzeit keine Reihe möglicher Pufferoptionen, sodass diese Optionen intern von RDBSS ignoriert werden, wenn sie mit RxChangeBufferingStatedeaktiviert werden. Zu diesen ignorierten Pufferoptionen gehören:
  • FCB_STATE_WRITEBUFFERING_ENABLED
  • FCB_STATE_READBUFFERING_ENABLED
  • FCB_STATE_OPENSHARING_ENABLED
  • FCB_STATE_COLLAPSING_ENABLED
  • FCB_STATE_FILESIZECACHEING_ENABLED
  • FCB_STATE_FILETIMECACHEING_ENABLED
Wenn der FCB_STATE_WRITECACHING_ENABLED Pufferstatus deaktiviert wird, wird ein FCB im Systemcache geleert.

Beim Beenden von RxChangeBufferingStategibt es keine Änderung des Ressourcenbesitzes.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- rxprocs.h (einschließlich Rxprocs.h, Struchdr.h, Fcb.h)
IRQL- <= APC_LEVEL

Siehe auch

RxIndicateChangeOfBufferingState-

RxIndicateChangeOfBufferingStateForSrvOpen

SRV_OPEN Struktur