다음을 통해 공유


IOCTL_USBPRINT_GET_1284_ID IOCTL(usbprint.h)

IOCTL_USBPRINT_GET_1284_ID 제어 코드를 사용하면 상위 계층 소프트웨어(예: 언어 모니터)가 프린터의 IEEE 1284 디바이스 ID 문자열을 요청하고 가져올 수 있습니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

이 작업에는 사용되지 않습니다. 이 매개 변수를 NULL로 설정합니다.

입력 버퍼 길이

이 작업에는 사용되지 않습니다. 이 매개 변수를 0으로 설정합니다.

출력 버퍼

출력 버퍼에는 UCHAR 데이터가 포함됩니다. 성공 시 이 버퍼는 디바이스의 IEEE 1284 디바이스 ID 크기를 바이트 단위로 지정하는 2바이트 접두사를 보유할 수 있습니다. 디바이스 ID; 및 null 종결자입니다. IEEE 1284 디바이스 ID의 크기는 최대 64KB입니다. 실패 시 GetLastErrorSTATUS_BUFFER_TOO_SMALL 오류 코드를 반환하는 경우 출력 버퍼가 의도한 데이터를 저장할 만큼 크지 않습니다.

출력 버퍼 길이

출력 버퍼는 디바이스의 IEEE 1284 디바이스 ID 길이, 디바이스 ID(최대 64KB 크기) 및 종료 null을 보유하는 2바이트 수량을 포함할 수 있을 만큼 커야 합니다.

IOCTL_USBPRINT_GET_1284_ID 출력 버퍼 길이는 USB 패킷에 직접 배치됩니다. 일부 USB 인쇄 디바이스에서 최대 65535바이트를 사용하면 오류 23과 함께 호출이 실패할 수 있습니다. 버퍼를 4094바이트 이하로 줄여 이 문제를 resolve.

상태 블록

Irp->요청이 성공하면 IoStatus.StatusSTATUS_SUCCESS 설정됩니다. 그렇지 않으면 NTSTATUS 코드로 적절한 오류 조건에 대한 상태입니다.

요구 사항

요구 사항
헤더 usbprint.h

추가 정보

드라이버에서 IOCTL 요청 만들기

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously