Compartilhar via


Função DefineDosDeviceA (winbase.h)

Define, redefine ou exclui nomes de dispositivo MS-DOS.

Sintaxe

BOOL DefineDosDeviceA(
  [in]           DWORD  dwFlags,
  [in]           LPCSTR lpDeviceName,
  [in, optional] LPCSTR 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
DDD_EXACT_MATCH_ON_REMOVE
0x00000004
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.
DDD_NO_BROADCAST_SYSTEM
0x00000008
Não transmita a mensagem WM_SETTINGCHANGE . Por padrão, essa mensagem é transmitida para notificar o shell e os aplicativos da alteração.
DDD_RAW_TARGET_PATH
0x00000001
Usa a cadeia de caracteres lpTargetPath como está. Caso contrário, ele será convertido de um caminho MS-DOS para um caminho.
DDD_REMOVE_DEFINITION
0x00000002
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 No
TFO (Failover transparente) do SMB 3.0 No
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) No
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) No
ReFS (Sistema de Arquivos Resiliente) No
 

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

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]
Plataforma de Destino Windows
Cabeçalho winbase.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

DeleteVolumeMountPoint

QueryDosDevice

SetVolumeMountPoint

Funções de gerenciamento de volumes