IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL(parallel.h)
IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT 요청은 선택적 인터럽트 서비스 루틴과 선택적 지연 포트 검사 루틴을 병렬 포트에 연결합니다. 커널 모드 드라이버만 이 요청을 사용할 수 있습니다.
연결 인터럽트 요청은 드라이버 관련 ISR의 컨텍스트에서 드라이버가 사용할 수 있는 정보를 반환합니다. 이 정보에는 인터럽트 개체에 대한 포인터와 IRQL = DIRQL에서 병렬 포트를 할당하고 해제하는 콜백 루틴에 대한 포인터가 포함됩니다.
주 코드
IRP_MJ_INTERNAL_DEVICE_CONTROL
입력 버퍼
ASSOCIATedIrp.SystemBuffer 멤버는 클라이언트가 입력 인터럽트 서비스 정보에 할당하는 PARALLEL_INTERRUPT_SERVICE_ROUTINE 구조를 가리킵니다. 병렬 포트에 대해 시스템에서 제공하는 함수 드라이버는 동일한 메모리 버퍼를 사용하지만 다른 데이터 형식으로 캐스팅하여 정보를 출력합니다.
입력 버퍼 길이
Parameters.DeviceIoControl.InputBufferLength 멤버는 PARALLEL_INTERRUPT_SERVICE_ROUTINE 구조체의 크기(바이트)로 설정됩니다.
출력 버퍼
ASSOCIATedIrp.SystemBuffer 멤버는 병렬 포트 함수 드라이버가 병렬 인터럽트 정보를 출력하는 데 사용하는 PARALLEL_INTERRUPT_INFORMATION 구조를 가리킵니다.
출력 버퍼 길이
Parameters.DeviceIoControl.OutputBufferLength 멤버는 PARALLEL_INTERRUPT_INFORMATION 구조체의 크기(바이트)로 설정됩니다.
상태 블록
요청이 성공하면 정보 멤버는 PARALLEL_INTERRUPT_INFORMATION 구조체의 크기(바이트)로 설정됩니다. 그렇지 않으면 정보 멤버가 0으로 설정됩니다.
Status 멤버는 병렬 포트에 대한 내부 디바이스 제어 요청에서 반환된 제네릭 상태 값 중 하나 또는 다음 값 중 하나로 설정됩니다.
STATUS_BUFFER_TOO_SMALL
다음 중 적어도 하나가 참입니다.
Parameters.DeviceIoControl.InputBufferLength 멤버의 값은 PARALLEL_INTERRUPT_SERVICE_ROUTINE 구조체의 크기(바이트)보다 작습니다.
Parameters.DeviceIoControl.OuputBufferLength 멤버의 값이 PARALLEL_INTERRUPT_INFORMATION 구조체의 크기(바이트)보다 작습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | parallel.h(Parallel.h 포함) |
추가 정보
PARALLEL_INTERRUPT_SERVICE_ROUTINE