CheckNameLegalDOS8Dot3A 函数 (winbase.h)

确定指定名称是否可用于在 FAT 文件系统上创建文件。

语法

BOOL CheckNameLegalDOS8Dot3A(
  [in]            LPCSTR lpName,
  [out, optional] LPSTR  lpOemName,
  [in]            DWORD  OemNameSize,
  [out, optional] PBOOL  pbNameContainsSpaces,
  [out]           PBOOL  pbNameLegal
);

参数

[in] lpName

文件名,采用 8.3 格式。

[out, optional] lpOemName

指向缓冲区的指针,该缓冲区接收对应于 Name 的 OEM 字符串。 此参数可以为 NULL。

[in] OemNameSize

lpOemName 缓冲区的大小(以字符为单位)。 如果 lpOemNameNULL,则此参数必须为 0 (零) 。

[out, optional] pbNameContainsSpaces

指示名称是否包含空格。 此参数可以为 NULL。 如果名称不是有效的 8.3 FAT 文件系统名称,则此参数未定义。

[out] pbNameLegal

如果函数成功,此参数指示将当前 OEM 代码页应用于文件名时,文件名是否为有效的 8.3 FAT 文件名。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为 0(零)。 要获得更多的错误信息,请调用 GetLastError。

注解

此函数可用于确定文件名是可以传递给基于 16 位 Windows 的应用程序还是基于 MS-DOS 的应用程序。

在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。

技术 支持
服务器消息块 (SMB) 3.0 协议
SMB 3.0 透明故障转移 (TFO) 查看备注
具有横向扩展文件共享的 SMB 3.0 (SO) 查看备注
群集共享卷文件系统 (CSV)
弹性文件系统 (ReFS)
 

请注意,SMB 3.0 不支持具有连续可用性功能的共享上的短名称,因此函数将始终返回零 (失败) 。

注意

winbase.h 标头将 CheckNameLegalDOS8Dot3 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows Vista、具有 SP1 的 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

文件管理函数

GetOEMCP