Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Компьютер состоит из различных устройств, которые обеспечивают ввод и вывод данных между внутренней системой и внешним миром. Типичными устройствами являются клавиатуры, мыши, звуковые контроллеры, контроллеры видео, диски, сетевые порты и т. д. Драйверы устройств обеспечивают программное подключение между устройствами и операционной системой. По этой причине ввод-вывод важен для разработчиков драйверов устройств.
Диспетчер ввода-вывода в режиме ядра Windows управляет взаимодействием между приложениями и интерфейсами, предоставляемыми драйверами устройств. Так как устройства работают со скоростью, которая может не соответствовать операционной системе, обмен данными между операционной системой и драйверами устройств в основном осуществляется с помощью пакетов запросов ввода-вывода (IRPs). Эти пакеты похожи на сетевые пакеты или пакеты сообщений Windows. Они передаются из операционной системы в определенные драйверы и от одного драйвера к другому.
Система ввода-вывода Windows предоставляет многоуровневую модель драйвера, называемую стеками. Как правило, IRP переходят от одного драйвера к другому в одном стеке, чтобы упростить взаимодействие. Например, драйвер джойстика должен взаимодействовать с USB-концентратором, который, в свою очередь, должен будет взаимодействовать с USB-контроллером хоста, который затем должен будет взаимодействовать с остальной частью оборудования компьютера через шину PCI. Стек состоит из драйвера джойстика, USB-концентратора, контроллера USB-узла и шины PCI. Это взаимодействие координируется тем, что каждый драйвер в стеке отправляет и получает IRPs.
Нельзя переоценить важность того, чтобы ваш драйвер отправлял и получал IRP своевременно для эффективной работы всей системы. Если ваш драйвер является частью стека и неправильно получает, обрабатывает и передает информацию, это может привести к сбоям системы.
Дополнительные сведения об IRP см. в разделе "Обработка irPs".
Дополнительные сведения о стеках драйверов см. в разделе "Объекты устройств" и "Стеки устройств".
Методы программирования, связанные с управлением ввода-выводами, см. в разделе "Методы программирования диспетчера операций ввода-вывода".
Подпрограммы, предоставляющие прямой интерфейс диспетчеру ввода-вывода, обычно префиксируются буквами "Io"; Например, IoCreateDevice. Список подпрограмм диспетчера ввода-вывода см. в разделе "Подпрограммы диспетчера ввода-вывода".
Дополнительные сведения см. в статьях о пакетах запросов ввода-вывода и структуре IRP (wdm.h).
Диспетчер ввода-вывода имеет два подкомпонента: диспетчер Plug and Play и диспетчер питания. Они управляют функциональными возможностями ввода-вывода для технологий plug and Play и управления питанием. Дополнительные сведения об управлении подключаемыми и воспроизводимыми устройствами см. в статье Windows Kernel-Mode Plug and Play Manager и дополнительные сведения об управлении питанием см. в Windows Kernel-Mode Power Manager.