FltPrePareComplete 함수(fltkernel.h)

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

구문

NTSTATUS FLTAPI FltPrePrepareComplete(
  [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_PREPREPARE 알림을 받을 수 있습니다. 미니필터 드라이버에 알림을 보내기 위해 필터 관리자는 미니필터 드라이버의 TransactionNotificationCallback 루틴을 호출합니다. 미니필터 드라이버는 다음 두 가지 방법 중 하나로 이 알림을 승인합니다.

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

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

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

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

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

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

요구 사항

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

추가 정보

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK