NT には、"ネイティブ API" と呼ばれるほとんど文書化されていない API があります。この API には、共通のサブシステム (つまり、Windows API、OS/2 API、および POSIX (現在は通常 " Interix " と呼ばれます) サブシステム) が実装されています。
この API を文書化しようとする書籍や Web サイトがいくつかあります。
- これらの関数のいくつかは、Windows Driver Kitに記載されています。
- Undocumented Windows 2000 Secrets, A Programmers Cookbook, Sven V. Schreiber 著
- 文書化されていない NTernals
- Windows NT/2000 ネイティブ API リファレンス、Gary Nebbett 著
- NirSoft の Windows Vista カーネル構造
残念ながら、64 ビット バージョンの Windows に触れようとしている書籍や Web サイトは 1 つもありません (もちろん WDK は除きますが、WDK には制限があります...)。API 呼び出し自体は同じです。大きな問題は、構造定義自体に関係しています。つまり、ポインター値と DWORD は 32 ビット プラットフォームでは同じサイズですが、x64 プラットフォームでは異なります。したがって、DWORD の配列として定義されることが多い構造の「不明なパディング」ビットは、x64 ウィンドウでは正しくなく、結果は完全にゴミになります。
API呼び出しごとに手動で追加のパディングを追加することで、これらの種類のことを手動で回避してきましたが、これは本当にイライラしています.必要に応じて DWORD の代わりにポインターを使用して、1 つの構造定義で 32 ビットと 64 ビットの両方の Windows に対応できるようにします。
そのようなリソースは存在しますか?