为什么没有 ReadDirectoryChangesA?

发布于 2024-12-11 07:29:19 字数 217 浏览 0 评论 0原文

ReadDirectoryChangesW在威纳皮斯。但没有 ReadDirectoryChangesA。

很好奇。
为什么要特殊对待呢? 有谁知道原因或者历史吗?

There is ReadDirectoryChangesW in Winapis. But there is no ReadDirectoryChangesA.

Curious.
Why is it treated specially?
Is there anyone who knows the reason or history?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清君侧 2024-12-18 07:29:19

它在Win98/98/SE/Me 中从未存在过。许多(大多数?)从一开始就仅限 NT 的功能(例如 Net* API)仅在“宽”版本中可用(尽管在 Net* 的情况下,它们省略了“W”后缀) 。

It never existed in Win98/98/SE/Me. Many (most?) of the functions that have been NT-only from the beginning (e.g., the Net* API) are only available in "wide" versions (though in the case of Net*, they omitted the "W" suffix).

放低过去 2024-12-18 07:29:19

内核内部使用unicode编码。带有 W 后缀的 Win32 API 通常会转换为内部 NtXxx API。 Win32 API 的 A 版本需要从 ASCII 转换为 Unicode,调用 W 版本,然后将任何输出转换回 ASCII。

在 ReadDirectoryChangesW 的情况下,最后一部分是不可能完成的,因为数据是直接从文件系统读取到调用者的缓冲区,并且可能在 API 返回之后,因此不可能实现 ReadDirectoryChangesA。

The kernel internally is using unicode encoding. Win32 APIs with W suffix usually translate to the internal NtXxx APIs. The A version of the Win32 API needs to translate from ASCII to Unicode, call the W-version, and then translate any output back to ASCII.

In the case of ReadDirectoryChangesW the last part is impossible to do because the data is read directly from the file system to the caller's buffer, and potentially after the API returns so it is impossible to implement ReadDirectoryChangesA.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文