Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При записи библиотеки DLL расширения WdbgExts можно экспортировать определенные функции:
Необходимо экспортировать функцию с именем WinDbgExtensionDllInit. Когда отладчик загружает библиотеку DLL расширения, сначала вызывает WinDbgExtensionDllInit и передает три аргумента.
- Указатель на структуру WINDBG_EXTENSION_APIS64 , которая содержит указатели на функции, реализованные отладчиком и объявленные в Wdbgexts.h. Необходимо скопировать всю структуру в глобальную переменную, созданную в библиотеке DLL.
- Номер основной версии. Необходимо скопировать основной номер версии в глобальную переменную, созданную в библиотеке DLL.
- Малый номер версии. Необходимо скопировать минорный номер версии в глобальную переменную, которую вы создаёте в своей библиотеке DLL.
Например, можно создать глобальные переменные с именем ExtensionApis, SavedMajorVersion и SavedMinorVersion, как показано в следующем примере.
WINDBG_EXTENSION_APIS64 ExtensionApis; USHORT SavedMajorVersion; USHORT SavedMinorVersion; VOID WinDbgExtensionDllInit(PWINDBG_EXTENSION_APIS64 lpExtensionApis, USHORT MajorVersion, USHORT MinorVersion) { ExtensionApis = *lpExtensionApis; SavedMajorVersion = MajorVersion; SavedMinorVersion = MinorVersion; ... }Необходимо экспортировать функцию с именем ExtensionApiVersion. Отладчик вызывает эту функцию и ожидает, что она вернет указатель на структуру EXT_API_VERSION, содержащую номер версии библиотеки расширения DLL. Отладчик использует этот номер версии при выполнении таких команд, как цепочка и версия , отображающая номер версии расширения.
При необходимости можно экспортировать функцию с именем CheckVersion. Отладчик вызывает эту подпрограмму каждый раз, когда вы используете команду расширения. Это можно использовать для вывода предупреждений о несоответствии версий, если версия вашей библиотеки DLL немного отличается от версии вашего отладчика, но недостаточно, чтобы помешать его выполнению.