NT 有一个大部分未记录的 API,称为“Native API”,在其上实现了公共子系统(即 Windows API、OS/2 API 和 POSIX(现在通常称为“ Interix ”)子系统)。
有几本书和网站试图记录这个 API:
- 其中一些函数记录在Windows 驱动程序工具包中
- 未记录的 Windows 2000 秘密,程序员食谱,作者 Sven V. Schreiber
- 未记录的内部人员
- Windows NT/2000 本机 API 参考,作者 Gary Nebbett
- NirSoft 的 Windows Vista 内核结构
不幸的是,没有一本书或网站可以让我尝试接触 64 位版本的 Windows(当然 WDK 除外,但 WDK 是有限的......)。API 调用本身是相同的——最大的问题与结构定义本身有关。即——指针值和 DWORD 在 32 位平台上的大小相同,但在 x64 平台上不同。因此,通常定义为 DWORD 数组的结构的“未知填充”位在 x64 窗口上是错误的 - 结果是完全垃圾。
我一直在通过手动添加额外的填充来手动解决这些问题在需要时使用指针而不是 DWORD,以便单个结构定义可以同时用于 32 位和 64 位 Windows。
这样的资源存在吗?