Funzione NtLockFile (ntifs.h)

La routine NtLockFile richiede un blocco di intervallo 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. In caso contrario, 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 Signaled.

[in, optional] ApcRoutine

Puntatore a una routine APC fornita dal chiamante eseguita dopo il completamento 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 di 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 di byte-range è esclusivo; in caso contrario, blocco condiviso.

Valore restituito

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

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES
Le risorse insufficienti esistono per concedere il blocco di intervallo byte per il file specificato.
STATUS_LOCK_NOT_GRANTED
Il blocco dell'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, è consigliabile usare il nome "NtLockFile" anziché "ZwLockFile".
 
Per le chiamate dai driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Windows Native System Services 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 Uso di nt e zw versioni delle routine di Servizi di sistema nativo.

Requisiti

   
Client minimo supportato Disponibile a partire da 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

Uso di nt e zw versioni delle routine di Servizi di sistema nativo

ZwUnlockFile