Preliminary User Guide, Rev. 2 USS-720
February 1999 USB Device Driver
Lucent Technologies Inc. 7-13
13
4 I/O Control Codes (continued)
4.4 IOCTL_1284_ SET_MODE
IOCTL_1284_ SET_MODE negotiates the peripheral into one of the valid register modes. Details regarding param-
eters and error codes follow.
4.4.1 Parameters
lpInBuffer—Points to a buffer that contains a single byte that specifies one of the following register modes:
* Using EPP mode is possible in the USS-720 for users capable of writing their own software based on the USS-720 data sheet information.
However, the USS720.SYS driver does not support EPP mode applications.
nInBufferSize—Specifies the size (in bytes) of the buffer pointed to by lpInBuffer. For this operation, this value
should be 1.
lpOutBuffer—Points to an output buffer. Not used with this operation. Set to NULL.
nOutBufferSize—Specifies the size (in bytes) of the buffer pointed to by lpOutBuffer. Not used with this operation.
Set to zero.
lpBytesReturned—Points to a DWORD that receives the actual size (in bytes) of the data stored into lpOutBuffer.
Not used with this operation.
4.4.2 Notes
All operations expect the USS-720 device to have been reset (see IOCTL_SOFT_RESET) before executing this
command.
In standard, bidirectional, and compatibility register modes, no 1284 negotiation takes place. The USS-720 device
is simply placed into the appropriate register-based operation. (See
USS-720 USB-to-
IEEE
1284 Bridge
Prelimi-
nary Data Sheet, “Register-Based Operations.”)
In ECP_REGISTER_MODE and ECP_RLE_REGISTER_MODE, the USS-720 device is placed into ECP register-
based operation after correctly negotiating into ECP mode via the Control and Status registers. (See
USS-720
USB-to-
IEEE
1284 Bridge
Preliminary Data Sheet, “Register-Based Operations.”)
4.4.3 Error Codes
ERROR_INVALID_ALTERNATESETTING—This command is only supported in ALT_INTERFACE_2 (see Section
4.9 of this document).
ERROR_INVALID_REGISTER_MODE—Register mode is either invalid or not currently supported for the device
instance.
STATUS_IO_DEVICE_ERROR—Negotiation failed.
Register Mode Description
STANDARD_REGISTER_MODE Sets USS-720 into register-based Standard Mode.
BIDIRECTIONAL_REGISTER_MODE Sets USS-720 into register-based Bidirectional Mode.
COMPATIBILITY_REGISTER_MODE Sets USS-720 into register-based Compatibility Mode.
ECP_REGISTER_MODE Negotiates the USS-720 into register-based ECP Mode without RLE.
ECP_RLE_REGISTER_MODE Negotiates the USS-720 into register-based ECP Mode with RLE.
EPP_REGISTER_MODE Currently not supported.*