Funzione NtCreateResourceManager (wdm.h)
La routine ZwCreateResourceManager crea un oggetto resource manager.
Sintassi
__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
);
Parametri
[out] ResourceManagerHandle
Puntatore a una variabile allocata dal chiamante che riceve un handle per il nuovo oggetto resource manager se la chiamata a ZwCreateResourceManager ha esito positivo.
[in] DesiredAccess
Valore ACCESS_MASK che specifica l'accesso richiesto dal chiamante all'oggetto resource manager. Oltre ai diritti di accesso definiti per tutti i tipi di oggetti (vedere ACCESS_MASK), il chiamante può specificare uno dei flag di accesso seguenti per gli oggetti resource manager:
flag ACCESS_MASK | Consente al chiamante di |
---|---|
RESOURCEMANAGER_ENLIST | Integrazione nelle transazioni (vedere ZwCreateEnlistment). |
RESOURCEMANAGER_GET_NOTIFICATION | Ricevere notifiche sulle transazioni associate a questo gestore risorse (vedere ZwGetNotificationResourceManager). |
RESOURCEMANAGER_REGISTER_PROTOCOL | Non utilizzato. |
RESOURCEMANAGER_QUERY_INFORMATION | Eseguire query sulle informazioni su Resource Manager (vedere ZwQueryInformationResourceManager). |
RESOURCEMANAGER_SET_INFORMATION | Non utilizzato. |
RESOURCEMANAGER_RECOVER | Ripristinare il gestore risorse (vedere ZwRecoverResourceManager). |
RESOURCEMANAGER_COMPLETE_PROPAGATION | Non utilizzato. |
In alternativa, è possibile specificare uno o più flag generici ACCESS_MASK seguenti. I flag STANDARD_RIGHTS_Xxx sono valori di sistema predefiniti usati per applicare la sicurezza agli oggetti di sistema. È anche possibile combinare questi flag generici con flag aggiuntivi della tabella precedente. Nella tabella seguente viene illustrato il modo in cui i diritti di accesso generico corrispondono a diritti di accesso specifici.
Diritto di accesso generico | Set di diritti di accesso specifici |
---|---|
RESOURCEMANAGER_GENERIC_READ | STANDARD_RIGHTS_READ, RESOURCEMANAGER_QUERY_INFORMATION e SYNCHRONIZE |
RESOURCEMANAGER_GENERIC_WRITE | STANDARD_RIGHTS_WRITE, RESOURCEMANAGER_SET_INFORMATION, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_REGISTER_PROTOCOL, RESOURCEMANAGER_COMPLETE_PROPAGATION e SYNCHRONIZE |
RESOURCEMANAGER_GENERIC_EXECUTE | STANDARD_RIGHTS_EXECUTE, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_COMPLETE_PROPAGATION e SYNCHRONIZE |
RESOURCEMANAGER_ALL_ACCESS | STANDARD_RIGHTS_REQUIRED, RESOURCEMANAGER_GENERIC_READ, RESOURCEMANAGER_GENERIC_WRITE e RESOURCEMANAGER_GENERIC_EXECUTE |
[in] TmHandle
Handle per un oggetto gestore transazioni ottenuto da un oggetto precedente a ZwCreateTransactionManager o ZwOpenTransactionManager.
[in] RmGuid
Puntatore a un GUID che KTM userà per identificare il gestore risorse. Se questo puntatore è NULL, KTM genera un GUID.
[in, optional] ObjectAttributes
Puntatore a una struttura OBJECT_ATTRIBUTES che specifica il nome dell'oggetto e altri attributi. Utilizzare la routine InitializeObjectAttributes per inizializzare questa struttura. Se il chiamante non è in esecuzione in un contesto di thread di sistema, deve impostare l'attributo OBJ_KERNEL_HANDLE quando chiama InitializeObjectAttributes. Questo parametro è facoltativo e può essere NULL.
[in, optional] CreateOptions
Flag di creazione di oggetti facoltativi. La tabella seguente contiene i flag disponibili, definiti in Ktmtypes.h.
flag CreateOptions | Significato |
---|---|
RESOURCE_MANAGER_COMMUNICATION | Solo per uso interno. |
RESOURCE_MANAGER_VOLATILE | Il chiamante gestirà le risorse volatili. Sarà non persistente e non eseguirà il ripristino. |
Questo parametro è facoltativo e può essere zero.
[in, optional] Description
Puntatore a una struttura di UNICODE_STRING fornita dal chiamante contenente una stringa con terminazione NULL. La stringa fornisce una descrizione di Resource Manager. KTM archivia una copia della stringa e include la stringa nei messaggi scritti nel flusso di log. La lunghezza massima della stringa è MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH. Questo parametro è facoltativo e può essere NULL.
Valore restituito
ZwCreateResourceManager restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questa routine potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
L'handle che TmHandle specifica non è un handle per un oggetto transazione. |
|
L'handle che TmHandle specifica non è valido. |
|
Il chiamante non dispone dell'accesso appropriato all'oggetto di gestione transazioni specificato. |
|
L'handle specificato TmHandle è chiuso. |
|
Il valore del parametro CreateOptions non è valido o la stringa del parametro description è troppo lunga. |
|
Il parametro CreateOptions non specifica RESOURCE_MANAGER_VOLATILE ma il gestore delle transazioni che TmHandle specifica è volatile. |
|
GUID che ResourceManagerGuid specifica già esistente. |
|
Il valore del parametro desiredAccess non è valido. |
La routine potrebbe restituire altri valori NTSTATUS .
Osservazioni
Un gestore di risorse che chiama ZwCreateResourceManager deve chiamare ZwClose per chiudere l'handle dell'oggetto.
Per altre informazioni su ZwCreateResourceManager, vedere Creating a Resource Manager.
Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni di una routine di Windows Native System Services possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows Vista e versioni successive del sistema operativo. |
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regole di conformità DDI | HwStorPortProhibitedDDIs, PowerIrpDDis |
Vedere anche
ZwGetNotificationResourceManager