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

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

?? halether.c

?? windows ce 50 drive program
?? C
?? 第 1 頁 / 共 2 頁
字號:
    return (FALSE);
#else
   return pfnEDbgGetFrame(pData, pwLength);
#endif 	// IMGSHAREETH.
   
}


/* OEMEthSendFrame
 *
 *   Send Ethernet frame.  
 *
 *  Return Value:
 *   TRUE if frame successfully sent, FALSE otherwise.
 */
BOOL
OEMEthSendFrame(
    BYTE *pData,     // IN - Data buffer
    DWORD dwLength)  // IN - Length of buffer
{
    int retries = 0;

    while (retries++ < 4) {
        if (!pfnEDbgSendFrame(pData, dwLength))
		{
#ifdef IMGSHAREETH
			ProcessVMiniSend();
#endif //IMGSHAREETH
            return TRUE;
		}
        else
            EdbgOutputDebugString("!OEMEthSendFrame failure, retry %u\n",retries);
    }
    return FALSE;
}


/* OEMEthQueryClientInfo
 *
 *    Return address information for default ethernet services, plus a buffer pool to use
 *    for formatting and receiving EDBG packets (single buffer pool specified, divided in
 *    two for Rx and Tx buffers).  By specifying a smaller window size, less memory can be
 *    used (but the protocol will be less efficient...).  The amount of memory required per
 *    client is (2*WindowSize*1500) bytes.
 *
 *    For Odo, we reserve 3 buffer pools worth of memory in the bib file, based on the IMGEBOOT
 *    flag being set.
 *
 *  Return Value:
 *    If client can be configured, return TRUE and fill in addressing and buffer info. Otherwise
 *    return FALSE.  For Odo, configure clients based on the flags set by Eshell (received in the
 *    JUMPIMG command by eboot, and placed in the uninitalized driver globals section).
 */
/* OEMEthQueryClientInfo
 *
 *    Return address information for default ethernet services, plus a buffer pool to use
 *    for formatting and receiving EDBG packets (single buffer pool specified, divided in
 *    two for Rx and Tx buffers).  By specifying a smaller window size, less memory can be
 *    used (but the protocol will be less efficient...).  The amount of memory required per
 *    client is (2*WindowSize*1500) bytes.
 *
 *    For Odo, we reserve 3 buffer pools worth of memory in the bib file, based on the IMGEBOOT
 *    flag being set.
 *
 *  Return Value:
 *    If client can be configured, return TRUE and fill in addressing and buffer info. Otherwise
 *    return FALSE.  For Odo, configure clients based on the flags set by Eshell (received in the
 *    JUMPIMG command by eboot, and placed in the uninitalized driver globals section).
 */
BOOL
OEMEthQueryClientInfo(
    UCHAR Service,         // IN - Service ID (one of EDBG_SVC defs from ethdbg.h).
    EDBG_ADDR *pPeerAddr,  // OUT -Filled in with the peer Ether/IP address and UDP port number.
    PUCHAR  pWindowSize,   // OUT -Filled in with the client window size.
    PUCHAR *ppBufferPool)  // OUT -Filled in with the packet buffer pool address.
{
    
    // We use the default window size (8) for all services
    *pWindowSize = EDBG_WINDOW_SIZE;
    
    switch (Service)
    {
        // Check the flag in driver globals (set by eboot when it receives the JUMPIMG command)
        case EDBG_SVC_DBGMSG:
            if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_DBGMSG)) {
                EdbgOutputDebugString("FAIL : EDBG_SVC_DBGMSG \n");
                return FALSE;
            }
            memcpy(pPeerAddr, &pDriverGlobals->eth.DbgHostAddr,sizeof(EDBG_ADDR));
            *ppBufferPool = (UCHAR *)EDBG_PHYSICAL_MEMORY_START;
            EdbgOutputDebugString("Querying to ethernet for debug messages, host: %s, port: %d \r\n\n",
                                    inet_ntoa(pDriverGlobals->eth.DbgHostAddr.dwIP),
                                    ntohs(pDriverGlobals->eth.DbgHostAddr.wPort));
            break;
        case EDBG_SVC_PPSH:
            if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_PPSH)) {
                EdbgOutputDebugString("FAIL : EDBG_SVC_PPSH \n");
                return FALSE;
            }
            memcpy(pPeerAddr, &pDriverGlobals->eth.PpshHostAddr,sizeof(EDBG_ADDR));
            *ppBufferPool = (UCHAR *)EDBG_PHYSICAL_MEMORY_START + EDBG_DFLT_BUFFER_POOL_SIZE;
            EdbgOutputDebugString("Querying ethernet for PPSH, host: %s, port: %d \r\n\n",
                                    inet_ntoa(pDriverGlobals->eth.PpshHostAddr.dwIP),
                                    ntohs(pDriverGlobals->eth.PpshHostAddr.wPort));  
            break;
        case EDBG_SVC_KDBG:
            if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_KDBG)) {
                EdbgOutputDebugString("FAIL : EDBG_SVC_KDBG \n");
                return FALSE;
            }
            memcpy(pPeerAddr, &pDriverGlobals->eth.KdbgHostAddr,sizeof(EDBG_ADDR));    
            *ppBufferPool = (UCHAR *)EDBG_PHYSICAL_MEMORY_START + 2*EDBG_DFLT_BUFFER_POOL_SIZE;
			EdbgOutputDebugString("Querying ethernet for KDBG, host: %s, port: %d \r\n\n",
                                    inet_ntoa(pDriverGlobals->eth.KdbgHostAddr.dwIP),
                                    ntohs(pDriverGlobals->eth.KdbgHostAddr.wPort));
            break;            
        default:
            return FALSE;
    }
    return TRUE;
}


/* OEMEthGetSecs
 *
 *  Return a count of seconds from some arbitrary time (the absolute value is not important,
 *  so long as it increments appropriately).
 */

DWORD 
OEMEthGetSecs( void ) 
{
    SYSTEMTIME st;
	DWORD ti;

    OEMGetRealTime( &st );
	ti = ((60UL * (60UL * (24UL * (31UL * st.wMonth + st.wDay) + st.wHour) + st.wMinute)) + st.wSecond);

	return ti;
}


#ifdef IMGSHAREETH
//
//  These functions are only needed if vmini is in.
//  i.e. if IMGSHAREETH is set.
//


////////////////////////////////////////////////////////////////////////////////
//  OEMEthSetFilter()
//
//  Description:
//      
//      This function is used by VMINI to inform the underlying ethernet
//      library on the filtering mode it requires.
//
//  Arguments:
//
//      pdwRequestedFilter  :: The requested filter.
//                             Identical constants have been added in 
//                             that mimics NDIS_PACKET_TYPE_XXX constants.
//
//  Return Value:
//
//      TRUE    :: if we can set the filter.
//      FALSE   :: otherwise..
//
//
//  Note:
//      
//      As a minimum to get vmini to work, we need to support
//      PACKET_TYPE_DIRECTED 
//      PACKET_TYPE_BROADCAST
//
//  
BOOL
OEMEthCurrentPacketFilter(PDWORD pdwRequestedFilter)
{
    
    //EdbgOutputDebugString(
        //"OEMEthCurrentPacketFilter set to [0x%x]\r\n",
        //*pdwRequestedFilter);   
    
    //
    //  Note that we can't do it immediately here, since we are called 
    //  by user mode code.
    //  So what we do is to set the flag here for the kernel mode code
    //  to pick up.
    //
    
    dwFilter   = *pdwRequestedFilter;
    bNewFilter = TRUE;
    return TRUE;

}   //  OEMEthCurrentPacketFilter()



////////////////////////////////////////////////////////////////////////////////
//  OEMEthMulticastList()
//
//  Description:
//
//      This function is used by VMINI to inform the underlying ethernet 
//      library on multicast addresses that winsock app is interested in.
//      
//  Arguments:
//
//      pucMulticastAddressList :: Pointer to an array of multicast addresses.
//      dwNoOfAddresses         :: Number of addresses passed in to us.
//
//  Return Value:
//      
//      TRUE    ::  if we can set the underlying edbg ethernet libary to start
//                      filtering on these multicast addresses.
//
//      FALSE   ::  otherwise.
//
BOOL
OEMEthMulticastList(PUCHAR  pucMulticastAddressList, DWORD  dwNoOfAddresses)
{
    //
    //  This platform does not support multicast yet..
    //

    DWORD   i;
    BOOL    bReturnValue;

    EdbgOutputDebugString(
        "OEMEthMulticastList():: No of Entries [%d]\r\n",
            dwNoOfAddresses);   

    //
    //  We can check how many entries an adapter that are attached to 
    //  can support.
    //  To make things simple, we just assume we can support minimum that
    //  vmini thinks we support (i.e. 8).
    //

    if (dwNoOfAddresses > 8)
    {
        //
        //  This should never happen, since VMINI is known to support
        //  8 entries only... 
        //
        
        EdbgOutputDebugString(
            "Multicast list requeste [%d] > 8 !!!\r\n",
            dwNoOfAddresses);

        return FALSE;
    }


    //
    //   8 entries, 6 bytes each..
    //

    memset(
        ucMultiAddr,
        0x00,
        8 * 6);     

    //
    //  6 bytes per entry..
    //

    memcpy(
        ucMultiAddr,
        pucMulticastAddressList,
        dwNoOfAddresses * 6);


    for (i = 0 ; i < dwNoOfAddresses ; i++)
    {
        EdbgOutputDebugString(
            "[%d] : %x - %x - %x - %x - %x - %x\r\n",
            i,
            pucMulticastAddressList[6*i+0],
            pucMulticastAddressList[6*i+1],
            pucMulticastAddressList[6*i+2],
            pucMulticastAddressList[6*i+3],
            pucMulticastAddressList[6*i+4],
            pucMulticastAddressList[6*i+5]);
    }

    //
    //  We are in KernelIOCTL call, some h/w requires the 
    //  setting of the MULTICAST addresses in interrupt service routine.
    //  So we will do it later, and mark it so the ISR will know about it..
    //  Note:
    //  Order is important here.    Don't set bNewMulticast to true until
    //  all the entries and the dwNoOfEntry are properly set up.
    //  This is because we can be switched out in the middle of 
    /// KernelIOCTL!!
    //
    
    dwNoOfEntry   = dwNoOfAddresses;
    bNewMulticast = TRUE;       
    bReturnValue  = TRUE;

    
    EdbgOutputDebugString(
        "OEMEthMulticastList returning [%d]\r\n",
        bReturnValue);


    return bReturnValue;
    

}   //  OEMEthMulticastList()

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日产欧美一区二区三区| 亚洲欧美综合网| 午夜精品在线看| 欧洲色大大久久| 午夜精品在线看| 国产欧美一区二区精品性| 国产精品一区在线| 欧美国产精品一区| 5月丁香婷婷综合| 国产毛片精品一区| 亚洲免费观看高清完整版在线 | 7777精品伊人久久久大香线蕉 | 一区二区三区欧美在线观看| 99久久伊人网影院| 日本亚洲最大的色成网站www| 精品国产第一区二区三区观看体验| 91一区一区三区| 成人av影院在线| 国产99精品在线观看| 91美女在线观看| 天天影视网天天综合色在线播放| 国产精品国产三级国产专播品爱网| 欧美军同video69gay| 欧美系列在线观看| 日本道免费精品一区二区三区| 国产在线播放一区二区三区| 日韩av电影一区| 肉色丝袜一区二区| 天天色天天操综合| 性欧美疯狂xxxxbbbb| 视频一区欧美精品| 精品一区二区久久| 国产丶欧美丶日本不卡视频| 国产成人一区在线| 成人网页在线观看| 99国内精品久久| 欧美色图在线观看| 欧美麻豆精品久久久久久| 欧美mv和日韩mv的网站| 国产亚洲精品bt天堂精选| 日韩一区中文字幕| 香蕉影视欧美成人| 国内精品免费在线观看| 色天天综合色天天久久| 91精品国产综合久久精品| 久久久综合激的五月天| **性色生活片久久毛片| 日韩不卡一区二区| 色婷婷久久99综合精品jk白丝| 欧美精品视频www在线观看| 欧美不卡视频一区| 亚洲综合一二区| 成人aa视频在线观看| 欧美放荡的少妇| 日韩毛片精品高清免费| 久久99久久久久久久久久久| 色哟哟日韩精品| 国产精品污网站| 久久黄色级2电影| 91精品国产一区二区三区| 亚洲一区精品在线| 99这里只有久久精品视频| 6080国产精品一区二区| 亚洲成人中文在线| 欧美美女喷水视频| 日韩精品三区四区| 国产成人在线网站| 久久综合一区二区| 成人一区在线观看| 国产精品美女久久久久久久网站| 免费在线欧美视频| 欧美日韩精品高清| 亚洲福利一区二区三区| 日本高清不卡视频| 亚洲图片有声小说| 欧美精选一区二区| 麻豆免费看一区二区三区| 精品对白一区国产伦| 日韩精品高清不卡| 欧美成人性战久久| 天天色图综合网| 久久午夜色播影院免费高清| 高清不卡一区二区| 中文字幕在线观看一区| 成人精品视频网站| 亚洲午夜久久久久久久久久久| 91.xcao| 国产成人在线看| 午夜欧美电影在线观看| 久久久电影一区二区三区| 国产 日韩 欧美大片| 亚洲国产日韩综合久久精品| 欧美成人性战久久| 99视频有精品| 麻豆91小视频| 天堂蜜桃一区二区三区 | 91免费看`日韩一区二区| 日韩经典中文字幕一区| 久久综合久久综合久久| 在线播放日韩导航| 欧美日韩免费不卡视频一区二区三区| 青青草原综合久久大伊人精品优势| 久久久精品国产免大香伊 | 老司机午夜精品| 午夜精品福利视频网站| 亚洲欧美日韩国产另类专区| 久久夜色精品国产噜噜av| 欧美性感一类影片在线播放| 国产精品夜夜爽| 日韩电影在线观看电影| 亚洲丝袜美腿综合| 亚洲综合色噜噜狠狠| 一区免费观看视频| 一区二区三区在线观看网站| 久久精品一区二区三区不卡牛牛| 欧美日本一区二区三区| 欧美老女人第四色| 欧美二区三区91| 日韩精品在线看片z| 欧美va亚洲va国产综合| 国产亚洲人成网站| 久久精品一级爱片| 日本一区二区视频在线| **性色生活片久久毛片| 天天av天天翘天天综合网| 日本va欧美va欧美va精品| 免费看日韩a级影片| 国产精品一区在线观看乱码| jizzjizzjizz欧美| 在线播放日韩导航| 中文字幕一区在线| 奇米777欧美一区二区| 成人国产精品免费网站| 欧美三级电影精品| 国产欧美日韩在线视频| 亚洲人成精品久久久久久| 午夜av一区二区三区| 99国产精品久久久| 91麻豆精品国产自产在线观看一区| 亚洲精品一区二区三区香蕉| 亚洲三级视频在线观看| 久久99精品久久久久久动态图 | 麻豆91小视频| 欧美性猛片xxxx免费看久爱| 久久精品在线免费观看| 久久国产综合精品| 在线亚洲欧美专区二区| 国产区在线观看成人精品| 美女一区二区视频| 69p69国产精品| 日韩国产精品久久久久久亚洲| 成人黄动漫网站免费app| 精品999在线播放| 国产另类ts人妖一区二区| 日本久久一区二区三区| 91成人在线观看喷潮| 精品成人a区在线观看| 日本美女一区二区| 欧美videofree性高清杂交| 久久不见久久见中文字幕免费| 精品国产伦一区二区三区观看方式| 久久国产精品色婷婷| 欧美sm极限捆绑bd| 国产精品一二一区| 亚洲免费在线视频一区 二区| 色噜噜狠狠成人中文综合| 亚洲综合精品自拍| 欧美不卡激情三级在线观看| 国产一区二三区好的| 国产精品白丝在线| 欧美一二三在线| 成人小视频免费观看| 一区二区三区欧美激情| 91精选在线观看| www.欧美.com| 蜜桃视频在线一区| 日韩美女久久久| 日韩午夜激情电影| 97久久超碰精品国产| 日韩福利电影在线| 18成人在线观看| www久久精品| 欧美日韩免费高清一区色橹橹 | 国产亚洲综合在线| 91精品国产色综合久久久蜜香臀| 国产一区91精品张津瑜| 亚洲国产aⅴ成人精品无吗| 91首页免费视频| 中文字幕一区二区三区蜜月| 亚洲丝袜美腿综合| 另类小说图片综合网| 国产不卡高清在线观看视频| 色综合一个色综合亚洲| 日韩精品一区二区三区中文不卡| 久久久亚洲精品石原莉奈| 亚洲精品国产品国语在线app| 日本视频免费一区| 色综合天天综合给合国产| 26uuu久久综合| 亚洲人成影院在线观看|