FsRtlInitializeFileLock 함수(ntifs.h)

FsRtlInitializeFileLock 루틴은 FILE_LOCK 구조를 초기화합니다.

구문

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

매개 변수

[in] FileLock

초기화되지 않은 FILE_LOCK 구조체에 대한 포인터입니다.

[in, optional] CompleteLockIrpRoutine

IRP_MJ_LOCK_CONTROL 요청이 완료될 때 호출할 PCOMPLETE_LOCK_IRP_ROUTINE 형식의 콜백 루틴에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

[in, optional] UnlockRoutine

바이트 범위가 잠금 해제될 때 호출할 PUNLOCK_ROUTINE 형식의 콜백 루틴에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

없음

설명

FsRtlInitializeFileLock 은 초기화되지 않은 FILE_LOCK 구조를 초기화합니다.

FsRtlUninitializeFileLock에 대한 후속 호출로 구조가 초기화되지 않은 경우 FsRtlInitializeFileLock 또는 FltAllocateFileLock에 의해 이미 초기화된 FILE_LOCK 구조에 대해 FsRtlInitializeFileLock을 호출하는 것은 프로그래밍 오류입니다.

초기화되면 FILE_LOCK 구조체를 사용하여 FsRtlProcessFileLock 또는FsRtlFastLock을 호출하여 파일의 바이트 범위를 잠글 수 있습니다. FsRtlProcessFileLock 프로세스 잠금 IRP. FsRtlFastLock 은 IRP가 아닌 잠금을 수행합니다.

FILE_LOCK 구조체가 더 이상 필요하지 않은 경우 FsRtlUninitializeFileLock을 호출하여 초기화할 수 있습니다. 그런 다음 FsRtlInitializeFileLock을 호출하여 초기화되지 않은 FILE_LOCK 구조를 다시 사용하도록 초기화할 수 있습니다.

미니필터는 FsRtlInitializeFileLock 대신 FltInitializeFileLock 호출해야 합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport)

추가 정보

FILE_LOCK

FltInitializeFileLock

FltAllocateFileLock

FsRtlAreThereCurrentFileLocks

FsRtlFastLock

FsRtlProcessFileLock

FsRtlUninitializeFileLock

IRP_MJ_LOCK_CONTROL

IoCompleteRequest

PCOMPLETE_LOCK_IRP_ROUTINE

PUNLOCK_ROUTINE