Организация ввода-вывода. Часть 1. Виртуальные драйверы и виртуальное окружение WINDOWS. Рощин А.В. - 50 стр.

UptoLike

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

50
разрешены, однако системная VM уже разрушена, так что Simulate_Int и
Exec_Int больше недоступны. Большинство VxD закрываются во время
System_Exit, закрывая свои устройства. Последнее сообщение
Sys_Critical_Exit посылается с запрещенными прерываниями.
Большинство VxD не обрабатывают это сообщение.
3.7. Сообщения инициализации и завершения
динамически загружаемых VxD
Динамически загружаемый VxD не видит сообщений инициализации
системы (Sys_Critical_Init, Device_Init, и Init_Complete
) потому что он не
был загружен, когда эти сообщения выдавались. Однако, VMM
обеспечивает аналогичное сообщение для динамического VxD в процессе
процедуры его загрузкиSys_Dynamic_Device_Init, и другого сообщения,
когда VxD выгружаетсяSys_Dynam c_Device_Exit.
Динамический VxD обрабатывает сообщение
Sys_Dynamic_Device_Init так же, как статический VxD обработал бы
сообщения инициализации системывыполняя инициализацию основного
устройства, перехватывая порты ввода-вывода, устанавливая
обработчики
аппаратных прерываний и т.д. Следует обратить внимание на то, что
некоторые сервисные функции VMM доступны только в процессе
инициализации системы и поэтому не могут использоваться
динамическими VxD (см. перечень сервисных функций DDK Windows 95).
Динамический VxD может сообщить о неудачной попытке загрузки,
возвращаяcь из обработчика сообщения Sys_Dynamic_Device_Init с
установленным флагом переноса.
Хотя статически загружаемые VxD получают несколько сообщений
завершения системы, статические VxD часто небрежны в отношении
освобождения ресурсов в процессе завершения, так как сами Windows
завершают свою работу. Напротив, динамический VxD должен очень
                                        50



разрешены, однако системная VM уже разрушена, так что Simulate_Int и
Exec_Int больше недоступны. Большинство VxD закрываются во время
System_Exit,   закрывая   свои       устройства.    Последнее   сообщение   –
Sys_Critical_Exit    посылается        с     запрещенными       прерываниями.
Большинство VxD не обрабатывают это сообщение.

      3.7. Сообщения инициализации и завершения
           динамически загружаемых VxD

      Динамически загружаемый VxD не видит сообщений инициализации
системы (Sys_Critical_Init, Device_Init, и Init_Complete) потому что он не
был   загружен, когда     эти       сообщения   выдавались. Однако, VMM
обеспечивает аналогичное сообщение для динамического VxD в процессе
процедуры его загрузки – Sys_Dynamic_Device_Init, и другого сообщения,
когда VxD выгружается – Sys_Dynam c_Device_Exit.
      Динамический            VxD            обрабатывает           сообщение
Sys_Dynamic_Device_Init так же, как статический VxD обработал бы
сообщения инициализации системы – выполняя инициализацию основного
устройства, перехватывая порты ввода-вывода, устанавливая обработчики
аппаратных прерываний и т.д. Следует обратить внимание на то, что
некоторые сервисные функции VMM доступны только в процессе
инициализации       системы     и     поэтому      не   могут   использоваться
динамическими VxD (см. перечень сервисных функций DDK Windows 95).
Динамический VxD может сообщить о неудачной попытке загрузки,
возвращаяcь из обработчика сообщения Sys_Dynamic_Device_Init с
установленным флагом переноса.
      Хотя статически загружаемые VxD получают несколько сообщений
завершения системы, статические VxD часто небрежны в отношении
освобождения ресурсов в процессе завершения, так как сами Windows
завершают свою работу. Напротив, динамический VxD должен очень