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
当另一个驱动程序调用 IoBuildDeviceIoControlRequest 或 IoAllocateIrp来创建请求时,驱动程序会收到IRP_MJ_INTERNAL_DEVICE_CONTROL请求。
此 I/O 控制代码已定义用于配对和分层内核模式驱动程序之间的通信,例如在端口驱动程序上分层的一个或多个类驱动程序。 更高级别的驱动程序使用特定于设备或驱动程序的 I/O 控制代码设置 IRP,请求从下一个较低级别的驱动程序获得支持。
请求的操作特定于设备或驱动程序。
有关 IRP_MJ_DEVICE_CONTROL 或 IRP_MJ_INTERNAL_DEVICE_CONTROL 请求的 I/O 控制代码的一般信息,请参阅 使用 I/O 控制代码。 另请参阅 设备Type-Specific I/O 请求。
要求
标头 |
Wdm.h(包括 Wdm.h、Ntddk.h 或 Ntifs.h) |