Funzione NtLockFile (ntifs.h)

La routine NtLockFile richiede un blocco di intervallo di byte per il file specificato.

Sintassi

__kernel_entry NTSYSCALLAPI NTSTATUS NtLockFile(
  [in]           HANDLE           FileHandle,
  [in, optional] HANDLE           Event,
  [in, optional] PIO_APC_ROUTINE  ApcRoutine,
  [in, optional] PVOID            ApcContext,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [in]           PLARGE_INTEGER   ByteOffset,
  [in]           PLARGE_INTEGER   Length,
  [in]           ULONG            Key,
  [in]           BOOLEAN          FailImmediately,
  [in]           BOOLEAN          ExclusiveLock
);

Parametri

[in] FileHandle

Handle per il file in cui viene richiesto un blocco di intervallo di byte.

[in, optional] Event

Handle per un evento creato dal chiamante. Se non è NULL, il chiamante viene inserito in uno stato di attesa fino a quando l'operazione non riesce, al momento in cui l'evento viene impostato nello stato Segnalato.

[in, optional] ApcRoutine

Puntatore a una routine APC fornita dal chiamante eseguita al termine dell'operazione. Può essere NULL.

[in, optional] ApcContext

Puntatore a un contesto specificato dal chiamante per la routine APC. Questo valore viene passato alla routine APC quando viene eseguita. Può essere NULL.

[out] IoStatusBlock

Puntatore a una struttura IO_STATUS_BLOCK che contiene lo stato finale.

[in] ByteOffset

Puntatore a una variabile che specifica l'offset dei byte iniziale dell'intervallo da bloccare.

[in] Length

Puntatore a una variabile che specifica la lunghezza in byte dell'intervallo da bloccare.

[in] Key

Valore assegnato dal chiamante usato per descrivere i gruppi di blocchi correlati. Questo valore deve essere impostato su zero.

[in] FailImmediately

Se TRUE, restituisce immediatamente se il file non può essere bloccato. Se FALSE, attendere che venga concessa la richiesta di blocco.

[in] ExclusiveLock

Se TRUE, il blocco intervallo di byte è esclusivo; in caso contrario, blocco condiviso.

Valore restituito

La routine NtLockFile restituisce STATUS_SUCCESS o un valore NTSTATUS di errore appropriato. I possibili valori NTSTATUS includono quanto segue:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES Risorse insufficienti per concedere il blocco dell'intervallo di byte per il file specificato.
STATUS_LOCK_NOT_GRANTED Il blocco di intervallo di byte non è stato concesso per il file specificato.

Commenti

I chiamanti di NtLockFile devono essere in esecuzione in IRQL = PASSIVE_LEVEL e con API kernel speciali abilitate**.

Nota

Se la chiamata alla funzione NtLockFile si verifica in modalità utente, è necessario usare il nome "NtLockFile" anziché "ZwLockFile".

Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines**.

Requisiti

Requisito Valore
Client minimo supportato Windows 7
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h, FltKernel.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)
Regole di conformità DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Vedi anche

ZwUnlockFile