Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Biblioteka rozszerzeń EngExtCpp jest biblioteką DLL, która używa struktury rozszerzenia EngExtCpp znalezionej w pliku EngExtCpp.h. Gdy ta biblioteka jest ładowana przez aparat debugera, jej metody i funkcje mogą oferować dodatkowe funkcjonalności lub automatyzować zadania podczas debugowania w trybie użytkownika lub w trybie jądra w systemie Microsoft Windows.
Struktura rozszerzenia EngExtCpp jest oparta na strukturze rozszerzenia DbgEng. Oferuje on ten sam interfejs API aparatu debugera na potrzeby interakcji z aparatem debugera. ale udostępnia również dodatkowe funkcje, aby ułatwić wykonywanie typowych zadań.
Jeśli wykonano pełną instalację narzędzi debugowania dla systemu Windows, przykładowe rozszerzenie EngExtCpp o nazwie "extcpp" można znaleźć w podkatalogu sdk\samples\extcpp katalogu instalacyjnego.
EXT_CLASS i ExtExtension
Podstawą biblioteki rozszerzenia EngExtCpp jest pojedyncze wystąpienie klasy EXT_CLASS . Biblioteka rozszerzeń EngExtCpp zapewni implementację tej klasy, która zawiera wszystkie polecenia rozszerzeń i metody formatowania struktur eksportowanych przez bibliotekę.
EXT_CLASS jest podklasą ExtExtension. Pojedyncze wystąpienie tej klasy jest tworzone przy użyciu makra EXT_DECLARE_GLOBALS , które musi być wyświetlane dokładnie raz w plikach źródłowych biblioteki rozszerzeń.
Po załadowaniu biblioteki rozszerzeń metoda Initialize klasy jest wywoływana przez silnik, a metoda Uninitialize jest wywoływana przed odłączeniem klasy. Ponadto metody OnSessionActive, OnSessionInactive, OnSessionAccessible i OnSessionInaccessible są wywoływane przez aparat w celu powiadomienia biblioteki rozszerzenia o stanie sesji debugowania.
Polecenia rozszerzenia
Klasa EXT_CLASS może zawierać wiele metod używanych do wykonywania poleceń rozszerzenia. Każde polecenie rozszerzenia jest deklarowane w klasie EXT_CLASS przy użyciu makra EXT_COMMAND_METHOD . Implementacja polecenia jest definiowana przy użyciu makra EXT_COMMAND .
Znane struktury
Klasa EXT_CLASS może zawierać wiele metod, które używają prototypu ExtKnownStructMethod . Metody mogą być używane przez silnik do formatowania wystąpień niektórych typów struktur na potrzeby danych wyjściowych.
Podane wartości
Klasa EXT_CLASS może zawierać wiele metod, które używają prototypu ExtProvideValueMethod . Metody mogą być używane przez silnik do oceny niektórych pseudorejestrów dostarczonych przez rozszerzenie.