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

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

?? wince.c

?? Wince4.2 BSP for SH4 engineering development board
?? C
?? 第 1 頁 / 共 2 頁
字號:

//
//      Copyright (c) Renesas Technology Corp. 1999-2003  All Rights Reserved.
//
//      LAN91C111 network hardware driver
//
//----------------------------------------------------------------------------
//
//  FILE      : WINCE.C
//  CREATED   : 1998. 4.18 (for NE2000 driver)
//  MODIFIED  : 2003.08.06
//  AUTHOR    : Renesas Technology Corp.
//  HARDWARE  : RENESAS HS7751RSTC01H (S1-E, ITS-DS5)
//  TARGET OS : Microsoft(R) Windows(R) CE .NET 4.2
//  FUNCTION  : WinCE OS specific part of LAN driver
//  HISTORY   : 
//              1999.04.26
//              - Released as SMSC LAN91C94 driver for PFM-DS6x by modifying
//               NE2000 driver in PB2.12 reference drivers.
//              (Detailed history for PFM-DS6x are omitted.)
//              2002.04.??
//              - Diverted to LAN91C111 driver for HS7751RSTC01H without
//               modification.
//              2002.09.05
//              - Header style is changed and file informations are added.

/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-1998 Microsoft Corporation.  All rights reserved.
--*/

#include <windows.h>
#include <ndis.h>
#include <cardserv.h>
#include <cardapi.h>
#include <tuple.h>
#include "celanhw.h"
#include "celansw.h"

LPWSTR FindDetectKey(VOID);

#ifdef DEBUG

//
// These defines must match the ZONE_* defines in CELANSW.H
//
#define DBG_ERROR      1
#define DBG_WARN       2
#define DBG_FUNCTION   4
#define DBG_INIT       8
#define DBG_INTR       16
#define DBG_RCV        32
#define DBG_XMIT       64
#define DBG_COV1       128

DBGPARAM dpCurSettings = {
    TEXT("CELAN"), {
    TEXT("Errors"),TEXT("Warnings"),TEXT("Functions"),TEXT("Init"),
    TEXT("Interrupts"),TEXT("Receives"),TEXT("Transmits"),TEXT("DBG_COV1"),
    TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),
    TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined") },
    DBG_ERROR | DBG_WARN | DBG_FUNCTION| DBG_INIT /*0xffff*/
};
#endif  // DEBUG

typedef struct _REG_VALUE_DESCR {
    LPWSTR val_name;
    DWORD  val_type;
    PBYTE  val_data;
} REG_VALUE_DESCR, * PREG_VALUE_DESCR;


// Values for [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Detect\40]
REG_VALUE_DESCR DetectKeyValues[] = {
    (TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("CELAN.DLL")),
    (TEXT("Entry")), REG_SZ, (PBYTE)(TEXT("DetectCELAN")),
    NULL, 0, NULL
};

// Values for [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\CELAN]
REG_VALUE_DESCR PcmKeyValues[] = {
   (TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("ndis.dll")),
   (TEXT("Prefix")), REG_SZ, (PBYTE)(TEXT("NDS")),
   (TEXT("Miniport")), REG_SZ, (PBYTE)(TEXT("CELAN")),
    NULL, 0, NULL
};

// Values for [HKEY_LOCAL_MACHINE\Comm\CELAN]
// and [HKEY_LOCAL_MACHINE\Comm\CELAN1]
REG_VALUE_DESCR CommKeyValues[] = {
   (TEXT("DisplayName")), REG_SZ, (PBYTE)(TEXT("CELAN Compatible Ethernet Driver")),
   (TEXT("Group")), REG_SZ, (PBYTE)(TEXT("NDIS")),
   (TEXT("ImagePath")), REG_SZ, (PBYTE)(TEXT("celan.dll")),
    NULL, 0, NULL
};

// Values for [HKEY_LOCAL_MACHINE\Comm\CELAN1\Parms]
REG_VALUE_DESCR ParmKeyValues[] = {
   (TEXT("BusNumber")), REG_DWORD, (PBYTE)0,
   (TEXT("BusType")), REG_DWORD, (PBYTE)8,
   (TEXT("InterruptNumber")), REG_DWORD, (PBYTE)03,
   (TEXT("IoBaseAddress")), REG_DWORD, (PBYTE)768, // 0x0300
   (TEXT("Transceiver")), REG_DWORD, (PBYTE)3,
   (TEXT("CardType")), REG_DWORD, (PBYTE)1,
    NULL, 0, NULL
};

