Condividi tramite


Funzione ZwLockFile (ntifs.h)

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

Sintassi

NTSYSAPI NTSTATUS ZwLockFile(
  [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 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 intervallo di byte è esclusivo; in caso contrario, blocco condiviso.

Valore restituito

La routine ZwLockFile restituisce STATUS_SUCCESS o un valore NTSTATUS di errore appropriato, ad esempio uno dei seguenti.

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

Osservazioni

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

Nota

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

Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni 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 Using Nt and Zw Versions of the Native System Services Routines.

Fabbisogno

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(storport), PowerIrpDDis(wdm)

Vedere anche

uso di versioni Nt e Zw delle routine di Servizi di sistema nativi

ZwUnlockFile