Condividi tramite


codice di controllo FSCTL_OPLOCK_BREAK_NOTIFY

Il codice di controllo FSCTL_OPLOCK_BREAK_NOTIFY consente all'applicazione chiamante di attendere il completamento di un'interruzione di blocco opportunistico (oplock).

Questa operazione è utile solo per un'interruzione di blocco avviata già all'apertura dell'handle del chiamante. L'handle deve essere stato aperto con FILE_COMPLETE_IF_OPLOCKED. Questa operazione è senza significato se è attualmente presente un oplock e l'interruzione di oplock non è stata avviata.

Per elaborare questo codice di controllo, un minifilter chiama FltOplockFsctrl con i parametri seguenti. Un file system o un driver di filtro legacy chiama FsRtlOplockFsctrl.

Per altre informazioni sul blocco opportunistico e sul codice di controllo FSCTL_OPLOCK_BREAK_NOTIFY, vedere la documentazione Microsoft Windows SDK.

Parametri

  • Oplock: puntatore dell'oggetto oplock opaco per il file.

  • CallbackData: solo FltOplockFsctrl . Struttura dei dati di callback (FLT_CALLBACK_DATA) per una richiesta IRP_MJ_FILE_SYSTEM_CONTROL. Il parametro FsControlCode per l'operazione deve essere FSCTL_OPLOCK_BREAK_NOTIFY.

  • Irp: solo FsRtlOplockFsctrl . IRP per una richiesta IRP_MJ_FILE_SYSTEM_CONTROL IRP_MJ_FILE_SYSTEM_CONTROL. Il parametro FsControlCode per l'operazione deve essere FSCTL_OPLOCK_BREAK_NOTIFY.

  • OpenCount: non usato con questa operazione; impostato su zero.

Blocco dello stato

FltOplockFsctrl restituisce FLT_PREOP_PENDING se l'interruzione di oplock è in corso e l'IRP verrà completato al termine dell'interruzione di oplock. In questo caso, l'IRP può essere completato con STATUS_SUCCESS o STATUS_CANCELLED. In caso contrario, FltOplockFsctrl restituisce FLT_PREOP_COMPLETE.

FsRtlOplockFsctrl restituisce uno dei valori NTSTATUS seguenti per questa operazione:

Codice Significato
STATUS_SUCCESS Nessun oplock è stato mantenuto da questo handle o viene mantenuto un oplock e l'interruzione di oplock non è stata avviata.
STATUS_INVALID_OPLOCK_PROTOCOL L'IRP è stato annullato prima del completamento dell'operazione di FSCTL_OPLOCK_BREAK_NOTIFY.
STATUS_PENDING L'interruzione di oplock è in corso. L'IRP verrà completato al termine dell'interruzione di oplock. L'IRP può essere completato con STATUS_SUCCESS o STATUS_CANCELLED. Si tratta di un codice di operazione riuscita.

Requisiti

Tipo di requisito Requisito
Intestazione Ntifs.h (include Ntifs.h o Fltkernel.h)

Vedi anche

FLT_CALLBACK_DATA

FLT_PARAMETERS

FLT_PARAMETERS per IRP_MJ_FILE_SYSTEM_CONTROL

FltOplockFsctrl

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL