Segurança de mapeamento de arquivos e direitos de acesso
O modelo de segurança do Windows permite controlar o acesso a objetos de mapeamento de arquivos. Para saber mais, consulte Modelo de controle de acesso.
Você pode especificar um descritor de segurança para um objeto de mapeamento de arquivos ao chamar a função CreateFileMapping. Se você especificar NULO, o objeto receberá um descritor de segurança padrão. As ACLs no descritor de segurança padrão para um objeto de mapeamento de arquivos vêm do token primário ou de representação do criador.
Para recuperar o descritor de segurança de um objeto de mapeamento de arquivos, chame a função GetNamedSecurityInfo ou GetSecurityInfo. Para definir o descritor de segurança de um objeto de mapeamento de arquivos, chame a função SetNamedSecurityInfo ou SetSecurityInfo.
Os direitos de acesso válidos para objetos de mapeamento de arquivos incluem DELETE, READ_CONTROL, WRITE_DAC e WRITE_OWNER como direitos de acesso padrão. Os objetos de mapeamento de arquivos não suportam o direito de acesso padrão SYNCHRONIZE. A tabela a seguir lista os direitos de acesso específicos para objetos de mapeamento de arquivos.
Direitos de acesso | Significado |
---|---|
FILE_MAP_ALL_ACCESS | Inclui todos os direitos de acesso a um objeto de mapeamento de arquivos, exceto FILE_MAP_EXECUTE. As funções MapViewOfFile e MapViewOfFileEx tratam isso da mesma forma que especificar FILE_MAP_WRITE. |
FILE_MAP_EXECUTE | Permite o mapeamento de exibições executáveis do objeto de mapeamento de arquivos. O objeto deve ter sido criado com proteção de página que permita acesso de execução, como proteção PAGE_EXECUTE_READ, PAGE_EXECUTE_WRITECOPY ou PAGE_EXECUTE_READWRITE. |
FILE_MAP_READ | Permite o mapeamento de exibições somente leitura ou cópia na gravação do objeto de mapeamento de arquivos. |
FILE_MAP_WRITE | Permite o mapeamento de modos de exibição somente leitura, cópia na gravação ou leitura/gravação de um objeto de mapeamento de arquivos. O objeto deve ter sido criado com proteção de página que permite acesso de gravação, como proteção PAGE_READWRITE ou PAGE_EXECUTE_READWRITE. |
O mapeamento de uma exibição de cópia na gravação de um objeto de mapeamento de arquivos requer o mesmo acesso que o mapeamento de uma exibição somente leitura. O sinalizador FILE_MAP_COPY não é um direito de acesso e não deve ser especificado como parte de uma DACL em um descritor de segurança. Esse valor só pode ser usado com funções que mapeiam uma exibição de um objeto de mapeamento de arquivos, como as funções MapViewOfFile e MapViewOfFileEx, ou com a função OpenFileMapping, que trata FILE_MAP_COPY da mesma maneira que trata FILE_MAP_READ.
Você pode solicitar o direito de acesso ACCESS_SYSTEM_SECURITY a um objeto de mapeamento de arquivos se quiser ler ou gravar a SACL do objeto. Para obter mais informações, consulte Listas de controle de acesso (ACLs) e Direito de acesso SACL.