Поделиться через


Функция GetNotificationResourceManagerAsync (ktmw32.h)

Запрашивает и получает асинхронные уведомления для диспетчера ресурсов (RM). Эта функция используется регистром RM для получения уведомлений при изменении состояния транзакции.

Синтаксис

BOOL GetNotificationResourceManagerAsync(
  [in]  HANDLE                    ResourceManagerHandle,
  [out] PTRANSACTION_NOTIFICATION TransactionNotification,
  [in]  ULONG                     TransactionNotificationLength,
  [out] PULONG                    ReturnLength,
  [in]  LPOVERLAPPED              lpOverlapped
);

Параметры

[in] ResourceManagerHandle

Дескриптор для диспетчера ресурсов.

[out] TransactionNotification

Указатель на структуру TRANSACTION_NOTIFICATION , получающую первое доступное уведомление.

[in] TransactionNotificationLength

Размер буфера TransactionNotification в байтах.

[out] ReturnLength

Указатель на переменную, которая получает фактический размер уведомления, полученного параметром TransactionNotification .

[in] lpOverlapped

Указатель на структуру OVERLAPPED , необходимую для асинхронной операции.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция завершается сбоем, возвращаемое значение равно нулю (0). Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError .

В следующем списке указаны возможные коды ошибок:

Комментарии

Все диспетчеры ресурсов должны зарегистрироваться для получения уведомлений TRANSACTION_NOTIFY_PREPREPARE, TRANSACTION_NOTIFY_PREPARE и TRANSACTION_NOTIFY_COMMIT , даже если впоследствии они вызывают ReadOnlyEnlistment , чтобы пометить зачисление как доступное только для чтения. Диспетчеры ресурсов могут поддерживать TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT, но они также должны поддерживать многоэтапную предварительную подготовку, подготовку и фиксацию уведомлений. Список всех уведомлений, которые могут получать диспетчеры ресурсов, см. в разделе TRANSACTION_NOTIFICATION.

Диспетчеры ресурсов (RM) могут захотеть вызывать эту функцию несколько раз, чтобы предоставить несколько буферов для KTM, используемых при доставке уведомлений. Количество вызовов этой функции зависит от нагрузки, которую несет RM.

Эта функция должна вызываться после вызова функции SetResourceManagerCompletionPort .

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header ktmw32.h
Библиотека KtmW32.lib
DLL KtmW32.dll

См. также раздел

CreateEnlistment

Функции диспетчера транзакций ядра

NOTIFICATION_MASK

SetResourceManagerCompletionPort

TRANSACTION_NOTIFICATION

TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT