Функция 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 не требуется запрашивать уведомления о фиксации, является запрос по крайней мере пары уведомлений о подготовке и откате.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | ktmw32.h |
Библиотека | KtmW32.lib |
DLL | KtmW32.dll |