亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? phcd.hpp

?? ISP1161 USB Driver under WinCE for StrongARM processor implementation
?? HPP
?? 第 1 頁 / 共 3 頁
字號:
typedef BOOL (* LPUSBD_HCD_ATTACH_PROC)(LPVOID lpvHcd, LPCHCD_FUNCS lpHcdFuncs,
                                        LPLPVOID lppvContext);
typedef BOOL (* LPUSBD_HCD_DETACH_PROC)(LPVOID lpvContext);
typedef BOOL (* LPUSBD_ATTACH_PROC)(LPVOID lpvContext, UINT iDevice,
                                    UINT iEndpointZero,
                                    LPCUSB_DEVICE lpDeviceInfo,
                                    LPLPVOID lppvDeviceDetach);
typedef BOOL (* LPUSBD_DETACH_PROC)(LPVOID lpvDeviceDetach);


class CPhcd
{
public:
    CPhcd::CPhcd(LPVOID lpvPhcdPddObject, CPhysMem * pobMem,
            LPCWSTR szDriverRegistryKey, REGISTER regBase, DWORD dwSysIntr);
    ~CPhcd();

    BOOL Initialize(void);

    static ULONG CALLBACK UsbDriverThreadStub(PVOID context);
    static ULONG CALLBACK UsbDriverCriticalThreadStub(PVOID context);
    static DWORD WINAPI DeviceStatusChangeStub(LPVOID lpvNotifyParameter);
//    static VOID CALLBACK PowerMgmtCallbackStub(DWORD dwContext, BOOL bOff);

    // Called indirectly through client threads

    BOOL GetFrameNumber(LPDWORD lpdwFrameNumber);
    BOOL GetFrameLength(LPUSHORT lpuFrameLength);
    BOOL SetFrameLength(HANDLE hEvent, USHORT uFrameLength);
    BOOL StopAdjustingFrame();

    BOOL OpenPipe(UINT iDevice, LPCUSB_ENDPOINT_DESCRIPTOR lpEndpointDescriptor,
            LPUINT lpiEndpointIndex);

    BOOL ClosePipe(UINT iDevice, UINT iEndpointIndex);
    BOOL ResetPipe(UINT iDevice, UINT iEndpointIndex);
    BOOL IsPipeHalted(UINT iDevice, UINT iEndpointIndex, LPBOOL lpbHalted);

    BOOL IssueTransfer(UINT iDevice, UINT iEndpointIndex,
            LPTRANSFER_NOTIFY_ROUTINE lpStartAddress, LPVOID lpvNotifyParameter,
            DWORD dwFlags, LPCVOID lpvControlHeader, DWORD dwStartingFrame,
            DWORD dwFrames, LPCDWORD aLengths, DWORD dwBufferSize,
            LPVOID lpvBuffer, ULONG paBuffer, LPCVOID lpvCancelId,
            LPDWORD adwIsochErrors, LPDWORD adwIsochLengths, LPBOOL lpfComplete,
            LPDWORD lpdwBytesTransfered, LPDWORD lpdwError);

    BOOL AbortTransfer(UINT iDevice, UINT iEndpointIndex,
                       LPTRANSFER_NOTIFY_ROUTINE lpStartAddress,
                       LPVOID lpvNotifyParameter, LPCVOID lpvCancelId);

    VOID PowerMgmtCallback(BOOL bOff);

private:
	int find_dev_with_endpt(SEndpoint *pEndpt);  // locate the SDevice index on which the endpoint is located
	BOOL m_fTimeWarp;    // TRUE iff we're processing a writebackdone queue from before a recent power-on
	BOOL m_fStabilizing; // TRUE while cleaning up after a power-suspend/resume cycle

//#ifdef DEBUG
    EError DumpRegisters(void);
	void   DecodeControlTransfer(SEndpoint * pEndpt, PUSB_DEVICE_REQUEST pDr);
    EError GuaranteeTdList(SEndpoint *pEndpt);
    EError DumpControlQueue(void);
    EError DumpIsochQueue(void);
    void   DumpDeviceInfo(LPPHCI_DEVICE pDevInfo);
//#endif

    DWORD UsbDriverCriticalThread(void);
    DWORD UsbDriverThread(void);
    DWORD DeviceStatusChange(SThreadParams * pThreadInfo);
    EError InitializeSchedule(void);
    EError InitializeInterruptEds(void);
    EError InitializeHardware(void);
    VOID   EnterOperationalState(void);
#ifdef USE_CRITICAL_THREAD
    EError DeQueueCriticalITd(ULONG paITd);
    EError DeQueueCriticalTd(ULONG paTd);
    EError HandleCriticalWritebackDone(ULONG paDoneHead);
#endif
    EError DeQueueTdList(ULONG paTdHead);
    EError CopyIsochFrameData(
            SIsochTransferDescriptor * pITd, STransfer * pTransfer);
    EError DeQueueITdList(ULONG paITdHead);
    EError HandleWritebackDone(ULONG paDoneHead);
	EError HandleConnectChange(void);
    EError CleanupSchedule(void);
    BOOL CleanupFrame(void);
    EError FreeTds(SEndpoint * pEndpt, LPCVOID lpvCancelId);
    EError CleanupEds(void);

    ULONG   GrowTdList(ULONG cNumITds);
    SEndpointDescriptor * GetEd(void);
    SGeneralTransferDescriptor * GetTd(UINT numToGet = 1);
    EError FreeTd(SGeneralTransferDescriptor * pTd);
    ULONG  GrowITdList(ULONG cNumITds);
    SIsochTransferDescriptor * GetITd(void);
    EError FreeITd(SIsochTransferDescriptor * pITd);
    SDevice * FindDevice(UCHAR hub, UCHAR port, UCHAR configStatus);
    EError GetDeviceDescriptor(SDevice * pDev, DWORD dwBufferSize);
    EError GetInitialDeviceDescriptor(SDevice * pDev0);
    EError SetAddress(SDevice * pDev0);
    EError GetRealDeviceDescriptor(SDevice * pDev);
    EError ParseDeviceDescriptor(SDevice * pDev);
    EError GetConfigDesc(SDevice *pDev, UINT iConfiguration,
            DWORD dwBufferSize);
    EError SendRealGetConfig(SDevice * pDev);
    EError ParseConfigDescriptor(SDevice * pDev);
    EError CheckConfiguration(SDevice * pDev, UINT iConfiguration);
    EError CheckHubPowerConfiguration(SDevice * pDev);
    EError SetConfiguration(SDevice * pDev, UINT iConfiguration);
    EError DoneInitialDeviceSetup(SDevice * pDev);
    EError FreeAddr0(void);
    UINT CalculateOverhead(UCHAR bEndptType, UINT cMaxPacket);
    BOOL CalculateBandwidth(UINT nRequiredBandwidth, PUINT pCurBandwidth);
    EError HandlePowerUp(void);

    EError InitializeHub(SDevice * pDev, PUSB_ENDPOINT_DESCRIPTOR pEd);

    EError ConfigureHub(SDevice * pDev);

    EError SendHubPortTransfer(SDevice * pDev, UCHAR bRequest, USHORT wValue,
                               USHORT wIndex);

    EError PowerHubPorts(SDevice * pDev);

    EError SendHubInterrupt(SDevice * pDev);

    UINT FindSignaledPort(PBYTE pBuffer, UINT bufferSize);

    EError HandleHubInterrupt(SDevice * pDev);

    EError InterpretPortStatus(SDevice * pDev);
    
    EError IssuePortReset(SDevice *pDev, BOOL fRootHub, DWORD dwDelay);
    static ULONG  CALLBACK ResetPortStub(LPVOID context);
    DWORD  ResetPortThread(SDevice *pDev, BOOL fRootHub, DWORD dwDelay);

