IRP_MJ_INTERNAL_DEVICE_CONTROL

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

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

发送时间

Create 请求成功完成之后的任何时间。

输入参数

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

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

输出参数

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

操作

当其他驱动程序调用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