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 제어 코드에 대한 버퍼 설명을 참조하세요.

작업

드라이버는 다른 드라이버가 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 포함)

추가 정보

DispatchInternalDeviceControl

IoAllocateIrp

IoBuildDeviceIoControlRequest