【发布时间】:2011-05-31 10:10:35
【问题描述】:
NT 有一个大部分未记录的 API,称为“Native API”,通用子系统(即 Windows API、OS/2 API 和 POSIX(现在通常称为“Interix”)子系统)在其上实现。
存在一些试图记录此 API 的书籍和网站:
- 其中一些函数记录在Windows Driver Kit
- Undocumented Windows 2000 Secrets, A Programmers Cookbook, by Sven V. Schreiber
- Undocumented NTernals
- Windows NT/2000 Native API Reference, by Gary Nebbett
- NirSoft's Windows Vista Kernel Structures
不幸的是,我没有任何一本书或网站可以尝试接触 64 位版本的 Windows(当然除了 WDK,但 WDK 是有限的......)。 API 调用本身是相同的——最大的问题与结构定义本身有关。即——指针值和 DWORD 在 32 位平台上大小相同,但在 x64 平台上不同。因此,通常定义为 DWORD 数组的结构的“未知填充”位在 x64 窗口上是错误的——结果是完全垃圾。
我一直通过在每个 API 调用中手动添加额外的填充来手动解决这些问题,但这真的很令人沮丧,如果有一个资源可以记录这些事情以便他们' d 在需要时正确使用指针而不是 DWORD,以便单个结构定义可以同时用于 32 位和 64 位 Windows。
这样的资源存在吗?
【问题讨论】:
-
老实说,我没有在 x64 上看到任何东西,但是如果 ntlib 收到 64 位更新,您可能会很幸运,您也可以查看 openrce.org,看看他们是否有任何东西。否则你将不得不等待 64 位 Windows 源代码泄漏:p
标签: c++ windows windows-nt nt-native-api