unsigned short HIDDTransferDriver_Read(void *pData, unsigned int dLength) { if (pData == 0) { return hiddTransferDriver.iLen; } if (dLength > HIDDTransferDriver_REPORTSIZE) { dLength = HIDDTransferDriver_REPORTSIZE; } if (dLength > hiddTransferDriver.iLen) { dLength = hiddTransferDriver.iLen; } hiddTransferDriver.iLen = 0; memcpy(pData, hiddTransferDriver.iBuf, dLength); return dLength; }