Función RxChangeBufferingState (rxprocs.h)
Se llama a RxChangeBufferingState para procesar una solicitud de cambio de estado de almacenamiento en búfer.
Sintaxis
NTSTATUS RxChangeBufferingState(
PSRV_OPEN SrvOpen,
PVOID Context,
BOOLEAN ComputeNewState
);
Parámetros
SrvOpen
Puntero a la estructura de datos SRV_OPEN que se va a cambiar.
Context
Puntero al parámetro de contexto para que lo use la devolución de llamada del minidirector de red.
ComputeNewState
Valor que indica si se va a calcular el nuevo estado de almacenamiento en búfer. Cuando este valor se establece en TRUE, el nuevo estado de almacenamiento en búfer se determina llamando al minidirector de red para calcular el nuevo estado de almacenamiento en búfer. Cuando este valor es FALSE, el nuevo estado de almacenamiento en búfer viene determinado por el miembro BufferingFlags de la estructura SrvOpen pasada.
Valor devuelto
RxChangeBufferingState siempre devuelve STATUS_SUCCESS si esta rutina se realizó correctamente o si se produce un error. Si se produce un error, se cambia el estado de almacenamiento en búfer para que no se habilite ningún almacenamiento en búfer.
Comentarios
Si el almacenamiento en búfer local está deshabilitado para este FCB (FCB_STATE_DISABLE_LOCAL_BUFFERING se establece en el miembro de estructura FcbState del FCB), esto deshabilitará el almacenamiento en búfer local independientemente del modo abierto en el FCB y las opciones de almacenamiento en búfer predeterminadas. Cuando se establece FCB_STATE_DISABLE_LOCAL_BUFFERING, el nuevo estado de almacenamiento en búfer establecido por RxChangeBufferingState será deshabilitar todo el almacenamiento en búfer.
Si ComputeNewState es TRUE, se llama a la rutina MRxComputeNewBufferingState exportada por el minidirector de red para calcular el nuevo estado de almacenamiento en búfer que se va a usar.
Si el FCB se adquiere exclusivamente y ComputeNewState es FALSE. a continuación, RxChangeBufferingState establecerá las siguientes opciones de estado de almacenamiento en búfer:
- 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
- ShareAccess.SharedRead
- ShareAccess.SharedWrite
- ShareAccess.SharedDelete
- FCB_STATE_WRITEBUFFERING_ENABLED
- FCB_STATE_READBUFFERING_ENABLED
- FCB_STATE_OPENSHARING_ENABLED
- FCB_STATE_COLLAPSING_ENABLED
- FCB_STATE_FILESIZECACHEING_ENABLED
- FCB_STATE_FILETIMECACHEING_ENABLED
Al salir de RxChangeBufferingState, no hay ningún cambio en la propiedad del recurso.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | rxprocs.h (incluya Rxprocs.h, Struchdr.h, Fcb.h) |
IRQL | <= APC_LEVEL |
Consulte también
RxIndicateChangeOfBufferingState