PFLT_TRANSACTION_NOTIFICATION_CALLBACK 콜백 함수(fltkernel.h)
미니필터 드라이버는 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 형식의 루틴을 TransactionNotificationCallback 루틴으로 등록할 수 있습니다.
구문
PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;
NTSTATUS PfltTransactionNotificationCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] PFLT_CONTEXT TransactionContext,
[in] ULONG NotificationMask
)
{...}
매개 변수
[in] FltObjects
현재 작업과 관련된 개체에 대한 불투명 포인터를 포함하는 FLT_RELATED_OBJECTS 구조체에 대한 포인터입니다.
[in] TransactionContext
미니필터 드라이버의 트랜잭션 컨텍스트에 대한 포인터입니다.
[in] NotificationMask
필터 관리자가 미니필터 드라이버에 보내는 알림 유형을 다음 값 중 하나로 지정합니다.
값 | 의미 |
---|---|
TRANSACTION_NOTIFY_COMMIT | 이 알림은 트랜잭션이 커밋될 때 전송됩니다. |
TRANSACTION_NOTIFY_COMMIT_FINALIZE | Windows Vista SP1 이상에서는 트랜잭션이 완전히 커밋될 때(즉, TxF와 같은 트랜잭션과 연결된 모든 리소스 관리자가 커밋된 경우) 이 알림이 전송됩니다. |
TRANSACTION_NOTIFY_PREPARE | 이 알림은 트랜잭션이 커밋 준비 단계에 들어갈 때 전송됩니다. |
TRANSACTION_NOTIFY_PREPREPARE | 이 알림은 트랜잭션이 커밋 준비 전 단계에 들어갈 때 전송됩니다. |
TRANSACTION_NOTIFY_ROLLBACK | 이 알림은 트랜잭션이 롤백되거나 중단될 때 전송됩니다. |
반환 값
PFLT_TRANSACTION_NOTIFICATION_CALLBACK 루틴은 다음 NTSTATUS 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
이 상태 값을 반환하면 미니필터 드라이버가 트랜잭션으로 완료되었음을 나타냅니다. 성공 코드입니다. |
|
이 상태 값을 반환하면 미니필터 드라이버가 트랜잭션으로 아직 완료되지 않음을 나타냅니다. 성공 코드입니다. |
설명
미니필터 드라이버가 DriverEntry 루틴에서 FltRegisterFilter를 호출하여 자신을 등록하는 경우 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 형식의 루틴을 미니필터의 TransactionNotificationCallback 루틴으로 등록할 수 있습니다.
TransactionNotificationCallback 루틴을 등록하기 위해 미니필터 드라이버는 미니필터 드라이버가 FltRegisterFilter의 Registration 매개 변수로 전달하는 FLT_REGISTRATION 구조체의 TransactionNotificationCallback 멤버에 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 형식의 루틴 주소를 저장합니다.
필터 관리자는 이 루틴을 호출하여 미니필터 드라이버가 참여하는 트랜잭션의 상태 대해 미니필터 드라이버에 알립니다.
미니필터 드라이버가 이 콜백 루틴에서 STATUS_PENDING 반환하는 경우 결국 다음 루틴 중 하나를 호출하여 알림 처리를 완료했음을 나타내야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | PFLT_TRANSACTION_NOTIFICATION_CALLBACK 루틴은 Windows Vista 이상에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | fltkernel.h(Fltkernel.h 포함) |
IRQL | PASSIVE_LEVEL |