// Values for [HKEY_LOCAL_MACHINE\Comm\CELAN1]
REG_VALUE_DESCR LinkageKeyValues[] = {
   (TEXT("Route")), REG_MULTI_SZ, (PBYTE)(TEXT("CELAN1")),
    NULL, 0, NULL
};

PREG_VALUE_DESCR Values[] = {
    PcmKeyValues,
    CommKeyValues,
    CommKeyValues,
    ParmKeyValues,
    LinkageKeyValues
};

LPWSTR KeyNames[] = {
    (TEXT("Drivers\\PCMCIA\\CELAN")),
    (TEXT("Comm\\CELAN")),
    (TEXT("Comm\\CELAN1")),
    (TEXT("Comm\\CELAN1\\Parms")),
    (TEXT("Comm\\CELAN\\Linkage"))
};


//
// Standard Windows DLL entrypoint.
// Since Windows CE NDIS miniports are implemented as DLLs, a DLL entrypoint is
// needed.
//
BOOL __stdcall
DllEntry(
  HANDLE hDLL,
  DWORD dwReason,
  LPVOID lpReserved
)
{

    switch (dwReason) {
    case DLL_PROCESS_ATTACH:
        DEBUGREGISTER(hDLL);
        DEBUGMSG(ZONE_INIT, (TEXT("CELAN: DLL_PROCESS_ATTACH\n")));
        break;
    case DLL_PROCESS_DETACH:
        DEBUGMSG(ZONE_INIT, (TEXT("CELAN: DLL_PROCESS_DETACH\n")));
        break;
    }
    return TRUE;
}

//
// Add the specified key and its values to the registry under HKEY_LOCAL_MACHINE
//
// NOTE: This function only supports REG_MULTI_SZ strings with one item.
//
BOOL
AddKeyValues(
    LPWSTR KeyName,
    PREG_VALUE_DESCR Vals
    )
{
    DWORD Status;
    DWORD dwDisp;
    HKEY hKey;
    PREG_VALUE_DESCR pValue;
    DWORD ValLen;
    PBYTE pVal;
    DWORD dwVal;
    LPWSTR pStr;

    Status = RegCreateKeyEx(
                 HKEY_LOCAL_MACHINE,
                 KeyName,
                 0,
                 NULL,
                 REG_OPTION_NON_VOLATILE,
                 0,
                 NULL,
                 &hKey,
                 &dwDisp);

    if (Status != ERROR_SUCCESS) {
        return FALSE;
    }

    pValue = Vals;
    while (pValue->val_name) {
        switch (pValue->val_type) {
        case REG_DWORD:
            pVal = (PBYTE)&dwVal;
            dwVal = (DWORD)pValue->val_data;
            ValLen = sizeof(DWORD);
            break;

        case REG_SZ:
            pVal = (PBYTE)pValue->val_data;
            ValLen = (wcslen((LPWSTR)pVal) + 1)*sizeof(WCHAR);
            break;

        case REG_MULTI_SZ:
            dwVal = wcslen((LPWSTR)pValue->val_data);
            ValLen = (dwVal+2)*sizeof(WCHAR);
            pVal = LocalAlloc(LPTR, ValLen);
            if (pVal == NULL) {
                goto akv_fail;
            }
            wcscpy((LPWSTR)pVal, (LPWSTR)pValue->val_data);
            pStr = (LPWSTR)pVal + dwVal;
            pStr[1] = 0;
            break;
        }
        Status = RegSetValueEx(
                     hKey,
                     pValue->val_name,
                     0,
                     pValue->val_type,
                     pVal,
                     ValLen
                     );
        if (pValue->val_type == REG_MULTI_SZ) {
            LocalFree(pVal);
        }
akv_fail:
        if (Status != ERROR_SUCCESS) {
            RegCloseKey(hKey);
            return FALSE;
        }
        pValue++;
    }
    RegCloseKey(hKey);
    return TRUE;
}   // AddKeyValues


