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