// Note: see usbdi.h in the DDK for the USBD_STATUS source definitions typedef LONG USBD_STATUS; #define USBD_STATUS(Status) ((ULONG)(Status) & 0x0FFFFFFFL) #define USBD_STATE(Status) ((ULONG)(Status) & 0xF0000000L) // HC status codes (Note: both error and stall bit are set) #define USBD_STATUS_SUCCESS ((USBD_STATUS)0x00000000L) #define USBD_STATUS_PENDING ((USBD_STATUS)0x40000000L) #define USBD_STATUS_HALTED ((USBD_STATUS)0xC0000000L) #define USBD_STATUS_ERROR ((USBD_STATUS)0x80000000L) #define USBD_STATUS_CRC ((USBD_STATUS)0xC0000001L) #define USBD_STATUS_BTSTUFF ((USBD_STATUS)0xC0000002L) #define USBD_STATUS_DATA_TOGGLE_MISMATCH ((USBD_STATUS)0xC0000003L) #define USBD_STATUS_STALL_PID ((USBD_STATUS)0xC0000004L) #define USBD_STATUS_DEV_NOT_RESPONDING ((USBD_STATUS)0xC0000005L) #define USBD_STATUS_PID_CHECK_FAILURE ((USBD_STATUS)0xC0000006L) #define USBD_STATUS_UNEXPECTED_PID ((USBD_STATUS)0xC0000007L) #define USBD_STATUS_DATA_OVERRUN ((USBD_STATUS)0xC0000008L) #define USBD_STATUS_DATA_UNDERRUN ((USBD_STATUS)0xC0000009L) #define USBD_STATUS_RESERVED1 ((USBD_STATUS)0xC000000AL) #define USBD_STATUS_RESERVED2 ((USBD_STATUS)0xC000000BL) #define USBD_STATUS_BUFFER_OVERRUN ((USBD_STATUS)0xC000000CL) #define USBD_STATUS_BUFFER_UNDERRUN ((USBD_STATUS)0xC000000DL) #define USBD_STATUS_NOT_ACCESSED ((USBD_STATUS)0xC000000FL) #define USBD_STATUS_FIFO ((USBD_STATUS)0xC0000010L) #define USBD_STATUS_ENDPOINT_HALTED ((USBD_STATUS)0xC0000030L) #define USBD_STATUS_NO_MEMORY ((USBD_STATUS)0x80000100L) #define USBD_STATUS_INVALID_URB_FUNCTION ((USBD_STATUS)0x80000200L) #define USBD_STATUS_INVALID_PARAMETER ((USBD_STATUS)0x80000300L) #define USBD_STATUS_ERROR_BUSY ((USBD_STATUS)0x80000400L) #define USBD_STATUS_REQUEST_FAILED ((USBD_STATUS)0x80000500L) #define USBD_STATUS_INVALID_PIPE_HANDLE ((USBD_STATUS)0x80000600L) #define USBD_STATUS_NO_BANDWIDTH ((USBD_STATUS)0x80000700L) #define USBD_STATUS_INTERNAL_HC_ERROR ((USBD_STATUS)0x80000800L) #define USBD_STATUS_ERROR_SHORT_TRANSFER ((USBD_STATUS)0x80000900L) #define USBD_STATUS_BAD_START_FRAME ((USBD_STATUS)0xC0000A00L) #define USBD_STATUS_ISOCH_REQUEST_FAILED ((USBD_STATUS)0xC0000B00L) #define USBD_STATUS_FRAME_CONTROL_OWNED ((USBD_STATUS)0xC0000C00L) #define USBD_STATUS_FRAME_CONTROL_NOT_OWNED ((USBD_STATUS)0xC0000D00L) #define USBD_STATUS_CANCELED ((USBD_STATUS)0x00010000L) #define USBD_STATUS_CANCELING ((USBD_STATUS)0x00020000L)