//
// Install_Driver function for the CELAN NDIS miniport driver.
//
// This function sets up the registry keys and values required to install this
// DLL as a Windows CE plug and play driver.
//
// Input:
//
// LPWSTR lpPnpId - The device's plug and play identifier string.  An install
// function can use lpPnpId to set up a key
// HKEY_LOCAL_MACHINE\Drivers\PCMCIA\<lpPnpId> under the assumption that the
// user will continue to use the same device that generates the same plug and
// play id string.  If there is a general detection method for the card, then lpPnpId can
// be ignored and a detection function can be registered under HKEY_LOCAL_MACHINE\
// Drivers\PCMCIA\Detect.
//
// LPWSTR lpRegPath - Buffer to contain the newly installed driver's device key
// under HKEY_LOCAL_MACHINE in the registry. Windows CE will attempt to load the
// the newly installed device driver upon completion of its
// Install_Driver function.
//
// DWORD cRegPathSize - Number of bytes in lpRegPath.
//
// Returns lpRegPath if successful, NULL for failure.
//
LPWSTR
Install_Driver(
    LPWSTR lpPnpId,
    LPWSTR lpRegPath,
    DWORD  cRegPathSize
    )
{
/*
A driver does not need to install a detect function if its associated device
has a unique Plug and Play identifier.  Since the CELAN driver can work with
many CELAN compatible cards which would have many plug and play ids, it
supplies a detection function and installs a PCMCIA\Detect\nn key.

The following registry keys and values will be installed:

[HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Detect\40]
   "Dll"="CELAN.DLL"
   "Entry"="DetectCELAN"

[HKEY_LOCAL_MACHINE\Drivers\PCMCIA\CELAN]
   "Dll"="ndis.dll"
   "Prefix"="NDS"
   "Miniport"="CELAN"

[HKEY_LOCAL_MACHINE\Comm\CELAN]
   "DisplayName"="CELAN Compatible Ethernet Driver"
   "Group"="NDIS"
   "ImagePath"="celan.dll"

[HKEY_LOCAL_MACHINE\Comm\CELAN\Linkage]
   "Route"=multi_sz:"CELAN1"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区精品久久99| 亚洲mv在线观看| 国产精品2024| 国产一区二区三区久久悠悠色av| 亚洲一区二区三区四区五区黄| 亚洲自拍偷拍欧美| 亚洲成人av一区二区三区| 性感美女极品91精品| 婷婷久久综合九色国产成人| 青草av.久久免费一区| 捆绑调教一区二区三区| 国产乱码精品1区2区3区| 懂色av一区二区三区免费看| www.欧美日韩| 欧美日韩大陆一区二区| 欧美一级片在线看| 99精品国产热久久91蜜凸| 免费观看在线综合| 成人av在线影院| 成a人片亚洲日本久久| 91在线视频官网| 欧美精品在线观看播放| xfplay精品久久| 中文字幕在线不卡视频| 香蕉久久一区二区不卡无毒影院| 美女国产一区二区| aaa欧美色吧激情视频| 欧美日韩午夜在线| 久久精品日产第一区二区三区高清版| 国产精品久久久久婷婷| 亚洲成a人片在线不卡一二三区| 久久成人免费日本黄色| jlzzjlzz国产精品久久| 91精品国产全国免费观看| 国产女人18毛片水真多成人如厕| 亚洲综合在线五月| 韩国欧美一区二区| 欧美在线看片a免费观看| 精品国产乱码久久久久久1区2区| 亚洲婷婷综合色高清在线| 蜜桃视频在线观看一区| 日本二三区不卡| 国产日韩欧美综合在线| 三级精品在线观看| 一本久道久久综合中文字幕 | 中文文精品字幕一区二区| 亚洲精品免费在线播放| 韩国视频一区二区| 欧美一区二区免费视频| 一区二区三区欧美激情| 国产91精品在线观看| 日韩欧美在线综合网| 亚洲黄一区二区三区| 国产成人午夜片在线观看高清观看| 欧美老人xxxx18| 亚洲精品少妇30p| av电影天堂一区二区在线观看| www欧美成人18+| 日本特黄久久久高潮| 欧美影院精品一区| 亚洲老司机在线| 91首页免费视频| 一色屋精品亚洲香蕉网站| 国产一区二区三区电影在线观看 | 亚洲美女精品一区| 国产成人av在线影院| 精品国产髙清在线看国产毛片| 亚洲成人精品一区二区| 色噜噜狠狠色综合中国| 日韩伦理av电影| 色综合欧美在线视频区| 亚洲欧美一区二区久久| 91原创在线视频| 亚洲人亚洲人成电影网站色| va亚洲va日韩不卡在线观看| 国产精品九色蝌蚪自拍| 成人黄色国产精品网站大全在线免费观看 | 精品国产乱码久久久久久闺蜜| 毛片av中文字幕一区二区| 91精品国产乱| 久久99久久久欧美国产| 久久久久久久久免费| 国产精品资源网| 国产三级精品三级| 国产999精品久久久久久| 国产精品视频一二| 色婷婷一区二区三区四区| 一区二区三区在线免费视频| 欧美日韩中文字幕一区| 麻豆精品新av中文字幕| 久久精品亚洲精品国产欧美| 成人激情图片网| 伊人开心综合网| 日韩网站在线看片你懂的| 国产剧情一区二区三区| 亚洲欧美日韩久久| 777欧美精品| 国产xxx精品视频大全| 亚洲欧美日韩中文字幕一区二区三区 | 国产喂奶挤奶一区二区三区| 成人午夜看片网址| 亚洲电影欧美电影有声小说| 精品久久久久99| www.欧美日韩| 老司机午夜精品99久久| 亚洲视频一区在线| 91精品中文字幕一区二区三区| 国产精品一区二区在线播放| 亚洲激情五月婷婷| 337p日本欧洲亚洲大胆精品| 91免费版在线看| 精品制服美女丁香| 亚洲三级在线观看| 精品福利一二区| 色av成人天堂桃色av| 另类调教123区| 亚洲午夜在线视频| 日本一区二区综合亚洲| 欧美精品在欧美一区二区少妇| 成人免费看的视频| 日本不卡一区二区| ㊣最新国产の精品bt伙计久久| 欧美一级艳片视频免费观看| 色婷婷香蕉在线一区二区| 国产在线精品免费| 日日噜噜夜夜狠狠视频欧美人| 国产精品久久二区二区| 国产精品原创巨作av| 国产精品亚洲人在线观看| 成人精品视频一区二区三区| 午夜精彩视频在线观看不卡| 久久日韩精品一区二区五区| 五月婷婷久久丁香| 国模套图日韩精品一区二区| 国产福利不卡视频| 色婷婷综合久久久中文字幕| 欧美日韩高清在线播放| 欧美不卡激情三级在线观看| 久久综合成人精品亚洲另类欧美 | 国内成人免费视频| 国产91精品精华液一区二区三区| 99精品视频一区二区三区| 欧美中文一区二区三区| 日韩午夜小视频| 亚洲视频1区2区| 免费成人深夜小野草| 成人午夜av在线| 欧美视频一区二区| 久久久99精品久久| 亚洲自拍偷拍网站| 国产精品一品二品| 在线亚洲高清视频| 久久久精品免费免费| 亚洲中国最大av网站| 国产一区二区调教| 在线观看日韩电影| 国产清纯在线一区二区www| 亚洲午夜三级在线| 高清不卡在线观看| 在线成人午夜影院| ...xxx性欧美| 国产一区美女在线| 欧美日韩电影在线播放| 国产精品护士白丝一区av| 免费在线观看成人| 色婷婷亚洲婷婷| 中文字幕欧美激情| 久草这里只有精品视频| 欧美少妇bbb| 国产精品三级视频| 久久99国产精品麻豆| 欧美中文字幕不卡| 综合中文字幕亚洲| 国产精品一区二区不卡| 欧美一区日韩一区| 亚洲五码中文字幕| 色综合亚洲欧洲| 亚洲国产精品黑人久久久| 美腿丝袜一区二区三区| 欧美人动与zoxxxx乱| 99在线精品一区二区三区| 视频在线观看一区| 91在线视频播放| 久久女同性恋中文字幕| 男人的天堂亚洲一区| 在线观看av不卡| 夜夜操天天操亚洲| 色综合咪咪久久| 亚洲色图丝袜美腿| 99久久婷婷国产| 国产精品成人免费精品自在线观看| 久久99精品久久只有精品| 欧美精品在线观看一区二区| 亚洲午夜av在线| 欧美艳星brazzers| 午夜私人影院久久久久| 国产亚洲精品中文字幕| 狠狠色丁香婷婷综合久久片| 91精品国产色综合久久ai换脸 | 亚洲欧美国产三级|