Condividi tramite


FSCTL_OPBATCH_ACK_CLOSE_PENDING codice di controllo

Il codice di controllo FSCTL_OPBATCH_ACK_CLOSE_PENDING risponde alla notifica che un blocco opportunistico (livello 1, batch o filtro) esclusivo (oplock) in un file è stato interrotto. Un'applicazione client invia questo codice di controllo per indicare che riconosce l'interruzione di oplock e sta per chiudere l'handle di file.

Per un'interruzione di blocco batch o filtro, il chiamante deve chiudere il relativo handle di file dopo l'invio di questo codice di controllo. In caso contrario, il sistema blocca l'attesa della chiusura dell'handle file.

Questo codice di controllo non deve essere usato con gli oplock di livello 1. Tuttavia, per un'interruzione di blocco di livello 1, il sistema considera questo codice di controllo come un riconoscimento completo dell'interruzione e il chiamante non è necessario chiudere l'handle di file.

Questo codice di controllo viene usato raramente. Quando un'applicazione client riceve una notifica di un'interruzione di oplock per un file e chiude il relativo handle per il file, il sistema considera la chiusura dell'handle file come riconoscimento completo dell'interruzione di oplock. Pertanto, non è mai necessario inviare questo codice di controllo.

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_OPBATCH_ACK_CLOSE_PENDING, vedere la documentazione di Microsoft Windows SDK.

Parametri

  • Oplock: puntatore a oggetti oplock opaco per il file.

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

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

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

Blocco dello stato

FltOplockFsctrl restituisce sempre FLT_PREOP_COMPLETE per questa operazione.

FsRtlOplockFsctrl restituisce uno dei valori NTSTATUS seguenti per questa operazione:

Codice Significato
STATUS_SUCCESS Il blocco mantenuto da questo handle è stato nel processo di interruzione.
STATUS_INVALID_OPLOCK_PROTOCOL Nessun blocco è stato mantenuto da questo handle o l'interruzione di oplock non è attualmente in corso. Si tratta di un codice di errore.

Requisiti

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

Vedi anche

FLT_CALLBACK_DATA

FLT_PARAMETERS per IRP_MJ_FILE_SYSTEM_CONTROL

FltOplockFsctrl

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL