Share via


FSCTL_REQUEST_OPLOCK codice di controllo

Il codice di controllo FSCTL_REQUEST_OPLOCK richiede un blocco opportunistico (oplock) in un file o riconosce che si è verificata un'interruzione di oplock.

Per altre informazioni sui blocchi opportunistici, vedere Blocchi opportunistici nella documentazione di Windows Desktop. Per altre informazioni sui controlli OPLOCK in modalità utente, vedere Codici di controllo di gestione file nella documentazione di Windows Desktop.

Per elaborare questo codice di controllo, un file system o un driver di filtro chiama FsRtlOplockFsctrlEx con i parametri seguenti.

Parametri

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

  • Irp: puntatore all'IRP per una richiesta IRP_MJ_FILE_SYSTEM_CONTROL FSCTL. Il parametro FsControlCode per l'operazione deve essere FSCTL_REQUEST_OPLOCK.

  • OpenCount: numero di handle utente per il file se la richiesta è per un oplock esclusivo. Se la richiesta è per un oplock che può essere condiviso, OpenCount è zero se nel file non esistono blocchi byte-range. In caso contrario, OpenCount è diverso da zero. Il chiamante può chiamare la routine FsRtlOplockIsSharedRequest in IRP per determinare se la richiesta è per un oplock che può essere condiviso.

  • Flag: maschera di bit per le operazioni di oplock associate. Un file system o un driver di filtro imposta bit per specificare il comportamento di FsRtlOplockFsctrlEx. Il parametro Flags include le opzioni seguenti:

    Valore Significato
    OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) Specifica che il file system ha verificato che tutte le chiavi di blocco opportunistiche corrispondano a qualsiasi handle attualmente aperto. Specificando questo flag, il pacchetto oplock può concedere un oplock di livello RW o RWH quando esiste più di un handle aperto al file. Per altre informazioni sui tipi di oplock, vedere Panoramica.

Blocco dello stato

FsRtlOplockFsctrlEx restituisce uno dei valori NTSTATUS seguenti per questa operazione:

Codice Significato
STATUS_PENDING Il blocco è stato concesso. Si tratta di un codice riuscito.
STATUS_CANCELLED L'IRP è stato annullato prima del completamento dell'operazione di FSCTL_REQUEST_OPLOCK. Si tratta di un codice di errore.
STATUS_OPLOCK_NOT_GRANTED Impossibile concedere il blocco. Si tratta di un codice di errore.

Requisiti

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

Vedi anche

FsRtlOplockFsctrlEx

FsRtlOplockIsSharedRequest

IRP_MJ_FILE_SYSTEM_CONTROL