共用方式為


PTM_RM_NOTIFICATION回呼函式 (wdm.h)

資源管理員的 ResourceManagerNotification 回呼例程會接收和處理 交易通知。

語法

PTM_RM_NOTIFICATION PtmRmNotification;

NTSTATUS PtmRmNotification(
  [in]      PKENLISTMENT EnlistmentObject,
  [in]      PVOID RMContext,
  [in]      PVOID TransactionContext,
  [in]      ULONG TransactionNotification,
  [in, out] PLARGE_INTEGER TmVirtualClock,
  [in]      ULONG ArgumentLength,
  [in]      PVOID Argument
)
{...}

參數

[in] EnlistmentObject

登記物件的指標ResourceManagerNotification 回呼例程正在收到此物件所代表登記的通知。

[in] RMContext

資源管理員先前針對 TmEnableCallbacks 例程的 RMKey 參數所指定的值。

[in] TransactionContext

資源管理員先前為 ZwCreateEnlistment 例程的 EnlistmentKey 參數所指定的值。

[in] TransactionNotification

Ktmtypes.h 中定義的其中一個TRANSACTION_NOTIFY_XXX 值。 這個值會指定 KTM 傳送給呼叫端的交易通知類型。

[in, out] TmVirtualClock

包含 虛擬時鐘值的位置指標, KTM 準備要傳遞至資源管理員的通知。 如果回呼例程在傳回之前增加此值,KTM 會將虛擬時鐘更新為新的值。 (通常,資源管理員不會修改虛擬時鐘值。

[in] ArgumentLength

Argument 參數所指向之緩衝區的長度,以位元組為單位。 如果緩衝區無法使用,此參數為零。

[in] Argument

包含通知特定自變數之緩衝區的指標。 如果 TransactionNotification 參數指定的通知不需要自變數緩衝區,則此參數 NULL

如需包含其他自變數緩衝區的通知清單,請參閱 TRANSACTION_NOTIFICATION的一節。

傳回值

ResourceManagerNotification 回呼例程必須傳回STATUS_SUCCESS或另一個狀態值,NT_SUCCESS狀態) 等於 TRUE 如果作業成功。

一般而言,如果資源管理員以同步方式服務通知,且STATUS_PENDING以異步方式服務通知,則資源管理員會傳 STATUS_SUCCESS回STATUS_PENDING,但在任一情況下都可以傳回STATUS_PENDING。 不過,資源管理員只能針對回應通知傳回STATUS_PENDING,方法是呼叫其中一個 TmXxxCompleteZwXxxComplete 例程。

換句話說,如果資源管理員必須呼叫其中一個 TmXxxCompleteZwXxxComplete 例程來回應通知, 它可以傳回通知的STATUS_PENDING,稍後呼叫適當的 TmXxxCompleteZwXxxComplete 例程。

如果發生錯誤,回呼例程必須傳回狀態值,NT_SUCCESS(status) 等於 FALSE

言論

若要註冊 ResourceManagerNotification 回呼例程,您的資源管理員必須呼叫 tmEnableCallbacks

請注意,ResourceManagerNotification 回呼例程會接收登錄物件的指標,而不是句柄。 您可以將登記物件指標傳遞至登記物件的 TmXxx 例程

如需 ResourceManagerNotification 回呼例程的詳細資訊,請參閱 建立 Resource Manager

ResourceManagerNotification 回呼例程是在 IRQL = PASSIVE_LEVEL呼叫,而且必須在 IRQL = PASSIVE_LEVEL傳回。

要求

要求 價值
最低支援的用戶端 適用於 Windows Vista 和更新版本的作系統版本。
目標平臺 桌面
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
IRQL PASSIVE_LEVEL (請參閱一節)

另請參閱

TRANSACTION_NOTIFICATION

TmEnableCallbacks

ZwCreateEnlistment

ZwGetNotificationResourceManager