Compartilhar via


Especificando direitos de acesso

O tipo ACCESS_MASK é uma máscara de bits que especifica um conjunto de direitos de acesso na máscara de acesso de uma entrada de controle de acesso.

typedef ULONG  ACCESS_MASK;

Os direitos de acesso específicos padrão a seguir se aplicam a todos os tipos de objetos executivos.

Sinalizador Descrição

Delete (excluir)

O chamador pode excluir o objeto.

READ_CONTROL

O chamador pode ler a ACL (lista de controle de acesso) e as informações de propriedade do arquivo.

SYNCHRONIZE

O chamador pode executar uma operação de espera no objeto . (Por exemplo, o objeto pode ser passado para KeWaitForMultipleObjects.)

WRITE_DAC

O chamador pode alterar as informações da DACL (lista de controle de acesso discricionário) do objeto.

WRITE_OWNER

O chamador pode alterar as informações de propriedade do arquivo.

Observe que normalmente apenas DELETE e SYNCHRONIZE são de interesse dos gravadores de driver.

Você também pode especificar os seguintes direitos de acesso genéricos. Elas também se aplicam a todos os tipos de objetos executivos. O significado de cada direito de acesso genérico é específico para esse tipo de objeto.

Sinalizador Descrição

GENERIC_READ

O chamador pode executar operações de leitura normais no objeto .

GENERIC_WRITE

O chamador pode executar operações de gravação normais no objeto .

GENERIC_EXECUTE

O chamador pode executar o objeto . (Observe que isso geralmente só faz sentido para determinados tipos de objetos, como objetos de arquivo e objetos de seção.)

GENERIC_ALL

O chamador pode executar todas as operações normais no objeto .

As combinações a seguir de direitos de acesso específicos padrão também são definidas. Normalmente, eles não são usados diretamente, mas são usados como modelos para definir outras máscaras de bits. (Por exemplo, quando você especifica GENERIC_READ para um objeto de arquivo, o sistema mapeia isso para a máscara de bits FILE_GENERIC_READ de direitos de acesso específicos. FILE_GENERIC_READ é definido em termos de STANDARD_RIGHTS_READ.)

Bitmask Descrição

STANDARD_RIGHTS_READ

Direitos específicos padrão que correspondem a GENERIC_READ

STANDARD_RIGHTS_WRITE

Direitos específicos padrão que correspondem a GENERIC_WRITE

STANDARD_RIGHTS_EXECUTE

Direitos específicos padrão que correspondem a GENERIC_EXECUTE

STANDARD_RIGHTS_REQUIRED

Direitos específicos padrão que correspondem a GENERIC_ALL. Isso inclui DELETE, mas não SYNCHRONIZE.

STANDARD_RIGHTS_ALL

Todos os direitos de acesso padrão.

Cada tipo de objeto pode ter seus próprios direitos de acesso adicionais. Para obter uma descrição dos direitos de acesso aplicáveis a um arquivo, diretório ou dispositivo, consulte ZwCreateFile. Para obter uma descrição dos direitos de acesso aplicáveis a um diretório do gerenciador de objetos, consulte ZwCreateDirectoryObject. Para obter uma descrição dos direitos de acesso aplicáveis a uma chave do Registro, consulte ZwCreateKey. Para obter uma descrição dos direitos de acesso aplicáveis a um objeto de seção, consulte ZwOpenSection. Para obter uma descrição dos direitos de acesso aplicáveis a um bloco de dados WMI, consulte IoWMIOpenBlock.

Para obter mais informações sobre direitos de acesso, consulte os seguintes tópicos na documentação do SDK do Microsoft Windows:

Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h)

IoWMIOpenBlock
ZwCreateDirectoryObject
ZwCreateFile
ZwCreateKey
ZwOpenSection