Função CreateFile2FromAppW (fileapifromapp.h)
Cria ou abre um arquivo ou dispositivo de E/S. O comportamento dessa função é idêntico a CreateFile2, exceto que essa função segue o modelo de segurança do aplicativo Plataforma Universal do Windows.
Sintaxe
WINSTORAGEAPI HANDLE CreateFile2FromAppW(
LPCWSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
DWORD dwCreationDisposition,
LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams
) noexcept;
Parâmetros
lpFileName
O nome do arquivo ou dispositivo a ser criado ou aberto.
Para obter informações sobre nomes de dispositivos especiais, consulte Definindo um nome de dispositivo MS-DOS.
Para criar um fluxo de arquivos, especifique o nome do arquivo, dois-pontos e, em seguida, o nome do fluxo. Para obter mais informações, consulte Fluxos de arquivos.
Para obter informações sobre como recusar a limitação de MAX_PATH sem acrescentar "\\?\", consulte a seção "Limitação máxima do comprimento do caminho" de Arquivos de Nomenclatura, Caminhos e Namespaces para obter detalhes.
dwDesiredAccess
O acesso solicitado ao arquivo ou dispositivo, que pode ser resumido como leitura, gravação, ambos ou nenhum zero).
Os valores mais usados são GENERIC_READ, GENERIC_WRITE ou ambos (GENERIC_READ | GENERIC_WRITE
). Para obter mais informações, consulte Direitos de acesso genéricos, segurança de arquivos e direitos de acesso, constantes de direitos de acesso a arquivos e ACCESS_MASK.
Se esse parâmetro for zero, o aplicativo poderá consultar determinados metadados, como atributos de arquivo, diretório ou dispositivo, sem acessar esse arquivo ou dispositivo, mesmo que GENERIC_READ acesso tenha sido negado.
Não é possível solicitar um modo de acesso que entre em conflito com o modo de compartilhamento especificado pelo parâmetro dwShareMode em uma solicitação aberta que já tenha um identificador aberto.
dwShareMode
O modo de compartilhamento solicitado do arquivo ou dispositivo, que pode ser lido, gravado, ambos, excluir, todos eles ou nenhum (consulte a tabela a seguir). As solicitações de acesso a atributos ou atributos estendidos não são afetadas por esse sinalizador.
Se esse parâmetro for zero e a função for bem-sucedida, o arquivo ou dispositivo não poderá ser compartilhado e não poderá ser aberto novamente até que o identificador para o arquivo ou dispositivo seja fechado. Para obter mais informações, consulte a seção Comentários.
Não é possível solicitar um modo de compartilhamento que entre em conflito com o modo de acesso especificado em uma solicitação existente que tenha um identificador aberto. Essa função falharia e a função GetLastError retornaria ERROR_SHARING_VIOLATION.
Para habilitar um processo para compartilhar um arquivo ou dispositivo enquanto outro processo tiver o arquivo ou dispositivo aberto, use uma combinação compatível de um ou mais dos valores a seguir. Para obter mais informações sobre combinações válidas desse parâmetro com o parâmetro dwDesiredAccess , consulte Criando e abrindo arquivos.
Nota As opções de compartilhamento para cada identificador aberto permanecem em vigor até que esse identificador seja fechado, independentemente do contexto do processo.
Valor | Significado |
---|---|
0 0x00000000 | Impede que outros processos abram um arquivo ou dispositivo se solicitarem acesso de exclusão, leitura ou gravação. O acesso exclusivo a um arquivo ou diretório só será concedido se o aplicativo tiver acesso de gravação ao arquivo. |
FILE_SHARE_DELETE 0x00000004 | Habilita operações abertas subsequentes em um arquivo ou dispositivo para solicitar acesso de exclusão. Caso contrário, outros processos não poderão abrir o arquivo ou o dispositivo se solicitarem acesso de exclusão. Se esse sinalizador não for especificado, mas o arquivo ou dispositivo tiver sido aberto para acesso de exclusão, a função falhará. Nota Excluir acesso permite operações de exclusão e renomeação. |
FILE_SHARE_READ 0x00000001 | Habilita operações abertas subsequentes em um arquivo ou dispositivo para solicitar acesso de leitura. Caso contrário, outros processos não poderão abrir o arquivo ou o dispositivo se solicitarem acesso de leitura. Se esse sinalizador não for especificado, mas o arquivo ou dispositivo tiver sido aberto para acesso de leitura, a função falhará. Se um arquivo ou diretório estiver sendo aberto e esse sinalizador não for especificado e o chamador não tiver acesso de gravação ao arquivo ou diretório, a função falhará. |
FILE_SHARE_WRITE 0x00000002 | Habilita operações abertas subsequentes em um arquivo ou dispositivo para solicitar acesso de gravação. Caso contrário, outros processos não poderão abrir o arquivo ou o dispositivo se solicitarem acesso de gravação. Se esse sinalizador não for especificado, mas o arquivo ou dispositivo tiver sido aberto para acesso de gravação ou tiver um mapeamento de arquivo com acesso de gravação, a função falhará. |
dwCreationDisposition
Uma ação a ser tomada em um arquivo ou dispositivo que existe ou não existe.
Para dispositivos que não sejam arquivos, esse parâmetro geralmente é definido como OPEN_EXISTING.
Esse parâmetro deve ser um dos seguintes valores, que não podem ser combinados:
Valor | Significado |
---|---|
CREATE_ALWAYS 2 | Cria um novo arquivo, sempre. Se o arquivo especificado existir e for gravável, a função truncará o arquivo, a função terá êxito e o código de último erro será definido como ERROR_ALREADY_EXISTS (183). Se o arquivo especificado não existir e for um caminho válido, um novo arquivo será criado, a função será bem-sucedida e o código de último erro será definido como zero. |
CREATE_NEW 1 | Cria um novo arquivo, somente se ele ainda não existir. Se o arquivo especificado existir, a função falhará e o código do último erro será definido como ERROR_FILE_EXISTS (80). Se o arquivo especificado não existir e for um caminho válido para um local gravável, um novo arquivo será criado. |
OPEN_ALWAYS 4 | Abre um arquivo, sempre. Se o arquivo especificado existir, a função terá êxito e o código do último erro será definido como ERROR_ALREADY_EXISTS (183). Se o arquivo especificado não existir e for um caminho válido para um local gravável, a função criará um arquivo e o código de último erro será definido como zero. |
OPEN_EXISTING 3 | Abre um arquivo ou dispositivo, somente se ele existir. Se o arquivo ou dispositivo especificado não existir, a função falhará e o código do último erro será definido como ERROR_FILE_NOT_FOUND (2). |
TRUNCATE_EXISTING 5 | Abre um arquivo e o trunca para que seu tamanho seja zero bytes, somente se ele existir. Se o arquivo especificado não existir, a função falhará e o código do último erro será definido como ERROR_FILE_NOT_FOUND (2). O processo de chamada deve abrir o arquivo com o GENERIC_WRITE bit definido como parte do parâmetro dwDesiredAccess . |
pCreateExParams
Ponteiro para uma estrutura de CREATEFILE2_EXTENDED_PARAMETERS opcional.
Retornar valor
Se a função for bem-sucedida, o valor retornado será um identificador aberto para o arquivo, dispositivo, pipe nomeado ou slot de email especificado.
Se houver falha na função, o valor retornado será INVALID_HANDLE_VALUE. Para obter informações de erro estendidas, chame GetLastError.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1803 |
Cabeçalho | fileapifromapp.h |