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 |