Condividi tramite


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
STATUS_OBJECT_TYPE_MISMATCH
L'handle che TmHandle specifica non è un handle per un oggetto transazione.
STATUS_INVALID_HANDLE
L'handle che TmHandle specifica non è valido.
STATUS_ACCESS_DENIED
Il chiamante non dispone dell'accesso appropriato all'oggetto di gestione transazioni specificato.
STATUS_TRANSACTION_OBJECT_EXPIRED
L'handle specificato TmHandle è chiuso.
STATUS_INVALID_PARAMETER
Il valore del parametro CreateOptions non è valido o la stringa del parametro description è troppo lunga.
STATUS_TM_VOLATILE
Il parametro CreateOptions non specifica RESOURCE_MANAGER_VOLATILE ma il gestore delle transazioni che TmHandle specifica è volatile.
STATUS_OBJECT_NAME_COLLISION
GUID che ResourceManagerGuid specifica già esistente.
STATUS_ACCESS_DENIED
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

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

ZwClose

ZwCreateEnlistment

ZwCreateTransactionManager

ZwGetNotificationResourceManager

ZwOpenResourceManager

ZwOpenTransactionManager

ZwQueryInformationResourceManager

ZwRecoverResourceManager