Функция 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
Указатель на определяемую пользователем структуру, используемую RM, которая возвращается при отправке уведомления в TRANSACTION_NOTIFICATION структуре. Обычно это используется для связывания частной структуры с данной конкретной транзакцией.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение является дескриптором для перечисления.
Если функция завершается ошибкой, возвращаемое значение INVALID_HANDLE_VALUE. Чтобы получить расширенные сведения об ошибке, вызовите функцию getLastError
Следующий список определяет возможные коды ошибок:
Замечания
Windows Vista: любая попытка заручиться на этапе предварительной подготовки или более поздней версии завершится ошибкой.
Если в маске уведомлений не указано, что вы принимаете запрос фиксации на один этап, KTM всегда выполняет двухфазную операцию фиксации.
При зачислении в транзакции следует учитывать следующие правила уведомлений:
- RM должен всегда запрашивать уведомление об откате.
- Если уведомление о подготовке запросов RM запрашивает, он также должен запрашивать уведомление о фиксации.
- Если RM запрашивает однофазную операцию фиксации, необходимо также указать уведомления о подготовке и фиксации.
- Единственное время, когда RM не требуется запрашивать уведомления о фиксации, заключается в запросе по крайней мере пары уведомлений о подготовке и откате.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
минимальный поддерживаемый сервер | Windows Server 2008 |
целевая платформа | Виндоус |
заголовка | ktmw32.h |
библиотеки |
KtmW32.lib |
DLL | KtmW32.dll |
См. также
Функции диспетчера транзакций ядра