Организация ввода-вывода. Часть 2. Драйверы для WINDOWS NT. Рощин А.В. - 63 стр.

UptoLike

Составители: 

63
Функция полностью реализована в пользовательском режиме
внутри DLL подсистемы. То есть вызова исполнительной системы
Windows 2000 не происходит, и после выполнения функции в
пользовательском режиме ее результат возвращается вызвавшей
функцию программе.
Функция требует одного или более вызовов исполнительной
системы Windows 2000. Например, Win32-функции ReadFile и
WriteFile обращаются к внутренним недокументированным
сервисам ввода-
выводак NtReadFile и NtWriteFile,
соответственно.
Функция требует выполнения каких-либо операций в процессе
подсистемы окружения. В этом случае подсистеме окружения
передается сообщение с клиент-серверным запросом выполнения
какой-либо операции. DLL подсистемы в этом случае возвращает
управление вызвавшей программе только после получения
соответствующего ответа.
Некоторые функции, вроде CreateProcess или
CreateThread могут
требовать выполнение и второго, и третьего пунктов.
Так как Win32 является главной подсистемой окружения Windows
2000, код для обработки окон и отображения ввода-вывода помещен
именно в эту подсистему. Другие подсистемы окружения для выполнения
базовых функций ввода-вывода вызывают соответствующие сервисы
Win32. Далее мы рассмотрим более подробно компоненты Windows 2000,
изображенные на
рисунке 2.2.
     − Функция полностью реализована в пользовательском режиме
        внутри DLL подсистемы. То есть вызова исполнительной системы
        Windows 2000 не происходит, и после выполнения функции в
        пользовательском режиме ее результат возвращается вызвавшей
        функцию программе.
     − Функция требует одного или более вызовов исполнительной
        системы Windows 2000. Например, Win32-функции ReadFile и
        WriteFile   обращаются   к    внутренним       недокументированным
        сервисам      ввода-вывода        –   к   NtReadFile   и   NtWriteFile,
        соответственно.
     − Функция требует выполнения каких-либо операций в процессе
        подсистемы окружения. В этом случае подсистеме окружения
        передается сообщение с клиент-серверным запросом выполнения
        какой-либо операции. DLL подсистемы в этом случае возвращает
        управление вызвавшей программе только после получения
        соответствующего ответа.
     Некоторые функции, вроде CreateProcess или CreateThread могут
требовать выполнение и второго, и третьего пунктов.
     Так как Win32 является главной подсистемой окружения Windows
2000, код для обработки окон и отображения ввода-вывода помещен
именно в эту подсистему. Другие подсистемы окружения для выполнения
базовых функций ввода-вывода вызывают соответствующие сервисы
Win32. Далее мы рассмотрим более подробно компоненты Windows 2000,
изображенные на рисунке 2.2.




                                     63