Preliminary User Guide, Rev. 2 | USS-720 |
February 1999 | USB Device Driver |
| |
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:
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.* |
| |
*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-720USB-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-720USB-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.