    EError ResetHubPort(SDevice * pDev);

    EError GetStatus(SDevice * pDev, BOOL fDeviceStatus);

    EError FinishResettingPort(SDevice * pDev);


    EError ClearPortChangeNotifications(SDevice * pDev);

    EError FreeHubPort0(SDevice * pDev);

    EError FreeEndptDesc(SEndpointDescriptor * pEd, BOOL bIsIsoch);

    UINT ConvertInterval(UCHAR interval, PUCHAR pNewInterval);

    EError AddEndptDescToSchedule(SEndpointDescriptor * pEd, UCHAR endptType,
            UCHAR intrInterval, UINT nReservedBandwidth);

    ULONG FindIntrAddLocation(UCHAR intrInterval);

    EError RemoveEndptDescFromSchedule(SEndpointDescriptor * pEd,
                                       UCHAR endptType);

    BOOL FindEdInIntrBranch(ULONG paEd, PULONG ppaCur, PULONG ppaPrev,
            UINT depth);

    SDevice * AddDevice(UCHAR hubNum, UCHAR port, UCHAR bIsLowSpeed);


    EError EnqueueDeviceStatusChange(SDevice *pDev, BOOL fAttach);

    EError RemoveDevice(SDevice * pDev);

    EError MarkDeviceForRemoval(SDevice * pDev);

    SEndpoint * AddEndpoint(SDevice * pDev, PCUSB_ENDPOINT_DESCRIPTOR pUEd,
            UINT nReservedBandwidth);

    EError RemoveEndpoint(SEndpoint * pEndpt);

    EError RemoveMultipleEndpoints(SDevice * pDev, UINT first, UINT last);

    EError InitiateGeneralTransfer(SEndpoint * pEndpt, STransfer * pTransfer,
            BOOL fToDevice, BOOL fShortPacketOk, ULONG paSetupBuf,
            SPhysAddr *pDataHead, BOOL fAddTransfer);

    EError InitiateIsochTransfer(SEndpoint * pEndpt, STransfer * pTransfer,
            SPhysAddr * pDataHead, BOOL fUseStartingFrame,
            DWORD dwStartingFrame, const DWORD * aOffsets);

//  USHORT
//  CalculateIsochStartFrame(
//      SEndpointDescriptor *pEd);

    EError CompleteTransfer(SDevice * pDev, SEndpoint * pEndpt,
                            DWORD conditionCode);


    EError CompleteClassTransfer(SEndpoint * pEndpt, DWORD conditionCode,
                                 STransfer * pTransfer);

    PCHCD_FUNCS m_pHcdFuncs;
    LPVOID m_pvPhcdPddObject;

    ULONG m_paWriteBackDone;
    ULONG m_paWriteBackDone2;
    ULONG m_paLastWriteBackDone;

    ULONG m_paHcControlHeadEdSave;
    ULONG m_paHcBulkHeadEdSave;

    BOOL m_fWDH;
    BOOL m_fSF;
    BOOL m_fRHSC;
    BOOL m_fSO;
    BOOL m_fUE;
    BOOL m_fFNO;

    HANDLE m_hClientDriverComplete;
    HANDLE m_hUsbPsudoInterrupt;

    BOOL m_fCriticalRunning;

#ifdef USE_CRITICAL_THREAD
    INT m_cCriticalTds;
    HANDLE m_hReleaseCriticalThread;
    HANDLE m_hCriticalThreadDone;
    HANDLE m_hCriticalThread;
#endif

    HANDLE m_hUsbInterrupt;
    HANDLE m_hIsrThread;
    BOOL m_bClosing;
    BOOL m_bPoweredUpAfterPowerDown;

    REGISTER    m_regBase;
    DWORD   m_sysIntr;

#ifdef USE_CRITICAL_THREAD
    CRITICAL_SECTION m_csClientInstallCriticalThread;
    CRITICAL_SECTION m_csCriticalTds;
#endif

