IOCTL 및 FSCTL 작업 IRP-Based
다음 IRP 기반 I/O 작업은 I/O 제어 코드(IOCTL) 또는 FSCTL(파일 시스템 제어 코드)의 정의에 지정된 전송 형식과 일치하는 버퍼링 메서드를 사용합니다.
IRP_MJ_DEVICE_CONTROL
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_INTERNAL_DEVICE_CONTROL
전송 형식은 CTL_CODE 매크로의 TransferType 매개 변수에 지정됩니다. 지정된 IOCTL 또는 FSCTL에 대한 전송 형식을 가져오려면 다음 매크로를 사용합니다.
#define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3))
이 매크로는 다음 값 중 하나를 반환합니다.
#define METHOD_BUFFERED 0
#define METHOD_IN_DIRECT 1
#define METHOD_OUT_DIRECT 2
#define METHOD_NEITHER 3
CTL_CODE 매크로에 대한 자세한 내용은 I/O 컨트롤 코드 정의를 참조하세요.
IRP_MJ_DEVICE_CONTROL 빠른 I/O 작업일 수도 있습니다. 빠른 I/O 작업인 경우 IOCTL의 전송 유형에 관계없이 항상 버퍼링되거나 직접 I/O를 사용하지 않습니다. IRP_MJ_DEVICE_CONTROL 빠른 I/O 작업이 될 수 있는 경우에 대한 자세한 내용은 IRP-Based 수 있는 작업 또는 빠른 I/O를 참조하세요.