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 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 ZwLockFile restituisce STATUS_SUCCESS o un valore NTSTATUS di errore appropriato, ad esempio uno dei seguenti.

Codice di errore 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 ZwLockFile devono essere in esecuzione in IRQL = PASSIVE_LEVEL e con API kernel speciali abilitate.

Nota

Se la chiamata alla funzione ZwLockFile 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 .For more information about the Nt Xxx 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(storport), PowerIrpDDis(wdm)

Vedi anche

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema

ZwUnlockFile