Freigeben über


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 dem zeitpunkt, zu dem das Ereignis in den Zustand "Signaled" festgelegt ist.

[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 den endgültigen Status enthält.

[in] ByteOffset

Ein Zeiger auf eine Variable, die den Anfangsbyte-Offset des zu sperrenden Bereichs angibt.

[in] Length

Ein Zeiger auf eine Variable, die die Länge in Byte des zu sperrenden Bereichs angibt.

[in] Key

Ein vom Aufrufer zugewiesener Wert, der verwendet wird, um Gruppen verwandter Sperren zu beschreiben. Dieser Wert sollte auf Null festgelegt werden.

[in] FailImmediately

Wenn TRUE, wird sofort zurückgegeben, 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 geeigneten NTSTATUS-Fehlerwert zurück. Mögliche NTSTATUS-Werte umfassen Folgendes:

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.

Bemerkungen

Aufrufer von NtLockFile- müssen unter IRQL = PASSIVE_LEVEL und mit speziellen Kernel-APCs ausgeführt werden, die**aktiviert sind.

Anmerkung

Wenn der Aufruf der NtLockFile--Funktion im Benutzermodus auftritt, 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 behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines**.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 7
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h, FltKernel.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDIs, PowerIrpDDis

Siehe auch

ZwUnlockFile-