FltCommitFinalizeComplete 함수(fltkernel.h)
FltCommitFinalizeComplete 루틴은 TRANSACTION_NOTIFY_COMMIT_FINALIZE 알림을 승인합니다.
구문
NTSTATUS FLTAPI FltCommitFinalizeComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
매개 변수
[in] Instance
미니필터 드라이버의 instance 대한 불투명 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] Transaction
미니필터 드라이버가 현재 등록되어 있는 트랜잭션에 대한 불투명 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in, optional] TransactionContext
트랜잭션에 대한 미니필터 드라이버의 컨텍스트에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
반환 값
FltCommitFinalizeComplete 는 다음과 같이 STATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
미니필터 드라이버가 트랜잭션에 대한 컨텍스트를 설정하지 않았습니다. 오류 코드입니다. |
설명
트랜잭션에 참여하는 미니필터 드라이버는 트랜잭션이 완전히 커밋될 때(즉, TxF와 같은 트랜잭션과 연결된 모든 리소스 관리자가 커밋된 경우) TRANSACTION_NOTIFY_COMMIT_FINALIZE 알림을 받을 수 있습니다. 트랜잭션 외부에서 검사를 수행하는 바이러스 백신 미니필터 드라이버의 경우 이 알림 값을 사용하여 드라이버가 파일 검사를 시작해야 하는 시기를 결정할 수 있습니다.
TRANSACTION_NOTIFY_COMMIT_FINALIZE 알림을 미니필터 드라이버에 보내기 위해 필터 관리자는 미니필터 드라이버의 TransactionNotificationCallback 루틴을 호출합니다. 미니필터 드라이버는 다음 두 가지 방법 중 하나로 이 알림을 승인합니다.
- 미니필터 드라이버의 TransactionNotificationCallback 루틴은 필요한 모든 처리를 수행하고 STATUS_SUCCESS 반환합니다. 이 경우 미니필터 드라이버는 FltCommitFinalizeComplete를 호출하지 않습니다.
- 미니필터 드라이버의 TransactionNotificationCallback 루틴은 필요한 모든 처리를 작업자 스레드에 게시하고 STATUS_PENDING 반환합니다. 처리를 비동기적으로 수행한 후 미니필터 드라이버의 작업자 스레드 루틴은 FltCommitFinalizeComplete 를 호출하여 이 처리가 완료되었음을 나타내야 합니다. 미니필터 드라이버의 작업자 스레드 루틴이 FltCommitFinalizeComplete를 호출하지 않으면 특정 시스템 리소스가 유출됩니다.
트랜잭션에 참여하려면 FltEnlistInTransaction을 호출합니다.
새 트랜잭션 컨텍스트를 할당하려면 FltAllocateContext를 호출합니다.
트랜잭션 컨텍스트를 검색하려면 FltGetTransactionContext를 호출합니다.
트랜잭션 컨텍스트를 삭제하려면 FltDeleteTransactionContext 또는 FltDeleteContext를 호출합니다.
트랜잭션 컨텍스트를 설정하려면 FltSetTransactionContext를 호출합니다.
자세한 내용은 트랜잭션 알림을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista SP1(서비스 팩 1) 이상에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | Fltmgr.lib |
IRQL | <= APC_LEVEL |