    CRITICAL_SECTION m_csTdListsLock;

    SGeneralTransferDescriptor * m_pFreeTdList;
    SIsochTransferDescriptor * m_pFreeITdList;

    CRITICAL_SECTION m_csSTdInfoListLock;
    STdInfo * m_pFreeSTdInfoHead;
    STdInfo * m_pTdProcessList;


    CRITICAL_SECTION m_csScheduleLock; // locks anything to do with ED's

    HINSTANCE   m_hUSBDInstance;
    LPUSBD_ATTACH_PROC      m_pAttachProc;
    LPUSBD_DETACH_PROC      m_pDetachProc;
    LPVOID                  m_pvHcdContext;

    CRITICAL_SECTION m_csFrameAdjustment;
    HANDLE  m_hAdjustmentEvent;
    INT     m_nAdjustFrame;
    SHORT   m_nLastAdjustmentFrame;
    BOOL    m_fAdjust;

    UINT    m_nReserveFakeBandwidth;
    DWORD   m_dwFrameNumber;

    UINT    m_numRootHubPorts;
    CRITICAL_SECTION m_csAddr0Lock;
    CRITICAL_SECTION m_csPortPower;
    DWORD   *m_PortPowerAllocated;     // Array of numRootHubPorts for tracking power
    UINT    m_PowerOnToPowerGoodTime;  // In 2ms increments
    BOOL    m_bAddr0Busy;
    UINT    m_addrThatOwnsAddr0;
    UINT    m_numPortsWaitingForAddr0;
    UINT    m_addr0CurRetryValue;

    UINT    m_schedOverrunCount;

    PBYTE   m_pHcca;

    ULONG   m_paLastIntrEd;

    CPhysMem *m_pobMem;
//  PDRIVER_OBJECT m_pDriverObject;
    UINT m_curMaxNumDevices;

    CRITICAL_SECTION m_csDeviceListLock;
    SDevice **m_ppDevices;

    CRITICAL_SECTION m_csEdInfoListsLock;
    SEdInfo * m_pFreeSEdInfoHead;
    SEdInfo *m_pEdRemovalList;

    CRITICAL_SECTION m_csOtherListsLock;
    SPhysAddr *m_pFreePhysAddrHead;
    STransfer *m_pFreeTransferHead;

    CRITICAL_SECTION m_csThreadParamListLock;
    SThreadParams * m_pFreeThreadParamsHead;
    SThreadParams * m_pActiveThreadParamsHead;

	//Zouying, Added potion for ISP 1161
	static ULONG CALLBACK Isp1161AuxThreadStub(PVOID);
	DWORD Isp1161AuxThread();

	DWORD	ServiceList(PULONG);
	DWORD	ServiceATLList();
	DWORD	ServiceITLList();
	VOID	ServiceEndpoint(UINT);
	VOID	ServiceATLTransferDescriptor();
	VOID	ServiceITLTransferDescriptor(ULONG, ULONG m_TdsPutToITL[]);
	
	VOID	CheckITLList(PULONG, ULONG m_TdsPutToITL[], PULONG);
	VOID    IspTDTransferComplete(PULONG);
	VOID    ReDumpPtd();

	ULONG							m_ControlBulkRatio;
	ULONG							m_EdpointServicedOne1ms;
	ULONG							m_TdsPutToATL[10];
	ULONG							m_TdsPutToITLFirst[10];
	ULONG							m_TdsPutToITLSecond[10];
	

	SPhilipsTransferDescriptor		sPTDReDump[10];
	BOOL							m_bsPTDReDump[10];

	BOOL							m_bReDump;

	ULONG							m_TdsPutToATLIndex;
	ULONG							m_TdsPutToITLFirstIndex;
	ULONG							m_TdsPutToITLSecondIndex;
	

