Função DefineDosDeviceW (fileapi.h)
Define, redefine ou exclui nomes de dispositivo MS-DOS.
Sintaxe
BOOL DefineDosDeviceW(
[in] DWORD dwFlags,
[in] LPCWSTR lpDeviceName,
[in, optional] LPCWSTR lpTargetPath
);
Parâmetros
[in] dwFlags
Os aspectos controláveis da função DefineDosDevice . Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Se esse valor for especificado junto com DDD_REMOVE_DEFINITION, a função usará uma correspondência exata para determinar qual mapeamento remover. Use esse valor para garantir que você não exclua algo que não definiu. |
|
Não transmita a mensagem WM_SETTINGCHANGE . Por padrão, essa mensagem é transmitida para notificar o shell e os aplicativos da alteração. |
|
Usa a cadeia de caracteres lpTargetPath como está. Caso contrário, ele será convertido de um caminho MS-DOS para um caminho. |
|
Remove a definição especificada para o dispositivo especificado. Para determinar qual definição remover, a função orienta a lista de mapeamentos para o dispositivo, procurando uma correspondência de lpTargetPath em relação a um prefixo de cada mapeamento associado a esse dispositivo. O primeiro mapeamento que corresponde é o removido e, em seguida, a função retorna.
Se lpTargetPath for NULL ou um ponteiro para uma cadeia de caracteres NULL , a função removerá o primeiro mapeamento associado ao dispositivo e exibirá o mais recente enviado por push. Se não houver mais nada a ser exibido, o nome do dispositivo será removido. Se esse valor não for especificado, a cadeia de caracteres apontada pelo parâmetro lpTargetPath se tornará o novo mapeamento para esse dispositivo. |
[in] lpDeviceName
Um ponteiro para uma cadeia de caracteres de nome de dispositivo MS-DOS especificando o dispositivo que a função está definindo, redefinindo ou excluindo. A cadeia de caracteres de nome do dispositivo não deve ter dois-pontos como o último caractere, a menos que uma letra de unidade esteja sendo definida, redefinida ou excluída. Por exemplo, a unidade C seria a cadeia de caracteres "C:". Em nenhum caso, uma barra invertida à direita (\) é permitida.
[in, optional] lpTargetPath
Um ponteiro para uma cadeia de caracteres de caminho que implementará esse dispositivo. A cadeia de caracteres é uma cadeia de caracteres de caminho MS-DOS, a menos que o sinalizador DDD_RAW_TARGET_PATH seja especificado. Nesse caso, essa cadeia de caracteres é uma cadeia de caracteres de caminho.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Os nomes de dispositivo MS-DOS são armazenados como junções no namespace do objeto. O código que converte um caminho MS-DOS em um caminho correspondente usa essas junções para mapear dispositivos MS-DOS e letras de unidade. A função DefineDosDevice permite que um aplicativo modifique as junções usadas para implementar o namespace do dispositivo MS-DOS.
Para recuperar o mapeamento atual de um nome de dispositivo MS-DOS específico ou obter uma lista de todos os dispositivos MS-DOS conhecidos pelo sistema, use a função QueryDosDevice .
Para definir uma atribuição de letra de unidade persistente entre inicializações e não um compartilhamento de rede, use a função SetVolumeMountPoint . Se o volume a ser montado já tiver uma letra de unidade atribuída a ele, use a função DeleteVolumeMountPoint para remover a atribuição.
As letras da unidade e os nomes de dispositivo definidos no momento da inicialização do sistema são protegidos contra redefinição e exclusão, a menos que o usuário seja um administrador.
A partir do Windows XP, essa função cria um nome de dispositivo para um chamador que não está em execução no contexto "LocalSystem" em seu próprio namespace de dispositivo MS-DOS local. Se o chamador estiver em execução no contexto "LocalSystem", a função criará o nome do dispositivo no namespace global do dispositivo MS-DOS. Para obter mais informações, consulte Definindo um nome de dispositivo MS DOS e nomes de arquivo, caminhos e namespaces.
No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (SMB) 3.0 | Não |
TFO (Failover transparente) do SMB 3.0 | Não |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | Não |
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) | Não |
ReFS (Sistema de Arquivos Resiliente) | Não |
O SMB não dá suporte a funções de gerenciamento de volume. Para CsvFs, um novo nome não será replicado para os outros nós no cluster.
Exemplos
Para obter um exemplo, consulte Editando atribuições de letras de unidade.
Requisitos
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] |
Plataforma de Destino | Windows |
Cabeçalho | fileapi.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |