Freigeben über


ZwLockFile-Funktion (ntifs.h)

Die ZwLockFile-Routine fordert eine Bytebereichssperre für die angegebene Datei an.

Syntax

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
);

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, und 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 an die APC-Routine übergeben, wenn er ausgeführt wird. 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, der 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 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 wird.

[in] ExclusiveLock

Bei TRUE ist die Bytebereichssperre exklusiv; andernfalls freigegebene Sperre.

Rückgabewert

Die ZwLockFile-Routine gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Fehlerwert zurück, z. B. einen der folgenden.

Fehlercode 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 ZwLockFile müssen unter IRQL = PASSIVE_LEVEL und mit aktivierten speziellen Kernel-APCs ausgeführt werden.

Hinweis

Wenn der Aufruf der ZwLockFile-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, da 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 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwUnlockFile