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

指向接收与 名称对应的 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) 请参阅备注
群集共享卷文件系统 (CsvFS) 是的
可复原文件系统 (ReFS) 是的
 

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

注意

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

要求

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

另请参阅

文件管理功能

GetOEMCP