Поделиться через


IRP_MJ_INTERNAL_DEVICE_CONTROL

Как правило, любая замена существующего драйвера, поддерживающего внутренние запросы на управление устройствами, должна обрабатывать этот запрос в подпрограмме DispatchInternalDeviceControl . Такой драйвер должен поддерживать по крайней мере тот же набор внутренних управляющих кодов ввода-вывода, что и драйвер, который он заменяет. В противном случае существующие драйверы более высокого уровня могут не работать с новым драйвером.

Для обработки этого запроса требуются драйверы, которые заменяют некоторые системные драйверы более низкого уровня. Например, замена драйвера параллельных системных портов должна по-прежнему поддерживать существующие драйверы параллельного класса. Обратите внимание, что некоторые системные драйверы, обрабатывающие этот запрос, не могут быть заменены, в частности, предоставляемые системой драйверы SCSI и видеопорта.

При отправке

В любое время после успешного выполнения запроса на создание.

Входные параметры

Код элемента управления вводом-выводом содержится в parameters.DeviceIoControl.IoControlCode в расположении стека ввода-вывода IRP.

Другие входные параметры зависят от значения кода элемента управления вводом-выводом. Дополнительные сведения см. в разделе Описания буфера для кодов управления вводом-выводом.

Выходные параметры

Выходные параметры зависят от значения кода элемента управления вводом-выводом. Дополнительные сведения см. в разделе Описания буфера для кодов управления вводом-выводом.

Операция

Драйверы получают IRP_MJ_INTERNAL_DEVICE_CONTROL запросов, когда другой драйвер вызывает IoBuildDeviceIoControlRequest или IoAllocateIrp для создания запроса.

Этот код элемента управления вводом-выводом был определен для обмена данными между парными и многоуровневые драйверы в режиме ядра, например одним или несколькими драйверами класса, размещенными через драйвер порта. Драйвер более высокого уровня настраивает IRP с кодами управления вводом-выводом для конкретного устройства или драйвера, запрашивая поддержку у следующего ниже драйвера.

Запрошенная операция зависит от устройства или драйвера.

Общие сведения о кодах элементов управления вводом-выводом для IRP_MJ_DEVICE_CONTROL или IRP_MJ_INTERNAL_DEVICE_CONTROL запросов см. в разделе Использование кодов управления ввода-вывода. См. также раздел Запросы ввода-вывода Type-Specific устройств.

Требования

Заголовок

Wdm.h (включая Wdm.h, Ntddk.h или Ntifs.h)

См. также раздел

DispatchInternalDeviceControl

IoAllocateIrp

IoBuildDeviceIoControlRequest