Compartilhar via


estrutura SI_OBJECT_INFO (aclui.h)

A estrutura SI_OBJECT_INFO é usada pelo método ISecurityInformation::GetObjectInformation para especificar as informações usadas para inicializar o editor de controle de acesso.

Sintaxe

typedef struct _SI_OBJECT_INFO {
  DWORD     dwFlags;
  HINSTANCE hInstance;
  LPWSTR    pszServerName;
  LPWSTR    pszObjectName;
  LPWSTR    pszPageTitle;
  GUID      guidObjectType;
} SI_OBJECT_INFO, *PSI_OBJECT_INFO;

Membros

dwFlags

Um conjunto de sinalizadores de bits que determinam as opções de edição disponíveis para o usuário. Esse membro pode ser uma combinação dos valores a seguir.

Valor Significado
SI_ADVANCED
0x00000010L
Se esse sinalizador estiver definido, o botão Avançado será exibido na página de propriedades de segurança básica. Se o usuário clicar nesse botão, o sistema exibirá uma folha de propriedades de segurança avançada que permite a edição avançada da DACL ( lista de controle de acesso discricionário ) do objeto.

Combine esse sinalizador com os sinalizadores SI_EDIT_AUDITS, SI_EDIT_OWNER e SI_EDIT_PROPERTIES para habilitar a edição das ACEs ( entradas de controle de acesso ) sacl, proprietário e objeto específico do objeto.

SI_AUDITS_ELEVATION_REQUIRED
0x02000000L
Se esse sinalizador estiver definido, um escudo será exibido no botão Editar das páginas de Auditoria avançadas. Para objetos NTFS, esse sinalizador é solicitado quando o usuário não tem acesso READ_CONTROL ou ACCESS_SYSTEM_SECURITY .

Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

SI_CONTAINER
0x00000004L
Indica que o objeto é um contêiner. Se esse sinalizador for definido, o editor de controle de acesso habilitará os controles relevantes para a herança de permissões em objetos filho.
SI_DISABLE_DENY_ACE
0x80000000L
Se esse sinalizador for definido, o sistema desabilita a negação de uma ACE. Os clientes do editor de controle de acesso devem implementar a interface ISecurityInformation4 para definir esse sinalizador.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

SI_EDIT_ALL
Combina os sinalizadores SI_EDIT_PERMS, SI_EDIT_OWNER e SI_EDIT_AUDITS.
SI_EDIT_AUDITS
0x00000002L
Se esse sinalizador estiver definido e o usuário clicar no botão Avançado , o sistema exibirá uma folha de propriedades de segurança avançada que inclui uma página de propriedades auditoria para editar a SACL do objeto. Para exibir o botão Avançado , defina o sinalizador SI_ADVANCED.
SI_EDIT_EFFECTIVE
0x00020000L
Se esse sinalizador estiver definido, a página Permissões Efetivas será exibida. Esse sinalizador será ignorado se o objeto ISecurityInformation que inicializou o editor de controle de acesso não implementar a interface IEffectivePermission .
SI_EDIT_OWNER
0x00000001L
Se esse sinalizador estiver definido e o usuário clicar no botão Avançado , o sistema exibirá uma folha de propriedades de segurança avançada que inclui uma página de propriedades Owner para alterar o proprietário do objeto. Para exibir o botão Avançado , defina o sinalizador SI_ADVANCED.
SI_EDIT_PERMS
0x00000000L
Esse é o valor padrão. A página de propriedades de segurança básica sempre exibe os controles para edição básica da DACL do objeto. Para desabilitar esses controles, defina o sinalizador SI_READONLY.
SI_EDIT_PROPERTIES
0x00000080L
Se esse sinalizador estiver definido, o sistema habilitará os controles para edição de ACEs que se aplicam aos conjuntos de propriedades e propriedades do objeto. Esses controles estão disponíveis somente na folha de propriedades exibida quando o usuário clica no botão Avançado .
SI_ENABLE_CENTRAL_POLICY
0x40000000L
Se esse sinalizador estiver definido, o sistema habilitará a edição de atributos. Os clientes do editor de controle de acesso devem implementar a interface ISecurityInformation4 para definir esse sinalizador.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

SI_ENABLE_EDIT_ATTRIBUTE_CONDITION
0x20000000L
Se esse sinalizador estiver definido, o sistema habilitará a edição de atributos. Os clientes do editor de controle de acesso devem implementar a interface ISecurityInformation4 para definir esse sinalizador.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