	BOOL							m_ATLBeingReadOut;
	UINT							uFrameNumber;
	UINT							uDumpingFrame;
	UINT							uTimes;
	UINT							uTesting;
	
	
	ULONG							m_DataToggleBit;
	USHORT							m_ATLTransferLen;
	USHORT							m_ITLATransferLen;
	USHORT							m_ITLBTransferLen;
	USHORT							m_ITLCTransferLen;
	USHORT							m_ITLDTransferLen;

	ULONG							m_HcBulkHeadED;
	ULONG							m_HcBulkCurrentED;
	ULONG							m_HcControlHeadED;
	ULONG							m_HcControlCurrentED;
	ULONG							m_HcHCCA;
	ULONG							m_HcPeriodCurrentED;
	ULONG							m_HcDoneHead;
	ULONG							m_HcPeriodicStart;

	ULONG							m_HcControlCBSR;
	ULONG							m_HcControlPLE;
	ULONG							m_HcControlIE;
	ULONG							m_HcControlCLE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a在线播放不卡| 国产精品自在欧美一区| 972aa.com艺术欧美| 国产精品久久久久影视| 97久久超碰精品国产| 中文字幕色av一区二区三区| 91一区二区在线| 一区二区三区成人在线视频| 欧美在线观看视频一区二区 | 久久婷婷成人综合色| 国产在线观看一区二区| 国产欧美日韩一区二区三区在线观看 | 亚洲va欧美va天堂v国产综合| 欧美探花视频资源| 麻豆一区二区在线| 国产女主播视频一区二区| 99视频超级精品| 亚洲在线观看免费| 日韩一区二区精品| 国产福利精品导航| 亚洲免费看黄网站| 欧美成人欧美edvon| 国产成人免费xxxxxxxx| 亚洲精品视频在线| 日韩欧美国产成人一区二区| 大尺度一区二区| 亚洲国产精品一区二区久久恐怖片 | 欧美变态tickling挠脚心| 国产成人免费视频网站高清观看视频| ...xxx性欧美| 欧美一区二区三区的| 国产jizzjizz一区二区| 亚洲国产一区二区视频| 久久蜜桃香蕉精品一区二区三区| 91视视频在线观看入口直接观看www| 天天影视涩香欲综合网| 国产喷白浆一区二区三区| 欧美日韩一区三区| 高清不卡在线观看| 日本aⅴ免费视频一区二区三区| 国产精品久久久久久久浪潮网站| 欧美三级电影在线看| 成人av影视在线观看| 久久超碰97人人做人人爱| 亚洲欧洲韩国日本视频| 欧美va日韩va| 欧美日韩成人高清| 99久久er热在这里只有精品15| 老司机免费视频一区二区| 亚洲女与黑人做爰| 国产日韩欧美高清| 精品伦理精品一区| 在线成人小视频| 色综合网色综合| 国产91精品精华液一区二区三区| 免费观看一级欧美片| 亚洲国产成人va在线观看天堂| 国产精品污网站| 久久久久国色av免费看影院| 日韩精品最新网址| 欧美人狂配大交3d怪物一区| 一本色道**综合亚洲精品蜜桃冫| 国产一区二三区| 久久99精品久久只有精品| 亚洲6080在线| 亚洲国产一区二区在线播放| 亚洲视频在线观看一区| 国产精品丝袜久久久久久app| 精品欧美一区二区三区精品久久 | 国产大陆a不卡| 日韩精品一级中文字幕精品视频免费观看 | 色呦呦日韩精品| 成人精品一区二区三区中文字幕| 国产毛片精品国产一区二区三区| 麻豆91精品视频| 毛片av一区二区三区| 日av在线不卡| 久色婷婷小香蕉久久| 琪琪一区二区三区| 麻豆成人在线观看| 韩国三级在线一区| 国产乱码精品一区二区三区av| 国模一区二区三区白浆| 国产又黄又大久久| 懂色av噜噜一区二区三区av| 国产精品18久久久久久久久| 波多野结衣中文字幕一区二区三区| 国产传媒久久文化传媒| 成a人片国产精品| 色94色欧美sute亚洲线路二 | 国产精品久久久久久久裸模| 亚洲图片你懂的| 亚洲综合激情另类小说区| 亚洲影院免费观看| 丝袜诱惑亚洲看片| 久久成人免费日本黄色| 国产精品小仙女| www.日韩精品| 日本韩国一区二区三区视频| 精品视频1区2区| 欧美一级理论性理论a| 久久久亚洲国产美女国产盗摄 | 亚洲综合丝袜美腿| 日韩黄色在线观看| 国内一区二区在线| 99精品一区二区| 欧美日本高清视频在线观看| 欧美sm美女调教| 国产精品久久久久9999吃药| 亚洲精品免费在线观看| 秋霞午夜鲁丝一区二区老狼| 高潮精品一区videoshd| 91成人网在线| 精品国内二区三区| 亚洲欧美另类综合偷拍| 亚洲aaa精品| 成人一区二区三区中文字幕| 欧美专区日韩专区| 26uuu国产电影一区二区| 综合欧美一区二区三区| 天天操天天色综合| 大美女一区二区三区| 欧美日韩在线观看一区二区| 国产亚洲精品久| 亚洲精品国产精华液| 久久精品99国产精品日本| 99热99精品| 精品999久久久| 亚洲大片精品永久免费| 国产成人在线视频播放| 日本伦理一区二区| 久久久久久免费| 日韩影院精彩在线| 日本久久一区二区三区| 精品成人一区二区| 午夜欧美在线一二页| 97久久精品人人做人人爽50路| 精品日韩欧美在线| 天天做天天摸天天爽国产一区| 成人av影视在线观看| 精品国产伦一区二区三区观看方式| 亚洲精品伦理在线| 成人一区二区三区视频| 欧美成人免费网站| 亚洲高清免费观看| 色综合一个色综合亚洲| 中文字幕欧美激情一区| 国产一区二区三区免费在线观看| 欧美丝袜丝交足nylons图片| 亚洲视频一区二区在线| 国产寡妇亲子伦一区二区| 日韩午夜在线观看| 亚洲国产一区二区a毛片| 91色porny在线视频| 国产精品丝袜久久久久久app| 国产资源在线一区| 欧美mv日韩mv国产网站app| 日韩综合在线视频| 欧美日韩精品一区视频| 亚洲国产裸拍裸体视频在线观看乱了| 99re8在线精品视频免费播放| 中文字幕精品三区| 国产91对白在线观看九色| 国产欧美日韩激情| 风间由美一区二区三区在线观看| 久久综合色婷婷| 国产精品一区免费在线观看| xvideos.蜜桃一区二区| 激情欧美一区二区| 2020国产精品自拍| 国产精品一二三区| 国产欧美日韩久久| 成人短视频下载| 亚洲色图制服诱惑| 欧美性生活大片视频| 亚洲一区在线观看视频| 欧美午夜精品一区二区蜜桃| 亚洲一区在线看| 7777精品伊人久久久大香线蕉 | 欧美性色黄大片手机版| 亚洲国产综合色| 在线不卡一区二区| 麻豆精品一区二区综合av| 精品伦理精品一区| 成人黄色免费短视频| 亚洲欧美另类久久久精品2019| 日本韩国欧美一区二区三区| 亚洲国产日韩综合久久精品| 欧美精品日韩综合在线| 久久精品国产99久久6| 中文字幕乱码一区二区免费| 91在线观看免费视频| 亚洲永久精品国产| 日韩欧美久久久| 国产91精品在线观看| 一区二区在线观看免费| 91麻豆精品国产91久久久久久| 久久精品999| 成人欧美一区二区三区白人| 欧美三级电影在线看|