Macro FsRtlCheckOplock (rxprocs.h)
La rutina FsRtlCheckOplock sincroniza el IRP para una operación de E/S de archivo con el estado actual de bloqueo oportunista (oplock).
Sintaxis
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
Parámetros
A1
Puntero de bloqueo oportunista opaco para el archivo. Este puntero debe haberse inicializado mediante una llamada anterior a FsRtlInitializeOplock.
A2
Puntero al IRP para la operación de E/S.
A3
Puntero a la información de contexto definida por el autor de la llamada que se va a pasar a las rutinas de devolución de llamada a las que apuntan los parámetros CompletionRoutine y PostIrpRoutine .
A4
Puntero a una rutina de devolución de llamada proporcionada por el autor de la llamada. Si hay un salto de bloqueo oportunista en curso, se llama a esta rutina cuando se completa la interrupción. Este parámetro es opcional y puede ser NULL. Si es NULL, el autor de la llamada se coloca en un estado de espera hasta que se complete la interrupción de bloqueo oportunista.
Esta rutina se declara de la siguiente manera:
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
Esta rutina tiene los parámetros siguientes:
- Contexto
- Irp
Puntero de información de contexto que se pasó en el parámetro Context a FsRtlCheckOplock.
Puntero al IRP para la operación de E/S.
A5
Puntero a una rutina de devolución de llamada proporcionada por el autor de la llamada que se llamará si la operación de E/S se publica en una cola de trabajo. Este parámetro es opcional y puede ser NULL.
Esta rutina se declara de la siguiente manera:
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
- Contexto
- Irp
Puntero de información de contexto que se pasó en el parámetro Context a FsRtlCheckOplock.
Puntero al IRP para la operación de E/S.
Valor devuelto
None
Observaciones
FsRtlCheckOplock sincroniza el IRP para una operación de E/S con el estado de bloqueo oportunista actual de un archivo según las condiciones siguientes:
- Si la operación de E/S hará que se interrumpa el bloqueo oportunista, se inicia la interrupción del bloqueo oportunista.
- Si la operación de E/S no puede continuar hasta que se complete la interrupción de bloqueo oportunista, FsRtlCheckOplock devuelve STATUS_PENDING y llama a la rutina de devolución de llamada a la que apunta el parámetro PostIrpRoutine .
IRP_MJ_CLEANUP
IRP_MJ_CREATE
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_LOCK_CONTROL
IRP_MJ_READ
IRP_MJ_SET_INFORMATION
IRP_MJ_WRITE
Para obtener información detallada sobre bloqueos oportunistas, consulte la documentación de Microsoft Windows SDK.
Los minifiltros deben llamar a FltCheckOplock en lugar de FsRtlCheckOplock.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Esta rutina está disponible en Microsoft Windows 2000 y versiones posteriores de sistemas operativos Windows. |
Plataforma de destino | Universal |
Encabezado | rxprocs.h (incluya FltKernel.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Consulte también
FSCTL_OPBATCH_ACK_CLOSE_PENDING