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