Macro FsRtlCheckOplock (rxprocs.h)
La routine FsRtlCheckOplock sincronizza l'IRP per un'operazione di I/O di file con lo stato di blocco opportunistico (oplock) corrente del file.
Sintassi
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
Parametri
A1
Puntatore di blocco opportunistico opaco per il file. Questo puntatore deve essere stato inizializzato da una chiamata precedente a FsRtlInitializeOplock.
A2
Puntatore all'IRP per l'operazione di I/O.
A3
Puntatore alle informazioni sul contesto definite dal chiamante da passare alle routine di callback a cui puntano i parametri CompletionRoutine e PostIrpRoutine .
A4
Puntatore a una routine di callback fornita dal chiamante. Se è in corso un'interruzione di blocco opportunistica, questa routine viene chiamata al completamento dell'interruzione. Questo parametro è facoltativo e può essere NULL. Se è NULL, il chiamante viene inserito in uno stato di attesa fino al completamento dell'interruzione di blocco opportunistica.
Questa routine viene dichiarata come segue:
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
Questa routine presenta i parametri seguenti:
- Contesto
- Irp
Puntatore alle informazioni di contesto passato nel parametro Context a FsRtlCheckOplock.
Puntatore all'IRP per l'operazione di I/O.
A5
Puntatore a una routine di callback fornita dal chiamante da chiamare se l'operazione di I/O viene registrata in una coda di lavoro. Questo parametro è facoltativo e può essere NULL.
Questa routine viene dichiarata come segue:
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
- Contesto
- Irp
Puntatore alle informazioni di contesto passato nel parametro Context a FsRtlCheckOplock.
Puntatore all'IRP per l'operazione di I/O.
Valore restituito
nessuno
Osservazioni
FsRtlCheckOplock sincronizza l'IRP per un'operazione di I/O con lo stato di blocco opportunistico corrente di un file in base alle condizioni seguenti:
- Se l'operazione di I/O causerà l'interruzione del blocco opportunistico, viene avviata l'interruzione di blocco opportunistica.
- Se l'operazione di I/O non può continuare fino al completamento dell'interruzione di blocco opportunistica, FsRtlCheckOplock restituisce STATUS_PENDING e chiama la routine di callback a cui punta il parametro 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
Per informazioni dettagliate sui blocchi opportunistici, vedere la documentazione di Microsoft Windows SDK.
I minifiltri devono chiamare FltCheckOplock anziché FsRtlCheckOplock.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Questa routine è disponibile in Microsoft Windows 2000 e versioni successive dei sistemi operativi Windows. |
Piattaforma di destinazione | Universale |
Intestazione | rxprocs.h (include FltKernel.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Vedi anche
FSCTL_OPBATCH_ACK_CLOSE_PENDING