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
작업을 완료할 때 사용할 컨텍스트 포인터입니다. 이 컨텍스트 포인터는 이전 FltAllocateFileLock 호출에서 미니필터 드라이버가 등록한 CompleteLockCallbackDataRoutine 및 UnlockRoutine 콜백 루틴에 전달됩니다. 이 매개 변수는 선택 사항이며 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 콜백 루틴을 호출합니다.
잠금 작업이 완료되면 Filter Manager는 FltAllocateFileLock에 대한 이전 호출에서 호출자가 FILE_LOCK 구조에 등록한 CompleteLockCallbackDataRoutine(PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE) 완료 콜백 루틴을 호출합니다.
FltProcessFileLock에 전달된 CallbackData 매개 변수가 빠른 I/O 작업을 나타내는 경우 FltAllocateFileLock 루틴의 CompleteLockCallbackDataRoutine 매개 변수에 지정된 콜백이 호출되지 않습니다. CallbackData의 I/O 작업이 IRP이고 CompleteLockCallbackDataRoutine이 NULL이 아닌 경우에만 콜백 루틴이 호출됩니다.
CallbackData가 빠른 I/O 작업을 나타내는지 여부를 확인하려면 FLT_IS_FASTIO_OPERATION 매크로를 사용합니다.
새 파일 잠금 구조를 할당하고 초기화하려면 FltAllocateFileLock을 호출합니다.
초기화된 FILE_LOCK 구조를 해제하려면 FltFreeFileLock을 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP SP2 |
지원되는 최소 서버 | Windows Server 2003 SP1 |
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
추가 정보
PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE
[PUNLOCK_ROUTINE] (.. /ntifs/nc-ntifs-punlock_routine.md
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기