IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL(parallel.h)

IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT 요청은 선택적 인터럽트 서비스 루틴과 선택적 지연 포트 검사 루틴을 병렬 포트에 연결합니다. 커널 모드 드라이버만 이 요청을 사용할 수 있습니다.

연결 인터럽트 요청은 드라이버 관련 ISR의 컨텍스트에서 드라이버가 사용할 수 있는 정보를 반환합니다. 이 정보에는 인터럽트 개체에 대한 포인터와 IRQL = DIRQL에서 병렬 포트를 할당하고 해제하는 콜백 루틴에 대한 포인터가 포함됩니다.

참고 Microsoft는 클라이언트에서 제공하는 인터럽트 루틴을 사용하지 않는 것이 좋습니다. 인터럽트 사용으로 인해 시스템 불안정이 발생할 수 있습니다. 기본적으로 연결 인터럽트 요청은 사용하지 않도록 설정됩니다. 자세한 내용은 ParallelPort에 인터럽트 서비스 루틴 연결을 참조하세요.
 

주 코드

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

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION