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

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

?? devclass.cpp

?? RTL8139 網卡驅動源碼 for WinCE.net CEPC
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//****************************************************************************
//                            File DEVCLASS.CPP
//
//                   Device object for functional driver
//
//                     Copyright (c) APSoft, 1998-2002.
//                          All rights reserved.
//
//****************************************************************************


#define INITGUID
extern "C"
{
#include <ntddk.h>                          // Main DDK's include
#include <wdmguid.h>                        // Interface IDs
#include <wmidata.h>                        // WMI GUIDs
#include <devguid.h>                        // GUIDs for device classes
#include <ntddpcm.h>                        // PCMCIA specific
}

#include <devclass.h>                       // Class declaration
#include <utils.h>                          // PnpQueryInterface

//--------------------------- Local definitions ------------------------------

#define MEM_LOW                 0x00000000  // The whole possible PC's memory
#define MEM_HIGH                0xFFFFFFFF
#define MEM_SIZE                0x00004000  //  memory window


///////////////////////////////////////////////////////////////////////////////
//                        --- Class CFuncDevice ---                          //
///////////////////////////////////////////////////////////////////////////////

//****************************************************************************
//                    --- CFuncDevice::CFuncDevice ---
//
// Purpose: CFuncDevice object constructor
//   Input: PDEVICE_OBJECT pDevObject - Address of assotiated device object
//          PDEVICE_OBJECT pPdo       - Physical device object
//          PWSTR          pLnkName   - Name of symbolic link or NULL
//  Output: none
// Written: by Anton V. Krivenko 4/10/2002
//****************************************************************************
CFuncDevice::CFuncDevice(PDEVICE_OBJECT pDevObject, PDEVICE_OBJECT pPdo,
                         PWSTR          pLnkName) :
             CPnpDevice(pDevObject, pPdo, pLnkName)
{
    m_uStart             = 0;
    m_uLength            = 0;
	m_dwMask             = 0;
	m_uMemBaseAddr       = 0;
	m_phyMemAddr.LowPart  = 0;
	m_phyMemAddr.HighPart = 0;

    m_pDevObject->Flags |= DO_DIRECT_IO |
                          (m_pNextStackDevice->Flags & (DO_POWER_PAGABLE | DO_POWER_INRUSH));
    m_pDevObject->Flags &= ~DO_DEVICE_INITIALIZING;
}

//****************************************************************************
//                    --- CFuncDevice::~CFuncDevice ---
//
// Purpose: CFuncDevice object destructor
//   Input: none
//  Output: none
// Written: by Anton V. Krivenko 4/11/2002
//****************************************************************************
CFuncDevice::~CFuncDevice(void)
{
}

//****************************************************************************
//                      --- CFuncDevice::PowerOn ---
//
// Purpose: Proceed power on process
//   Input: none
//  Output: none
// Written: by Anton V. Krivenko 4/10/2002
//****************************************************************************
void CFuncDevice::PowerOn(void)
{
    // ...
    // You can implement here any specific code, which should be executed on
    // device powering on.
    // ...
}

//****************************************************************************
//                      --- CFuncDevice::PowerOff ---
//
// Purpose: Procees power off process
//   Input: none
//  Output: none
// Written: by Anton V. Krivenko 4/10/2002
//****************************************************************************
void CFuncDevice::PowerOff(void)
{
    // ...
    // You can implement here any specific code, which should be executed on
    // device powering off.
    // ...
}

//****************************************************************************
//                   --- CFuncDevice::PreStopDevice ---
//
// Purpose: Pre-stop processing
//   Input: none
//  Output: none
// Written: by Anton V. Krivenko 4/10/2002
//****************************************************************************
void CFuncDevice::PreStopDevice(void)
{
    // ...
    // You can implement here any specific code, which should be executed on
    // device stopping (e.g. via Device Manager).
    // ...
}

//****************************************************************************
//                  --- CFuncDevice::PreRemoveDevice ---
//
// Purpose: Pre-remove device processing
//   Input: PIRP pIrp - IRP
//  Output: none
// Written: by Anton V. Krivenko 4/10/2002
//****************************************************************************
void CFuncDevice::PreRemoveDevice(PIRP pIrp)
{
    // ...
    // You can implement here any specific code, which should be executed on
    // device removal from socket.
    // ...
}

//****************************************************************************
//                     --- CFuncDevice::StopDevice ---
//
// Purpose: Stop device
//   Input: none
//  Output: none
// Written: by Anton V. Krivenko 4/10/2002
//****************************************************************************
void CFuncDevice::StopDevice(void)
{
//------------------------ Dereference interfaces ----------------------------

    m_BusIface.DeReference();
    m_PcmciaIface.DeReference();
}

//****************************************************************************
//                   --- CFuncDevice::OnFilterResReq ---
//
// Purpose: Filter resource requirements
//   Input: PIRP     pIrp - IRP
//  Output: NTSTATUS      - Operation status
// Written: by Anton V. Krivenko 4/11/2002
//****************************************************************************
NTSTATUS CFuncDevice::OnFilterResReq(PIRP pIrp)
{
    // The CIS of PCMCIA card, which supports by this driver can contain
    // resource requirements. But sometimes there is no resources in CIS. This
    // method receives resource list for filtering from PnP manager. If card
    // have no CIS, then list will be NULL. You can fill this list here
    // manually. Otherwise (list will not NULL), you can correct here resources.

    STRACE_PNPDRV(">> CFuncDevice::OnFilterResReq()\n");

//------------------------------ Forward IRP ---------------------------------

    NTSTATUS ntStatus = ForwardAndWait(m_pNextStackDevice, pIrp);

    if (NT_SUCCESS(ntStatus))
    {
        // PDO can return some filtered resource list for device. We can correct
        // this list or remove it and create own list. In this sample we ignore
        // PDO's list.

        if (pIrp->IoStatus.Information != NULL)
            ExFreePool((PVOID)pIrp->IoStatus.Information);

        ULONG            nBytes = sizeof(IO_RESOURCE_REQUIREMENTS_LIST);

        PHYSICAL_ADDRESS paLow;             // Low address
        PHYSICAL_ADDRESS paHigh;            // High address
        ULONG            uLength;           // Size of memory

        paLow.QuadPart  = MEM_LOW;
        paHigh.QuadPart = MEM_HIGH;
        uLength         = MEM_SIZE;

//------------------------- Create resource list -----------------------------

        PIO_RESOURCE_REQUIREMENTS_LIST pList =
            (PIO_RESOURCE_REQUIREMENTS_LIST)ExAllocatePool(PagedPool, nBytes);

        RtlZeroMemory(pList, nBytes);

        pList->ListSize         = nBytes;
        pList->InterfaceType    = PCMCIABus;
        pList->BusNumber        = 0;
        pList->SlotNumber       = 0;
        pList->AlternativeLists = 1;

        pList->List[0].Version  = 1;
        pList->List[0].Revision = 1;
        pList->List[0].Count    = 1;

        PIO_RESOURCE_DESCRIPTOR piord    = pList->List[0].Descriptors;

        piord[0].Option                  = IO_RESOURCE_PREFERRED;
        piord[0].Type                    = CmResourceTypeMemory;
        piord[0].ShareDisposition        = CmResourceShareDeviceExclusive;
        piord[0].Flags                   = CM_RESOURCE_MEMORY_READ_WRITE;
        piord[0].u.Memory.Length         = uLength;
        piord[0].u.Memory.Alignment      = uLength;
        piord[0].u.Memory.MinimumAddress = paLow;
        piord[0].u.Memory.MaximumAddress = paHigh;

        pIrp->IoStatus.Information       = (ULONG)pList;
    }                                       // if (NT_SUCCESS(ntStatus))

    pIrp->IoStatus.Status = ntStatus;
    IoCompleteRequest(pIrp, IO_NO_INCREMENT);

    STRACE_PNPDRV("<< CFuncDevice::OnFilterResReq()- ntStatus=%08lX\n", ntStatus);
    return ntStatus;
}

//****************************************************************************
//                   --- CFuncDevice::PreStartDevice ---
//
// Purpose: Pre-start device processing

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩和欧美的一区| 一区二区三区在线免费观看| 欧美在线制服丝袜| 99国产一区二区三精品乱码| 成人综合婷婷国产精品久久免费| 国产成人午夜片在线观看高清观看| 理论片日本一区| 国产一区二区主播在线| 国产黄色成人av| 国产福利91精品一区| 99久久精品免费观看| 色88888久久久久久影院野外| 日本韩国精品一区二区在线观看| 色综合久久综合网欧美综合网| 在线一区二区观看| 91麻豆精品91久久久久久清纯 | 亚洲五月六月丁香激情| 亚洲欧美日韩精品久久久久| 亚洲综合免费观看高清完整版| 一区二区三区在线免费观看| 日韩国产欧美在线播放| 久久精品国产在热久久| 成人激情免费视频| 欧美综合久久久| 日韩精品一区二区三区中文精品 | 国产福利91精品一区二区三区| 成人一区二区三区| 欧美视频三区在线播放| 精品美女在线观看| 悠悠色在线精品| 麻豆精品在线观看| 99在线视频精品| 欧美一区二区三区白人| 国产精品久久久一区麻豆最新章节| 亚洲一区二区在线免费观看视频| 欧美aa在线视频| 91亚洲国产成人精品一区二区三 | 日本女人一区二区三区| 丁香婷婷综合激情五月色| 欧洲精品在线观看| 国产日韩欧美高清| 天天色图综合网| jvid福利写真一区二区三区| 91精品国产综合久久蜜臀| 国产精品日日摸夜夜摸av| 美国十次综合导航| 欧美艳星brazzers| 国产精品蜜臀在线观看| 日韩精品午夜视频| 一本久道久久综合中文字幕| 亚洲精品一区二区三区香蕉| 亚洲综合免费观看高清在线观看| 国产另类ts人妖一区二区| 欧美日韩中文字幕一区二区| 中文字幕精品一区二区三区精品| 日韩av高清在线观看| 色av成人天堂桃色av| 国产精品色噜噜| 国产成人av福利| 欧美成人video| 丝袜亚洲另类欧美综合| 欧美性欧美巨大黑白大战| 国产精品狼人久久影院观看方式| 久久99精品一区二区三区三区| 在线免费观看一区| 亚洲柠檬福利资源导航| 成人app软件下载大全免费| 2020国产成人综合网| 久久成人免费日本黄色| 3751色影院一区二区三区| 亚洲国产精品一区二区久久| 色琪琪一区二区三区亚洲区| 成人欧美一区二区三区视频网页 | 欧美嫩在线观看| 亚洲影院在线观看| 色综合天天综合网国产成人综合天 | 99视频精品在线| 国产精品日韩精品欧美在线| 丁香一区二区三区| 国产免费观看久久| 成人高清视频在线| 国产精品视频一二三区| 国产成人夜色高潮福利影视| 中文字幕精品三区| 成人黄色a**站在线观看| 亚洲女子a中天字幕| 色狠狠桃花综合| 亚洲成人免费看| 在线91免费看| 韩国女主播成人在线| 久久网站最新地址| 成人听书哪个软件好| 亚洲九九爱视频| 欧美日韩精品一区二区三区蜜桃| 一区二区三区精品视频在线| 欧美日本一区二区在线观看| 日韩精品电影一区亚洲| 精品久久国产老人久久综合| 国产在线看一区| 中文字幕一区二区三区蜜月| 在线看不卡av| 麻豆高清免费国产一区| 国产色一区二区| 日本久久电影网| 蜜乳av一区二区| 欧美经典一区二区三区| 欧美羞羞免费网站| 久草在线在线精品观看| 国产精品视频一二| 欧美精品少妇一区二区三区 | 美国精品在线观看| 中文一区在线播放| 欧美日产国产精品| 国产激情视频一区二区在线观看 | 欧美日韩视频一区二区| 免费观看在线综合| 亚洲欧洲无码一区二区三区| 欧美精品在欧美一区二区少妇| 韩国精品主播一区二区在线观看| 中文字幕第一区二区| 3d动漫精品啪啪1区2区免费| 不卡电影免费在线播放一区| 国产 日韩 欧美大片| 亚洲精品国产成人久久av盗摄 | 国产麻豆视频精品| 亚洲精品ww久久久久久p站| 精品国产乱码久久久久久久久| 一本久道中文字幕精品亚洲嫩 | 东方aⅴ免费观看久久av| 亚洲va中文字幕| 国产精品黄色在线观看| 欧美一级欧美一级在线播放| 色天天综合色天天久久| 大白屁股一区二区视频| 久久激五月天综合精品| 亚洲成人黄色影院| 亚洲乱码日产精品bd| 国产精品久久久久久久久图文区| 欧美tickle裸体挠脚心vk| 欧美色综合网站| 色www精品视频在线观看| 成人综合日日夜夜| 国产毛片精品一区| 久久电影国产免费久久电影| 日韩av二区在线播放| 亚洲一区二区欧美| 亚洲欧美成aⅴ人在线观看| 国产精品久久夜| 欧美国产日韩精品免费观看| 久久在线观看免费| 欧美不卡一区二区三区四区| 欧美精品久久久久久久久老牛影院| 色偷偷久久人人79超碰人人澡| 成人毛片视频在线观看| 国产成人亚洲综合色影视| 国产一区激情在线| 国产精品18久久久久久久久久久久 | 久久久三级国产网站| 精品国产1区二区| 欧美不卡激情三级在线观看| 欧美sm美女调教| 久久天堂av综合合色蜜桃网| 久久久99久久| 中文字幕一区二区三区视频| 中文字幕综合网| 一区二区三区日韩精品视频| 一区二区三区四区不卡在线 | 樱花影视一区二区| 亚洲大片精品永久免费| 性久久久久久久| 奇米在线7777在线精品| 国内精品伊人久久久久av影院| 国产精品一区二区在线播放| 国产大陆亚洲精品国产| www.久久精品| 欧美色老头old∨ideo| 日韩欧美亚洲国产另类 | 懂色一区二区三区免费观看 | 一区二区三区精品| 日本va欧美va精品发布| 国产乱码精品一区二区三区av| 国产成人综合视频| 91蝌蚪porny| 欧美一级爆毛片| 国产色综合久久| 亚洲高清久久久| 国产乱码精品一区二区三区五月婷| 成人夜色视频网站在线观看| 欧美色倩网站大全免费| 欧美精品一区二区三区高清aⅴ| 国产精品国产三级国产aⅴ入口| 亚洲一级二级三级| 国模冰冰炮一区二区| 在线观看日韩高清av| 日韩免费观看2025年上映的电影 | 日韩精品成人一区二区三区 | 91一区一区三区| 精品乱人伦一区二区三区| 亚洲欧洲国产专区| 久久黄色级2电影|