SI_MAY_WRITE
0x10000000L
Indica que o editor de controle de acesso não pode ler a DACL, mas pode ser capaz de gravar na DACL. Se uma chamada para o método ISecurityInformation::GetSecurity retornar AccessDenied, o usuário poderá tentar adicionar uma nova ACE e um aviso mais apropriado será exibido.
SI_NO_ACL_PROTECT
0x00000200L
Se esse sinalizador estiver definido, o editor de controle de acesso ocultará a caixa marcar que permite que ACEs herdáveis se propaguem do objeto pai para esse objeto. Se esse sinalizador não estiver definido, a caixa marcar ficará visível.

A caixa marcar será desmarcada se o sinalizador SE_DACL_PROTECTED estiver definido no descritor de segurança do objeto. Nesse caso, a DACL do objeto é protegida contra modificação por ACEs herdáveis.

Se o usuário desmarcar a caixa marcar, todos os ACEs herdados no descritor de segurança serão excluídos ou convertidos em ACEs não herdadas. Antes de prosseguir com essa conversão, o sistema exibe uma caixa de mensagem de aviso para confirmar a alteração.

SI_NO_ADDITIONAL_PERMISSION
0x00200000L
Se esse sinalizador estiver definido, o editor de controle de acesso ocultará a guia Permissões Especiais na página Configurações de Segurança Avançadas .
SI_NO_TREE_APPLY
0x00000400L
Se esse sinalizador estiver definido, o editor de controle de acesso ocultará a caixa marcar que controla o sinalizador NO_PROPAGATE_INHERIT_ACE. Esse sinalizador é relevante somente quando o sinalizador SI_ADVANCED também está definido.
SI_OBJECT_GUID
0x00010000L
Quando definido, indica que o membro guidObjectType da estrutura SI_OBJECT_INFO é válido. Isso é definido em comparações com ACEs específicas do objeto para determinar se o ACE se aplica ao objeto atual.
SI_OWNER_ELEVATION_REQUIRED
0x04000000L
Se esse sinalizador estiver definido, um escudo será exibido no botão Editar da página Proprietário avançada. Para objetos NTFS, esse sinalizador é solicitado quando o usuário não tem acesso WRITE_OWNER . Esse sinalizador só será válido se a página do proprietário for solicitada.

Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

SI_OWNER_READONLY
0x00000040L
Se esse sinalizador estiver definido, o usuário não poderá alterar o proprietário do objeto. Defina esse sinalizador se SI_EDIT_OWNER estiver definido, mas o usuário não tiver permissão para alterar o proprietário.
SI_OWNER_RECURSE
0x00000100L
Combine esse sinalizador com SI_CONTAINER para exibir uma caixa de marcar na página do proprietário que indica se o usuário pretende que o novo proprietário seja aplicado a todos os objetos filho, bem como ao objeto atual. O editor de controle de acesso não executa a recursão; a recursão deve ser executada pelo aplicativo em ISecurityInformation::SetSecurity.
SI_PAGE_TITLE
0x00000800L
Se esse sinalizador for definido, o membro pszPageTitle será usado como o título da página de propriedades de segurança básica. Caso contrário, um título padrão será usado.
SI_PERMS_ELEVATION_REQUIRED
0x01000000L
Se esse sinalizador estiver definido, uma imagem de um escudo será exibida no botão Editar das páginas permissões simples e avançadas . Para objetos NTFS, esse sinalizador é solicitado quando o usuário não tem acesso READ_CONTROL ou WRITE_DAC .

Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

SI_READONLY
0x00000008L
Se esse sinalizador estiver definido, o editor exibirá as informações de segurança do objeto, mas os controles para editar as informações serão desabilitados.

Esse sinalizador não pode ser combinado com o sinalizador SI_VIEW_ONLY .

