다음을 통해 공유


IOCTL_IEEE1284_NEGOTIATE IOCTL(ntddpar.h)

IOCTL_IEEE1284_NEGOTIATE 요청은 병렬 디바이스에 사용되는 읽기 및 쓰기 프로토콜을 설정합니다. 이 요청을 수행하려면 병렬 디바이스가 연결된 병렬 포트를 잠그고 병렬 디바이스를 선택해야 합니다. 병렬 포트용 시스템 제공 버스 드라이버는 병렬 디바이스와 협상하여 클라이언트에서 지정한 모드 중에서 호스트 칩셋과 병렬 디바이스 모두에서 지원하는 가장 빠른 모드를 결정합니다. 병렬 포트 버스 드라이버는 기본 읽기 및 쓰기 모드를 협상된 모드로 설정합니다.

자세한 내용은 병렬 디바이스에 대한 통신 모드 설정 및 지우기 를 참조하세요.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

ASSOCIATedIrp.SystemBuffer 멤버는 클라이언트가 모드 정보의 입력 및 출력에 할당하는 PARCLASS_NEGOTIATION_MASK 구조를 가리킵니다. 클라이언트는 usReadMaskusWriteMask 멤버를 설정합니다.

입력 버퍼 길이

Parameters.DeviceIoControl.InputBufferLength 멤버는 PARCLASS_NEGOTIATION_MASK 구조체의 크기(바이트)로 설정됩니다.

출력 버퍼

AssociatedIrp.SystemBuffer는 병렬 포트에 대한 시스템 제공 버스 드라이버가 출력 모드 정보에 사용하는 PARCLASS_NEGOTIATION_MASK 구조를 가리킵니다. 병렬 포트 버스 드라이버는 usReadMaskusWriteMask 멤버를 협상 모드로 설정합니다.

출력 버퍼 길이

PARCLASS_NEGOTIATION_MASK 구조체의 길이입니다.

상태 블록

요청이 성공하면 정보 멤버가 PARCLASS_NEGOTIATION_MASK 구조체의 크기(바이트)로 설정됩니다. 그렇지 않으면 정보 멤버가 0으로 설정됩니다.

Status 멤버는 병렬 디바이스에 대한 디바이스 제어 요청에서 반환된 일반 상태 값 중 하나 또는 다음 값으로 설정됩니다.

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength 멤버의 값이 PARCLASS_NEGOTIATION_MASK 크기(바이트)보다 작습니다.

요구 사항

요구 사항
헤더 ntddpar.h(Ntddpar.h 포함)

추가 정보

PARCLASS_NEGOTIATION_MASK

IOCTL_PAR_GET_DEVICE_CAPS

IOCTL_PAR_GET_DEFAULT_MODES

IOCTL_IEEE1284_GET_MODE