Freigeben über


FsRtlInitializeFileLock-Funktion (ntifs.h)

Die FsRtlInitializeFileLock-Routine initialisiert eine FILE_LOCK-Struktur.

Syntax

void FsRtlInitializeFileLock(
  [in]           PFILE_LOCK                 FileLock,
  [in, optional] PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
  [in, optional] PUNLOCK_ROUTINE            UnlockRoutine
);

Parameter

[in] FileLock

Zeiger auf eine nicht initialisierte FILE_LOCK-Struktur .

[in, optional] CompleteLockIrpRoutine

Zeiger auf eine PCOMPLETE_LOCK_IRP_ROUTINE typisierte Rückrufroutine, die aufgerufen werden soll, wenn eine IRP_MJ_LOCK_CONTROL Anforderung abgeschlossen ist. Dieser Parameter ist optional und kann NULL sein.

[in, optional] UnlockRoutine

Zeiger auf eine PUNLOCK_ROUTINE typisierte Rückrufroutine, die aufgerufen werden soll, wenn der Bytebereich entsperrt wird. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

Keine

Bemerkungen

FsRtlInitializeFileLock initialisiert eine nicht initialisierte FILE_LOCK-Struktur.

Es ist ein Programmierfehler, FsRtlInitializeFileLock für eine FILE_LOCK-Struktur aufzurufen, die bereits von FsRtlInitializeFileLock oder FltAllocateFileLock initialisiert wurde, es sei denn, die Struktur wurde durch einen nachfolgenden Aufruf von FsRtlUninitializeFileLock aufgehoben.

Nach der Initialisierung kann die FILE_LOCK-Struktur verwendet werden, um einen Bytebereich in einer Datei zu sperren, indem FsRtlProcessFileLock oderFsRtlFastLock aufgerufen wird. FsRtlProcessFileLock verarbeitet Sperr-IRPs. FsRtlFastLock führt Nicht-IRP-Sperren aus.

Wenn die FILE_LOCK-Struktur nicht mehr benötigt wird, kann sie durch Aufrufen von FsRtlUninitializeFileLock aufgehoben werden. Die nicht initialisierte FILE_LOCK-Struktur kann dann zur Wiederverwendung initialisiert werden, indem FsRtlInitializeFileLock aufgerufen wird.

Minifilter müssen FltInitializeFileLock anstelle von FsRtlInitializeFileLock aufrufen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport)

Weitere Informationen

FILE_LOCK

FltInitializeFileLock

FltAllocateFileLock

FsRtlAreThereCurrentFileLocks

FsRtlFastLock

FsRtlProcessFileLock

FsRtlUninitializeFileLock

IRP_MJ_LOCK_CONTROL

IoCompleteRequest

PCOMPLETE_LOCK_IRP_ROUTINE

PUNLOCK_ROUTINE