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

선택적 인리스트먼트 지침입니다.

의미
ENLISTMENT_SUPERIOR
1
우수한 트랜잭션 관리자로 등록합니다.

[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

CommitEnlistment

커널 트랜잭션 관리자 함수

NOTIFICATION_MASK

OpenEnlistment

TRANSACTION_NOTIFICATION