NtLockFile-Funktion (ntifs.h)
Die NtLockFile-Routine fordert eine Bytebereichssperre für die angegebene Datei an.
Syntax
__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
);
Parameter
[in] FileHandle
Ein Handle für die Datei, für die eine Bytebereichssperre angefordert wird.
[in, optional] Event
Ein Handle für ein vom Aufrufer erstelltes Ereignis. Wenn nicht NULL, wird der Aufrufer in einen Wartezustand versetzt, bis der Vorgang erfolgreich ist. Zu diesem Zeitpunkt wird das Ereignis in den Signalzustand versetzt.
[in, optional] ApcRoutine
Ein Zeiger auf eine vom Aufrufer bereitgestellte APC-Routine, die nach Abschluss des Vorgangs ausgeführt wird. Kann NULL sein.
[in, optional] ApcContext
Ein Zeiger auf einen vom Aufrufer angegebenen Kontext für die APC-Routine. Dieser Wert wird bei der Ausführung an die APC-Routine übergeben. Kann NULL sein.
[out] IoStatusBlock
Ein Zeiger auf eine IO_STATUS_BLOCK-Struktur, die die endgültige status enthält.
[in] ByteOffset
Ein Zeiger auf eine Variable, die den Anfangsbyteoffset des zu sperrenden Bereichs angibt.
[in] Length
Ein Zeiger auf eine Variable, die die Länge des zu sperrenden Bereichs in Byte angibt.
[in] Key
Ein vom Aufrufer zugewiesener Wert, der zum Beschreiben von Gruppen verwandter Sperren verwendet wird. Dieser Wert sollte auf 0 (null) festgelegt werden.
[in] FailImmediately
Wenn TRUE, geben Sie sofort zurück, wenn die Datei nicht gesperrt werden kann. Wenn FALSE, warten Sie, bis die Sperranforderung erteilt wurde.
[in] ExclusiveLock
Wenn TRUE, ist die Bytebereichssperre exklusiv; andernfalls freigegebene Sperre.
Rückgabewert
Die NtLockFile-Routine gibt STATUS_SUCCESS oder einen entsprechenden Fehlerwert NTSTATUS zurück. Mögliche NTSTATUS-Werte sind:
Rückgabecode | Beschreibung |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Es sind nicht genügend Ressourcen vorhanden, um die Bytebereichssperre für die angegebene Datei zu gewähren. |
STATUS_LOCK_NOT_GRANTED | Die Bytebereichssperre wurde für die angegebene Datei nicht gewährt. |
Hinweise
Aufrufer von NtLockFile müssen unter IRQL = PASSIVE_LEVEL und mit aktivierten speziellen Kernel-APCs** ausgeführt werden.
Hinweis
Wenn der Aufruf der NtLockFile-Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtLockFile" anstelle von "ZwLockFile" verwenden.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen**.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 |
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h, FltKernel.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (siehe Abschnitt "Hinweise") |
DDI-Complianceregeln | HwStorPortProhibitedDIs, PowerIrpDDis |