📄 bol.h
字号:
// BulkOnlyLyr.h: interface for the BulkOnlyLyr class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BULKONLYLYR_H__C1CE6111_44E4_4841_8E38_5F700BA360B8__INCLUDED_)
#define AFX_BULKONLYLYR_H__C1CE6111_44E4_4841_8E38_5F700BA360B8__INCLUDED_
#include "kernel.h"
#define CSW_GOOD 0x00
#define CSW_FAIL 0x01
#define CSW_PHASE_ERROR 0x02
#define CSW_WAITFOR_MORE_DATA 0x03
#define CSW_NEEDTO_STALL_BULK 0x04
#define LITTLE_ENDIAN
#ifdef LITTLE_ENDIAN
#define CBW_SIGNATURE 0x43425355
#define CSW_SIGNATURE 0x53425355
#else
#define CBW_SIGNATURE 0x55534243
#define CSW_SIGNATURE 0x55534253
#endif
#define CBW_FLAG_IN 0x80 //Device to host
// BOL_BulkCtrl control code
#define STALL 0
// stall param
#define STALL_BULKIN 0
#define STALL_BULKOUT 1
#define STALL_BULKALL 2
#define GETSTATUS 1
// status:
#define DEVICE_STALL 0
#define DEVICE_IDLE 1
typedef struct tagCBW
{
DWORD dwSignature;
DWORD dwTaget;
DWORD dwDataXferLen;
BYTE uFlag;
BYTE uLUN;
BYTE uCDBLen;
BYTE RBC[16];
}CBW;
typedef struct tagCSW
{
DWORD dwSignature;
DWORD dwTaget;
DWORD dwDataResidue;
BYTE uStatus;
}CSW;
typedef UINT (* ULP_ONRECEIVEDPROC)(UINT uLen, BYTE *pCDB, UINT uDirection, DWORD dwXansfer, DWORD *pdwResidue);
UINT BOL_Init(UINT uMaxLUN, ULP_ONRECEIVEDPROC *pfnULP_OnReceived);
UINT BOL_BulkCtrl(UINT uCtrl, DWORD *dwParam); // Bulk endpoint control function.
DWORD BOL_BulkIn(DWORD uDLen, BYTE *pData); // Send data that from device to host by usb-driver
DWORD BOL_BulkOut(DWORD uDLen, BYTE *pData); // Get data that send by host from LLP by usb-driver
// LLP callback function.
UINT BOL_OnRecvCmd(UINT uLen, BYTE *pData);
#endif // !defined(AFX_BULKONLYLYR_H__C1CE6111_44E4_4841_8E38_5F700BA360B8__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -