NtCreateResourceManager 函式 (wdm.h)
ZwCreateResourceManager 例程會建立 資源管理員物件。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtCreateResourceManager(
[out] PHANDLE ResourceManagerHandle,
[in] ACCESS_MASK DesiredAccess,
[in] HANDLE TmHandle,
[in] LPGUID RmGuid,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] ULONG CreateOptions,
[in, optional] PUNICODE_STRING Description
);
參數
[out] ResourceManagerHandle
呼叫端配置變數的指標,如果呼叫 ZwCreateResourceManager 成功,就會接收新資源管理員物件的句柄。
[in] DesiredAccess
ACCESS_MASK 值,指定呼叫端對 Resource Manager 物件的要求存取權。 除了針對各種物件定義的訪問許可權(請參閱 ACCESS_MASK),呼叫者還可以為 Resource Manager 物件指定下列任何訪問許可權旗標:
ACCESS_MASK旗標 | 允許呼叫端 |
---|---|
RESOURCEMANAGER_ENLIST | 在交易中登記 (請參閱 ZwCreateEnlistment)。 |
RESOURCEMANAGER_GET_NOTIFICATION | 接收與此資源管理員相關聯之交易的相關通知(請參閱 ZwGetNotificationResourceManager)。 |
RESOURCEMANAGER_REGISTER_PROTOCOL | 未使用。 |
RESOURCEMANAGER_QUERY_INFORMATION | 查詢資源管理員的相關信息(請參閱 ZwQueryInformationResourceManager)。 |
RESOURCEMANAGER_SET_INFORMATION | 未使用。 |
RESOURCEMANAGER_RECOVER | 復原資源管理員 (請參閱 ZwRecoverResourceManager)。 |
RESOURCEMANAGER_COMPLETE_PROPAGATION | 未使用。 |
或者,您可以指定下列一或多個泛型 ACCESS_MASK 旗標。 (STANDARD_RIGHTS_Xxx 旗標是預先定義的系統值,用來對系統對象強制執行安全性。您也可以將這些泛型旗標與上表的其他旗標結合。 下表顯示一般訪問許可權如何對應至特定訪問許可權。
一般存取權 | 一組特定的訪問許可權 |
---|---|
RESOURCEMANAGER_GENERIC_READ | STANDARD_RIGHTS_READ、RESOURCEMANAGER_QUERY_INFORMATION 和 SYNCHRONIZE |
RESOURCEMANAGER_GENERIC_WRITE | STANDARD_RIGHTS_WRITE、RESOURCEMANAGER_SET_INFORMATION、RESOURCEMANAGER_RECOVER、RESOURCEMANAGER_ENLIST、RESOURCEMANAGER_GET_NOTIFICATION、RESOURCEMANAGER_REGISTER_PROTOCOL、RESOURCEMANAGER_COMPLETE_PROPAGATION和 SYNCHRONIZE |
RESOURCEMANAGER_GENERIC_EXECUTE | STANDARD_RIGHTS_EXECUTE、RESOURCEMANAGER_RECOVER、RESOURCEMANAGER_ENLIST、RESOURCEMANAGER_GET_NOTIFICATION、RESOURCEMANAGER_COMPLETE_PROPAGATION 和 SYNCHRONIZE |
RESOURCEMANAGER_ALL_ACCESS | STANDARD_RIGHTS_REQUIRED、RESOURCEMANAGER_GENERIC_READ、RESOURCEMANAGER_GENERIC_WRITE 和 RESOURCEMANAGER_GENERIC_EXECUTE |
[in] TmHandle
交易管理員物件的句柄, 先前 ZwCreateTransactionManager 或 ZwOpenTransactionManager取得。
[in] RmGuid
KTM 將用來識別資源管理員之 GUID 的指標。 如果此指標 NULL,KTM 會產生 GUID。
[in, optional] ObjectAttributes
指定物件名稱和其他屬性之 OBJECT_ATTRIBUTES 結構的指標。 使用 InitializeObjectAttributes 例程來初始化這個結構。 如果呼叫端未在系統線程內容中執行,則呼叫 InitializeObjectAttributes時,它必須設定OBJ_KERNEL_HANDLE屬性。 這個參數是選擇性的,而且可以 NULL。
[in, optional] CreateOptions
選擇性物件建立旗標。 下表包含可在 Ktmtypes.h 中定義的可用旗標。
CreateOptions 旗標 | 意義 |
---|---|
RESOURCE_MANAGER_COMMUNICATION | 僅供內部使用。 |
RESOURCE_MANAGER_VOLATILE | 呼叫端會管理揮發性資源。 這將是非持續性的,而且不會執行復原。 |
這個參數是選擇性的,而且可以是零。
[in, optional] Description
包含 NULL 終止字串之呼叫端 UNICODE_STRING 結構的指標。 字串提供資源管理員的描述。 KTM 會儲存字串的複本,並將字串包含在寫入記錄數據流的訊息中。 字串長度上限為 MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH。 這個參數是選擇性的,而且可以 NULL。
傳回值
如果作業成功,ZwCreateResourceManager 會傳回STATUS_SUCCESS。 否則,此例程可能會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
|
TmHandle 指定的句柄不是交易物件的句柄。 |
|
TmHandle 指定的句柄無效。 |
|
呼叫端沒有指定之交易管理員對象的適當存取權。 |
|
TmHandle 指定的句柄已關閉。 |
|
CreateOptions 參數的值無效,或 Description 參數的字串太長。 |
|
CreateOptions 參數不會指定 RESOURCE_MANAGER_VOLATILE,但tmHandle 指定 交易管理員是揮發性的。 |
|
ResourceManagerGuid 指定的 GUID 已經存在。 |
|
DesiredAccess 參數的值無效。 |
例程可能會 傳回其他NTSTATUS 值。
言論
呼叫 ZwCreateResourceManager 的資源管理員最終必須呼叫 ZwClose 關閉物件句柄。
如需 ZwCreateResourceManager的詳細資訊,請參閱 建立 Resource Manager。
對於內核模式驅動程式的呼叫,NtXxx 和 ZwXxx 版本的 Windows 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxx 與 ZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 和更新版本的作系統版本。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs, PowerIrpDDis |
另請參閱
ZwGetNotificationResourceManager