IRP_MJ_INTERNAL_DEVICE_CONTROL

通常,对支持内部设备控制请求的现有驱动程序的任何替换都应在 DispatchInternalDeviceControl 例程中处理此请求。 此类驱动程序必须至少支持与它替换的驱动程序相同的一组内部 I/O 控制代码。 否则,现有的更高级别的驱动程序可能无法与新驱动程序一起使用。

需要替换某些较低级别的系统驱动程序的驱动程序来处理此请求。 例如,系统并行端口驱动程序的替换必须继续支持现有的并行类驱动程序。 请注意,无法替换处理此请求的某些系统驱动程序,尤其是系统提供的 SCSI 和视频端口驱动程序。

发送时

创建请求成功完成后的任何时间。

输入参数

I/O 控制代码包含在 IRP 的 I/O 堆栈位置的 Parameters.DeviceIoControl.IoControlCode 中。

其他输入参数取决于 I/O 控件代码的值。 有关详细信息,请参阅 I/O 控制代码的缓冲区说明

输出参数

输出参数取决于 I/O 控件代码的值。 有关详细信息,请参阅 I/O 控制代码的缓冲区说明

Operation

当另一个驱动程序调用 IoBuildDeviceIoControlRequestIoAllocateIrp来创建请求时,驱动程序会收到IRP_MJ_INTERNAL_DEVICE_CONTROL请求。

此 I/O 控制代码已定义用于配对和分层内核模式驱动程序之间的通信,例如在端口驱动程序上分层的一个或多个类驱动程序。 更高级别的驱动程序使用特定于设备或驱动程序的 I/O 控制代码设置 IRP,请求从下一个较低级别的驱动程序获得支持。

请求的操作特定于设备或驱动程序。

有关 IRP_MJ_DEVICE_CONTROLIRP_MJ_INTERNAL_DEVICE_CONTROL 请求的 I/O 控制代码的一般信息,请参阅 使用 I/O 控制代码。 另请参阅 设备Type-Specific I/O 请求

要求

标头

Wdm.h(包括 Wdm.h、Ntddk.h 或 Ntifs.h)

另请参阅

DispatchInternalDeviceControl

IoAllocateIrp

IoBuildDeviceIoControlRequest