FltPrepareComplete 함수(fltkernel.h)

FltPrepareComplete 루틴은 TRANSACTION_NOTIFY_PREPARE 알림을 승인합니다.

구문

NTSTATUS FLTAPI FltPrepareComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

매개 변수

[in] Instance

호출자에 대한 불투명 instance 포인터입니다.

[in] Transaction

트랜잭션에 대한 불투명 트랜잭션 포인터입니다.

[in, optional] TransactionContext

미니필터 드라이버의 트랜잭션 컨텍스트에 대한 포인터입니다.

반환 값

FltPrepareComplete 은 다음과 같이 STATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_NOT_FOUND
미니필터 드라이버가 트랜잭션에 대한 컨텍스트를 설정하지 않았습니다. 오류 코드입니다.

설명

트랜잭션에 참여하는 미니필터 드라이버는 트랜잭션이 커밋 준비 단계에 들어갈 때 TRANSACTION_NOTIFY_PREPARE 알림을 받을 수 있습니다. 미니필터 드라이버에 알림을 보내기 위해 필터 관리자는 미니필터 드라이버의 TransactionNotificationCallback 루틴을 호출합니다. 미니필터 드라이버는 다음 두 가지 방법 중 하나로 이 알림을 승인합니다.

  • 미니필터 드라이버의 TransactionNotificationCallback 루틴은 필요한 처리를 수행하고 STATUS_SUCCESS 반환합니다. 이 경우 미니필터 드라이버는 FltPrepareComplete를 호출하지 않습니다.
  • 미니필터 드라이버의 TransactionNotificationCallback 루틴은 필요한 모든 처리를 작업자 스레드에 게시하고 STATUS_PENDING 반환합니다. 처리를 비동기적으로 수행한 후 미니필터 드라이버의 작업 루틴은 FltPrepareComplete 를 호출하여 이 처리를 완료했음을 나타내야 합니다. 미니필터 드라이버의 작업 루틴이 FltPrepareComplete를 호출하지 않으면 커널 트랜잭션 관리자가 트랜잭션 준비 작업을 완료할 수 없습니다.
TransactionNotificationCallback 루틴을 등록하기 위해 미니필터 드라이버는 미니필터 드라이버가 FltRegisterFilterRegistration 매개 변수로 전달하는 FLT_REGISTRATION 구조체의 TransactionNotificationCallback 멤버에 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 형식의 루틴 주소를 저장합니다.

트랜잭션에 참여하려면 FltEnlistInTransaction을 호출합니다.

새 트랜잭션 컨텍스트를 할당하려면 FltAllocateContext를 호출합니다.

트랜잭션 컨텍스트를 검색하려면 FltGetTransactionContext를 호출합니다.

트랜잭션 컨텍스트를 삭제하려면 FltDeleteTransactionContext 또는 FltDeleteContext를 호출합니다.

트랜잭션 컨텍스트를 설정하려면 FltSetTransactionContext를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 FltPrepareComplete 루틴은 Windows Vista 이상에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

추가 정보

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrePrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK