Preliminary User Guide, Rev. 2 | USS-720 |
February 1999 | USB Device Driver |
| |
3 I/O File Functions (continued)
3.2 ReadFile
The ReadFile I/O file function reads data from the Bulk In pipe and returns TRUE if the function is successful and FALSE if it fails. Details regarding the syntax, parameters, return values, and error codes are listed below.
3.2.1 Syntax | |
BOOL | |
ReadFile( | |
HANDLE | hDev, |
LPVOID | lpBuffer, |
DWORD | nNumberOfBytesToRead, |
LPDWORD | lpNumberOfBytesRead, |
LPOVERLAPPED | lpOverlapped |
); | |
3.2.2 Parameters
Input:
hDev—Handle returned from a successful CreateFile.
nNumberOfBytesToRead—Specifies the number of bytes to read from the device.
lpOverlapped—Pointer to an OVERLAPPED structure. This is an optional parameter that can be “NULL” if overlap- ping I/O is not required.
Output:
lpBuffer—Pointer to the buffer to receive data from the Bulk In pipe of the device. This buffer is assumed to be in locked system memory allocated from the nonpaged pool.
lpNumberOfBytesRead—Pointer to the number of bytes that were read.
3.2.3 Return Values
If the function succeeds, the return value is TRUE (1).
If the function fails, the return value is FALSE (0). To get extended error information, call GetLastError.
3.2.4 Notes
See the Win32 SDK documentation for complete definitions.
3.2.5 Error Codes
ERROR_DEVICE_REMOVE—The device instance has been removed.
ERROR_DEVICE_STOP—The device instance has been stopped.
ERROR_INVALID_ALTERNATESETTING—The current alternate interface setting for this device instance does not support the Bulk In pipe.
ERROR_PIPE_ALREADY_OPEN—The Bulk In pipe for this device instance is already open.
STATUS_INVALID_HANDLE—The Bulk In pipe handle is invalid for this device instance.
STATUS_INVALID_PARAMETER—The pipe type is invalid for this device instance.
STATUS_INSUFFICIENT_RESOURCES—Not enough memory to allocate a request to read Bulk In on this device instance.