다음을 통해 공유


FltProcessFileLock 함수(fltkernel.h)

FltProcessFileLock은 일상적인 프로세스를 파일 잠금 작업을 완료합니다.

통사론

FLT_PREOP_CALLBACK_STATUS FLTAPI FltProcessFileLock(
  [in]           PFILE_LOCK         FileLock,
  [in]           PFLT_CALLBACK_DATA CallbackData,
  [in, optional] PVOID              Context
);

매개 변수

[in] FileLock

파일의 FILE_LOCK 구조체에 대한 포인터입니다. 이 구조체는 FltAllocateFileLock 또는 fltInitializeFileLock이전 호출에 의해 초기화되어야 합니다.

[in] CallbackData

IRP_MJ_LOCK_CONTROL 작업의 콜백 데이터(FLT_CALLBACK_DATA) 구조체에 대한 포인터입니다.

[in, optional] Context

작업을 완료할 때 사용할 컨텍스트 포인터입니다. 이 컨텍스트 포인터는 CompleteLockCallbackDataRoutine 전달되고 UnlockRoutineFltAllocateFileLock대한 이전 호출에서 등록한 미니 필터 드라이버의 콜백 루틴이 전달됩니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

fltProcessFileLock 다음 중 하나를 반환합니다.

반환 코드 묘사
FLT_PREOP_COMPLETE 필터 관리자는 이제 완료할 수 있는 CallbackData사용하여 수행됩니다.
FLT_PREOP_DISALLOW_FASTIO CallbackData 빠른 I/O 작업을 나타내며 스택의 미니 필터 드라이버는 이 작업에 사용할 수 있는 빠른 I/O를 허용하지 않았습니다. 필터 관리자는 작업을 허용하지 않는 미니 필터 드라이버에 작업을 보내지 않습니다. 이 경우 필터 관리자는 빠른 I/O 작업을 허용하지 않는 미니 필터 드라이버 위에 있는 미니 필터 드라이버의 사후 콜백 루틴(및 CompleteLockCallbackDataRoutine 콜백)만 호출합니다.
FLT_PREOP_PENDING 잠금 작업이 보류되었습니다.

발언

FltProcessFileLock 파일 잠금(IRP_MJ_LOCK_CONTROL) 작업을 처리합니다. 잠금 작업은 빠른 I/O 또는 IRP 기반 작업일 수 있습니다.

잠금 해제 작업의 경우 필터 관리자는 FltAllocateFileLock대한 이전 호출에서 호출자가 FILE_LOCK 구조에 등록한 UnlockRoutine 콜백 루틴을 호출합니다.

잠금 작업이 완료되면 필터 관리자는 FltAllocateFileLock에 대한 이전 호출에서 호출자가 FILE_LOCK 구조에 등록한 CompleteLockCallbackDataRoutine(PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE) 완료 콜백 루틴을호출합니다.

FltProcessFileLock 전달된 CallbackData 매개 변수가 빠른 I/O 작업을 나타내면 FltAllocateFileLock 루틴의 CompleteLockCallbackDataRoutine 매개 변수에 지정된 콜백이 호출되지 않습니다. CallbackData IRP이고 CompleteLockCallbackDataRoutine NULL이 아닌 경우에만 콜백 루틴이 호출됩니다.

CallbackData 빠른 I/O 작업을 나타내는지 여부를 확인하려면 FLT_IS_FASTIO_OPERATION 매크로를 사용합니다.

새 파일 잠금 구조를 할당하고 초기화하려면 FltAllocateFileLock호출합니다.

초기화된 FILE_LOCK 구조를 해제하려면 FltFreeFileLock호출합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows XP with SP2
지원되는 최소 서버 Windows Server 2003 with SP1
대상 플랫폼 보편적
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

참고 항목

FILE_LOCK

FLT_CALLBACK_DATA

FLT_IS_FASTIO_OPERATION

FltAllocateFileLock

FltCheckLockForReadAccess

FltCheckLockForWriteAccess

FltFreeFileLock

FltInitializeFileLock

FltUninitializeFileLock

FsRtlProcessFileLock

IRP_MJ_LOCK_CONTROL

PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE

[PUNLOCK_ROUTINE](.. /ntifs/nc-ntifs-punlock_routine.md