SI_RESET
0x00000020L
Se esse sinalizador estiver definido, o botão Padrão será exibido. Se o usuário clicar nesse botão, o editor de controle de acesso chamará o método ISecurityInformation::GetSecurity para recuperar um descritor de segurança padrão definido pelo aplicativo. O editor de controle de acesso usa esse descritor de segurança para reinicializar a folha de propriedades e o usuário tem permissão para aplicar a alteração ou cancelar.
SI_RESET_DACL
0x00040000L
Quando definido, esse sinalizador exibe o botão Redefinir Padrões na página Permissões .
SI_RESET_DACL_TREE
0x00004000L
Quando definido, esse sinalizador exibe as permissões Redefinir em todos os objetos filho e habilita a propagação de permissões herdáveis marcar caixa na página Permissões da janela Configurações do Controle de Acesso. Se essa caixa marcar for selecionada quando o usuário clicar no botão Aplicar, uma operação OR bit a bit será executada no parâmetro SecurityInformation de ISecurityInformation::SetSecurity com SI_RESET_DACL_TREE. Essa função não redefine as permissões e habilita a propagação de permissões herdáveis; a implementação de ISecurityInformation deve fazer isso.
SI_RESET_OWNER
0x00100000L
Quando definido, esse sinalizador exibe o botão Redefinir Padrões na página Proprietário .
SI_RESET_SACL
0x00080000L
Quando definido, esse sinalizador exibe o botão Redefinir Padrões na página Auditoria .
SI_RESET_SACL_TREE
0x00008000L
Quando definido, esse sinalizador exibe a caixa Redefinir entradas de auditoria em todos os objetos filho e permite a propagação das entradas de auditoria herdáveis marcar caixa na página Auditoria da janela Configurações do Controle de Acesso. Se essa caixa marcar for selecionada quando o usuário clicar no botão Aplicar, uma operação OR bit a bit será executada no parâmetro SecurityInformation de ISecurityInformation::SetSecurity com SI_RESET_SACL_TREE. Essa função não redefine as permissões e habilita a propagação de permissões herdáveis; a implementação de ISecurityInformation deve fazer isso.
SI_SCOPE_ELEVATION_REQUIRED
0x08000000L
Se esse sinalizador for definido, uma imagem de um escudo será exibida no botão Alterar do atributo Scope. Para objetos NTFS, esse sinalizador é solicitado quando o usuário não tem acesso READ_CONTROL ou WRITE_DAC. Os clientes do editor de controle de acesso devem implementar a interface ISecurityInformation4 para definir esse sinalizador.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

SI_SERVER_IS_DC
0x00001000L
Defina esse sinalizador se o computador pszServerName for conhecido por ser um controlador de domínio. Se esse sinalizador estiver definido, o nome de domínio será incluído na lista de escopo da caixa de diálogo Adicionar Usuários e Grupos . Caso contrário, o computador pszServerName será usado para determinar a lista de escopo da caixa de diálogo.
SI_VIEW_ONLY
0x00400000L
Esse sinalizador é definido pelo cliente do editor de controle de acesso para exibir versões somente leitura das caixas de diálogo do editor de controle de acesso. Essas versões das caixas de diálogo não permitem a edição das permissões do objeto associado. Os clientes do editor de controle de acesso devem implementar a interface ISecurityInformation3 para definir esse sinalizador.

Esse sinalizador não pode ser combinado com o sinalizador SI_READONLY .

Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

hInstance

Identifica um módulo que contém recursos de cadeia de caracteres a serem usados na folha de propriedades. Os métodos ISecurityInformation::GetAccessRights e ISecurityInformation::GetInheritTypes podem especificar identificadores de recurso de cadeia de caracteres para nomes de exibição.

pszServerName

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que nomeia o computador no qual pesquisar nomes de conta e SIDs. Esse valor pode ser NULL para especificar o computador local. O editor de controle de acesso não libera esse ponteiro.

pszObjectName

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que nomeia o objeto que está sendo editado. Esse nome aparece no título da folha de propriedades de segurança avançada e nas caixas de mensagem de erro exibidas pelo editor de controle de acesso. O editor de controle de acesso não libera esse ponteiro.

pszPageTitle

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo usada como o título da página de propriedades de segurança básica. Esse membro é ignorado, a menos que o sinalizador SI_PAGE_TITLE seja definido em dwFlags. Se o título da página não for fornecido, um título padrão será usado. O editor de controle de acesso não libera esse ponteiro.

guidObjectType

Um GUID para o objeto . Esse membro é ignorado, a menos que o sinalizador SI_OBJECT_GUID seja definido em dwFlags.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho aclui.h

Confira também

ISecurityInformation

ISecurityInformation::GetAccessRights

ISecurityInformation::GetInheritTypes

ISecurityInformation::GetObjectInformation

ISecurityInformation::GetSecurity

ISecurityInformation::SetSecurity