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_PARAMETERS per IRP_MJ_FILE_SYSTEM_CONTROL