共用方式為


NtGetNotificationResourceManager 函式 (wdm.h)

ZwGetNotificationResourceManager 例程會從指定的資源管理員通知佇列擷取下一個 交易 通知。

語法

__kernel_entry NTSYSCALLAPI NTSTATUS NtGetNotificationResourceManager(
  [in]            HANDLE                    ResourceManagerHandle,
  [out]           PTRANSACTION_NOTIFICATION TransactionNotification,
  [in]            ULONG                     NotificationLength,
  [in]            PLARGE_INTEGER            Timeout,
  [out, optional] PULONG                    ReturnLength,
  [in]            ULONG                     Asynchronous,
  [in, optional]  ULONG_PTR                 AsynchronousContext
);

參數

[in] ResourceManagerHandle

Resource Manager 物件的句柄, 先前呼叫 ZwCreateResourceManager ZwOpenResourceManager取得。 句柄必須具有物件的RESOURCEMANAGER_GET_NOTIFICATION存取權。

[out] TransactionNotification

呼叫端配置的緩衝區指標,可接收所擷取通知的相關信息。 緩衝區必須夠大,才能包含 TRANSACTION_NOTIFICATION 結構加上額外的通知特定自變數。

[in] NotificationLength

TransactionNotification 參數指向的緩衝區長度,以位元組為單位。

[in] Timeout

值的指標,指定相對時間或絕對時間,單位為100奈秒。 此指標是選擇性的,而且可以 NULL

如果指標 NULLZwGetNotificationResourceManager 在交易通知可用之前不會傳回。 如果指定時間值,ZwGetNotificationResourceManager 傳回通知可用時,或是在指定的時間經過之後傳回,無論哪一個是第一個。

負值會指定相對於目前系統時間的時間。 例如,5 秒的相對時間值會導致 ZwGetNotificationResourceManager 在呼叫後逾時 5 秒。

正值指定絕對時間,這實際上與1601年1月1日00:00相對。 如果指定了絕對時間值,作系統會將絕對時間值新增至代表 1601 年 1 月 1 日 00:00 的時間值。

如果呼叫端指定零值(而不是 NULL 指標),ZwGetNotificationResourceManager 會立即傳回通知,無論通知是否可用。

[out, optional] ReturnLength

變數的選擇性指標。 如果這個指標不是 NULL,而且如果 NotificationLeng th 參數的值太小,ZwGetNotificationResourceManager 提供變數中所需的長度,並傳回STATUS_BUFFER_TOO_SMALL。

[in] Asynchronous

必須是零的 ULONG 值。 ZwGetNotificationResourceManager 不支援異步通知。 使用 TmEnableCallbacks 來啟用異步通知。

[in, optional] AsynchronousContext

ULONG 值的指標。 這個指標必須 NULL

傳回值

ZwGetNotificationResourceManager 如果作業成功且有通知可用,就會傳回STATUS_SUCCESS。 否則,此例程可能會傳回下列其中一個值:

傳回碼 描述
STATUS_TIMEOUT
Timeout 指定在通知可供使用之前經過的時間間隔。
STATUS_OBJECT_TYPE_MISMATCH
指定的句柄不是 Resource Manager 物件的句柄。
STATUS_INVALID_HANDLE
物件句柄無效。
STATUS_ACCESS_DENIED
呼叫端沒有資源管理員對象的適當存取權。
STATUS_BUFFER_TOO_SMALL
NotificationLength 參數的值太小。
 

例程可能會 傳回其他NTSTATUS 值。

言論

使用 ZwGetNotificationResourceManager 例程以同步方式取得通知。 使用 TmEnableCallbacks 例程來啟用異步通知。

收到的 TRANSACTION_NOTIFICATION 結構包含資源管理員在呼叫 ZwCreateEnlistment時所指定的登記索引鍵。 您可以使用登記金鑰來識別通知套用的登記。

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

NtGetNotificationResourceManagerZwGetNotificationResourceManager 是相同 Windows 原生系統服務例程的兩個版本。

對於內核模式驅動程式的呼叫,NtXxxZwXxx 版本的 Windows 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxxZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

要求

要求 價值
最低支援的用戶端 適用於 Windows Vista 和更新版本的作系統版本。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL = PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDDIs, PowerIrpDDis

另請參閱

TRANSACTION_NOTIFICATION

TmEnableCallbacks

使用 Nt 和 Zw 版本的原生系統服務例程

ZwCreateEnlistment

ZwCreateResourceManager

ZwOpenResourceManager