CreateEnlistment 함수(ktmw32.h)
인리스트먼트를 만들고, 초기 상태를 설정하고, 지정된 액세스 권한으로 인리스트먼트에 대한 핸들을 엽니다.
통사론
HANDLE CreateEnlistment(
[in, optional] LPSECURITY_ATTRIBUTES lpEnlistmentAttributes,
[in] HANDLE ResourceManagerHandle,
[in] HANDLE TransactionHandle,
[in] NOTIFICATION_MASK NotificationMask,
[in, optional] DWORD CreateOptions,
[in, optional] PVOID EnlistmentKey
);
매개 변수
[in, optional] lpEnlistmentAttributes
인리스트먼트 관리자의 보안 특성을 포함하는 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. NULL 지정하여 기본 특성을 가져옵니다.
[in] ResourceManagerHandle
등록할 RM(리소스 관리자)에 대한 핸들입니다.
[in] TransactionHandle
RM이 참여하는 트랜잭션에 대한 핸들입니다.
[in] NotificationMask
이 RM이 TransactionHandle 매개 변수에 대해 요청하는 알림입니다. 유효한 값 목록은 NOTIFICATION_MASK참조하세요.
[in, optional] CreateOptions
선택적 인리스트먼트 지침입니다.
값 | 의미 |
---|---|
|
우수한 트랜잭션 관리자로 참여합니다. |
[in, optional] EnlistmentKey
TRANSACTION_NOTIFICATION 구조에서 알림을 보낼 때 반환되는 RM에서 사용하는 사용자 정의 구조체에 대한 포인터입니다. 일반적으로 프라이빗 구조를 이 특정 트랜잭션과 연결하는 데 사용됩니다.
반환 값
함수가 성공하면 반환 값은 인리스트먼트에 대한 핸들입니다.
함수가 실패하면 반환 값이 INVALID_HANDLE_VALUE. 확장 오류 정보를 얻으려면 GetLastError 함수를 호출합니다.
다음 목록에서는 가능한 오류 코드를 식별합니다.
발언
Windows Vista: 사전 준비 단계 이상 동안 등록하려는 시도는 실패합니다.
단일 단계 커밋 요청을 수락하는 알림 마스크 내에서 지정하지 않으면 KTM은 항상 2단계 커밋 작업을 수행합니다.
트랜잭션에 등록할 때 다음 알림 규칙을 염두에 두세요.
- RM은 항상 롤백 알림을 요청해야 합니다.
- RM이 준비 알림을 요청하는 경우 커밋 알림도 요청해야 합니다.
- RM이 단일 단계 커밋 작업을 요청하는 경우 준비 및 커밋 알림도 지정해야 합니다.
- RM이 커밋 알림을 요청하는 데 필요하지 않은 유일한 경우는 적어도 한 쌍의 준비 및 롤백 알림을 요청하는 경우입니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | ktmw32.h |
라이브러리 | KtmW32.lib |
DLL | KtmW32.dll |
참고 항목
CommitComplete
커널 트랜잭션 관리자 함수