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。
如果指標 NULL,ZwGetNotificationResourceManager 在交易通知可用之前不會傳回。 如果指定時間值,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。 否則,此例程可能會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
|
Timeout 指定在通知可供使用之前經過的時間間隔。 |
|
指定的句柄不是 Resource Manager 物件的句柄。 |
|
物件句柄無效。 |
|
呼叫端沒有資源管理員對象的適當存取權。 |
|
NotificationLength 參數的值太小。 |
例程可能會 傳回其他NTSTATUS 值。
言論
使用 ZwGetNotificationResourceManager 例程以同步方式取得通知。 使用 TmEnableCallbacks 例程來啟用異步通知。
收到的 TRANSACTION_NOTIFICATION 結構包含資源管理員在呼叫 ZwCreateEnlistment時所指定的登記索引鍵。 您可以使用登記金鑰來識別通知套用的登記。
如需 ZwGetNotificationResourceManager 例程的詳細資訊,請參閱 建立 Resource Manager。
NtGetNotificationResourceManager 和 ZwGetNotificationResourceManager 是相同 Windows 原生系統服務例程的兩個版本。
對於內核模式驅動程式的呼叫,NtXxx 和 ZwXxx 版本的 Windows 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxx 與 ZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 和更新版本的作系統版本。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | = PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs, PowerIrpDDis |