NT имеет в основном недокументированный API, называемый "Native API", на котором общие подсистемы (например, API Windows, OS/2 API и POSIX (обычно называемые " Interix" в настоящее время) подсистемы).
Существует несколько книг и веб-сайтов, которые пытаются документировать этот API:
- Некоторые из этих функций описаны в Windows Driver Kit
- Недокументированные секреты Windows 2000, кулинарная книга программистов, Sven V. Schreiber
- Недокументированные NTernals
- Справочник по API для NT/2000 от Gary Nebbett
- NirSoft Структуры ядра Windows Vista
К сожалению, ни одна из книг или веб-сайтов я не могу попытаться коснуться 64-разрядных версий Windows (за исключением WDK, но WDK ограничен...). API называет себя одинаковым - большая проблема связана с самими определениями структуры. А именно: значение указателя и DWORD одинакового размера на 32-битных платформах, но разные на платформах x64. Таким образом, "неизвестные дополнения" битов структур, которые часто определяются как массив DWORD, ошибочны в окнах x64, и результатом является полный мусор.
Я вручную работаю над такими вещами, добавляя дополнительные дополнения в руки для вызова API, но это становится очень расстраивающим, и было бы неплохо иметь ресурс, который только что документировал эти вещи, d правильно использовать указатели вместо DWORD, где это необходимо, так что определение одной структуры может служить как для 32-битной, так и для 64-битной Windows.
Существует ли такой ресурс?