Função NtCreateResourceManager (wdm.h)
A rotina de ZwCreateResourceManager cria um objeto resource manager.
Sintaxe
__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
);
Parâmetros
[out] ResourceManagerHandle
Um ponteiro para uma variável alocada por chamador que recebe um identificador para o novo objeto do gerenciador de recursos se a chamada para ZwCreateResourceManager for bem-sucedida.
[in] DesiredAccess
Um valor ACCESS_MASK que especifica o acesso solicitado do chamador ao objeto do gerenciador de recursos. Além dos direitos de acesso definidos para todos os tipos de objetos (consulte ACCESS_MASK), o chamador pode especificar qualquer um dos seguintes sinalizadores de direito de acesso para objetos do gerenciador de recursos:
sinalizador ACCESS_MASK | Permite que o chamador |
---|---|
RESOURCEMANAGER_ENLIST | Inscrever-se em transações (consulte ZwCreateEnlistment). |
RESOURCEMANAGER_GET_NOTIFICATION | Receba notificações sobre as transações associadas a esse gerenciador de recursos (consulte ZwGetNotificationResourceManager). |
RESOURCEMANAGER_REGISTER_PROTOCOL | Não usado. |
RESOURCEMANAGER_QUERY_INFORMATION | Consultar informações sobre o gerenciador de recursos (consulte ZwQueryInformationResourceManager). |
RESOURCEMANAGER_SET_INFORMATION | Não usado. |
RESOURCEMANAGER_RECOVER | Recuperar o gerenciador de recursos (consulte ZwRecoverResourceManager). |
RESOURCEMANAGER_COMPLETE_PROPAGATION | Não usado. |
Como alternativa, você pode especificar um ou mais dos seguintes sinalizadores de ACCESS_MASK genéricos. (Os sinalizadores STANDARD_RIGHTS_xxx são valores predefinidos do sistema que são usados para impor a segurança em objetos do sistema.) Você também pode combinar esses sinalizadores genéricos com sinalizadores adicionais da tabela anterior. A tabela a seguir mostra como os direitos de acesso genéricos correspondem a direitos de acesso específicos.
Direito de acesso genérico | Conjunto de direitos de acesso específicos |
---|---|
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
Um identificador para um objeto do gerenciador de transações que foi obtido por um todo anterior para ZwCreateTransactionManager ou ZwOpenTransactionManager.
[in] RmGuid
Um ponteiro para um GUID que a KTM usará para identificar o gerenciador de recursos. Se esse ponteiro for NULL, o KTM gerará um GUID.
[in, optional] ObjectAttributes
Um ponteiro para uma estrutura OBJECT_ATTRIBUTES que especifica o nome do objeto e outros atributos. Use a rotina InitializeObjectAttributes para inicializar essa estrutura. Se o chamador não estiver em execução em um contexto de thread do sistema, ele deverá definir o atributo OBJ_KERNEL_HANDLE quando chamar InitializeObjectAttributes. Esse parâmetro é opcional e pode ser NULL.
[in, optional] CreateOptions
Sinalizadores de criação de objeto opcionais. A tabela a seguir contém os sinalizadores disponíveis, que são definidos em Ktmtypes.h.
sinalizador CreateOptions | Significado |
---|---|
RESOURCE_MANAGER_COMMUNICATION | Somente para uso interno. |
RESOURCE_MANAGER_VOLATILE | O chamador gerenciará recursos voláteis. Ele não será persistente e não executará a recuperação. |
Esse parâmetro é opcional e pode ser zero.
[in, optional] Description
Um ponteiro para uma estrutura de UNICODE_STRING fornecida pelo chamador que contém uma cadeia de caracteres terminada por NULL. A cadeia de caracteres fornece uma descrição do gerenciador de recursos. A KTM armazena uma cópia da cadeia de caracteres e inclui a cadeia de caracteres em mensagens que ela grava no fluxo de log. O comprimento máximo da cadeia de caracteres é MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH. Esse parâmetro é opcional e pode ser NULL.
Valor de retorno
ZwCreateResourceManager retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, essa rotina poderá retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
O identificador que especifica TmHandle não é um identificador para um objeto de transação. |
|
O identificador que especifica TmHandle é inválido. |
|
O chamador não tem acesso apropriado ao objeto do gerenciador de transações especificado. |
|
O identificador que especifica TmHandle está fechado. |
|
O valor do parâmetro CreateOptions é inválido ou a descrição do cadeia de caracteres do parâmetro é muito longa. |
|
O parâmetro CreateOptions não especifica RESOURCE_MANAGER_VOLATILE mas o gerenciador de transações que TmHandle especifica é volátil. |
|
O GUID que ResourceManagerGuid especifica já existe. |
|
O valor do parâmetro DesiredAccess é inválido. |
A rotina pode retornar outros valores NTSTATUS .
Observações
Um gerenciador de recursos que chama ZwCreateResourceManager deve eventualmente chamar ZwClose para fechar o identificador de objeto.
Para obter mais informações sobre ZwCreateResourceManager, consulte Criando umdo Resource Manager.
Para chamadas de drivers no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas de serviços do sistema nativo.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Windows Vista e versões posteriores do sistema operacional. |
da Plataforma de Destino | Universal |
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte também
ZwGetNotificationResourceManager