IRP_MJ_INTERNAL_DEVICE_CONTROL

Im Allgemeinen sollte jeder Ersatz für einen vorhandenen Treiber, der interne Gerätesteuerungsanforderungen unterstützt, diese Anforderung in einer DispatchInternalDeviceControl-Routine behandeln. Ein solcher Treiber muss mindestens die gleichen internen E/A-Steuerungscodes unterstützen wie der Treiber, den er ersetzt. Andernfalls funktionieren vorhandene Treiber auf höherer Ebene möglicherweise nicht mit dem neuen Treiber.

Treiber, die bestimmte Systemtreiber auf niedrigerer Ebene ersetzen, sind erforderlich, um diese Anforderung zu verarbeiten. Beispielsweise muss ein Ersatz für den System-Parallelporttreiber weiterhin vorhandene parallele Klassentreiber unterstützen. Beachten Sie, dass bestimmte Systemtreiber, die diese Anforderung verarbeiten, nicht ersetzt werden können, insbesondere die vom System bereitgestellten SCSI- und Videoporttreiber.

Sendebedingungen

Jederzeit nach dem erfolgreichen Abschluss einer Erstellungsanforderung.

Eingabeparameter

Der E/A-Steuerungscode ist unter Parameters.DeviceIoControl.IoControlCode im E/A-Stapelspeicherort des IRP enthalten.

Andere Eingabeparameter hängen vom Wert des E/A-Steuerelementcodes ab. Weitere Informationen finden Sie unter Pufferbeschreibungen für E/A-Steuerungscodes.

Ausgabeparameter

Ausgabeparameter hängen vom Wert des E/A-Steuerelementcodes ab. Weitere Informationen finden Sie unter Pufferbeschreibungen für E/A-Steuerungscodes.

Vorgang

Treiber erhalten IRP_MJ_INTERNAL_DEVICE_CONTROL Anforderungen, wenn ein anderer Treiber entweder IoBuildDeviceIoControlRequest oder IoAllocateIrp aufruft, um eine Anforderung zu erstellen.

Dieser E/A-Steuerungscode wurde für die Kommunikation zwischen gekoppelten und mehrschichtigen Kernelmodustreibern definiert, z. B. einem oder mehreren Klassentreibern, die über einen Porttreiber verteilt sind. Der Treiber der höheren Ebene richtet IRPs mit geräte- oder treiberspezifischen E/A-Steuerungscodes ein und fordert Unterstützung vom nächstniedrigen Treiber an.

Der angeforderte Vorgang ist geräte- oder treiberspezifisch.

Allgemeine Informationen zu E/A-Steuerungscodes für IRP_MJ_DEVICE_CONTROL - oder IRP_MJ_INTERNAL_DEVICE_CONTROL-Anforderungen finden Sie unter Verwenden von E/A-Steuerungscodes. Siehe auch Geräte Type-Specific E/A-Anforderungen.

Anforderungen

Header

Wdm.h (einschließlich Wdm.h, Ntddk.h oder Ntifs.h)

Weitere Informationen

DispatchInternalDeviceControl

IoAllocateIrp

IoBuildDeviceIoControlRequest