Составители:
Приложение, ориентированное на использование Win32 API, может
работать практически на всех версиях Windows, несмотря на то, что сами
системные вызовы в различных системах различны (см. рис. 11.2). Таким
путем корпорация Microsoft обеспечивает преемственность своих
операционных систем.
Рис. 11.2. Поддержка единого программного интерфейса для различных
версий Windows
При вызове приложением одной из Win32-функций dll-подсистем
может возникнуть одна из трех ситуаций (см. рис. 11.3).
1. Функция полностью выполняется внутри данной dll (шаг 1).
2. Для выполнения функции привлекается сервер csrss, для чего ему
посылается сообщение (шаг 2a, за которым обычно следуют шаги 2b
и 2c).
3. Данный вызов транслируется в системный сервис (системный
вызов), который обычно обрабатывается в модуле ntdll.dll (шаги 3a и
3b).
Рис. 11.3. Различные маршруты выполнения вызовов Win32 API
Помимо перечисленных, наиболее важных dll-библиотек, в системном
каталоге system32 имеется большое количество других dll-файлов. В
настоящее время количество вызовов API составляет несколько десятков
тысяч.
156
Приложение, ориентированное на использование Win32 API, может работать практически на всех версиях Windows, несмотря на то, что сами системные вызовы в различных системах различны (см. рис. 11.2). Таким путем корпорация Microsoft обеспечивает преемственность своих операционных систем. Рис. 11.2. Поддержка единого программного интерфейса для различных версий Windows При вызове приложением одной из Win32-функций dll-подсистем может возникнуть одна из трех ситуаций (см. рис. 11.3). 1. Функция полностью выполняется внутри данной dll (шаг 1). 2. Для выполнения функции привлекается сервер csrss, для чего ему посылается сообщение (шаг 2a, за которым обычно следуют шаги 2b и 2c). 3. Данный вызов транслируется в системный сервис (системный вызов), который обычно обрабатывается в модуле ntdll.dll (шаги 3a и 3b). Рис. 11.3. Различные маршруты выполнения вызовов Win32 API Помимо перечисленных, наиболее важных dll-библиотек, в системном каталоге system32 имеется большое количество других dll-файлов. В настоящее время количество вызовов API составляет несколько десятков тысяч. 156
Страницы
- « первая
- ‹ предыдущая
- …
- 154
- 155
- 156
- 157
- 158
- …
- следующая ›
- последняя »