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

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

?? power.c

?? USB HASP key emulator, based on USB bus driver
?? C
字號:
/*++

Copyright (c) 2004 Chingachguk & Denger2k All rights reserved.

Module Name:

    POWER.C

Abstract:

    This module handles Power management calls for both FDO and
    child PDOs.

Environment:

    Kernel mode only

Notes:


Revision History:


--*/

#include <ntddk.h>
#include ".\Include\driver.h"
#include "vusb.h"
#include "stdio.h"



NTSTATUS
Bus_Power (
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    )
/*++
    Handles power Irps sent to both FDO and child PDOs.
    Note: Currently we do not implement full power handling
          for the FDO.
    
Arguments:

    DeviceObject - Pointer to the device object.
    Irp          - Pointer to the irp.

Return Value:

    NT status is returned.

--*/
{
    PIO_STACK_LOCATION  irpStack;
    NTSTATUS            status;
    PCOMMON_DEVICE_DATA commonData;

    status = STATUS_SUCCESS;
    irpStack = IoGetCurrentIrpStackLocation (Irp);
    ASSERT (IRP_MJ_POWER == irpStack->MajorFunction);

    commonData = (PCOMMON_DEVICE_DATA) DeviceObject->DeviceExtension;

    //
    // If the device has been removed, the driver should 
    // not pass the IRP down to the next lower driver.
    //
    
    if (commonData->DevicePnPState == Deleted) {
        PoStartNextPowerIrp (Irp);
        Irp->IoStatus.Status = status = STATUS_DELETE_PENDING;
        IoCompleteRequest (Irp, IO_NO_INCREMENT);
        return status;
    }

    if (commonData->IsFDO) {

        Bus_KdPrint (commonData, BUS_DBG_PNP_TRACE,
            ("FDO %s IRP:0x%x %s %s\n",
            PowerMinorFunctionString(irpStack->MinorFunction), Irp,
            DbgSystemPowerString(commonData->SystemPowerState), 
            DbgDevicePowerString(commonData->DevicePowerState)));


        status = Bus_FDO_Power ((PFDO_DEVICE_DATA)DeviceObject->DeviceExtension,
                                Irp);
    } else {
    
        Bus_KdPrint (commonData, BUS_DBG_PNP_TRACE,
            ("PDO %s IRP:0x%x %s %s\n",
            PowerMinorFunctionString(irpStack->MinorFunction), Irp,
            DbgSystemPowerString(commonData->SystemPowerState), 
            DbgDevicePowerString(commonData->DevicePowerState)));

        status = Bus_PDO_Power ((PPDO_DEVICE_DATA)DeviceObject->DeviceExtension,
                                Irp);
    }

    return status;
}


NTSTATUS
Bus_FDO_Power (
    PFDO_DEVICE_DATA    Data,
    PIRP                Irp
    )
/*++
    Handles power Irps sent to the FDO.
    This driver is power policy owner for the bus itself 
    (not the devices on the bus).Power handling for the bus FDO 
    should be implemented similar to the function driver (vusbbus.sys)
    power code. We will just print some debug outputs and 
    forward this Irp to the next level. 
    
Arguments:

    Data -  Pointer to the FDO device extension.
    Irp  -  Pointer to the irp.

Return Value:

    NT status is returned.

--*/

{
    NTSTATUS            status;
    POWER_STATE         powerState;
    POWER_STATE_TYPE    powerType;
    PIO_STACK_LOCATION  stack;

    stack = IoGetCurrentIrpStackLocation (Irp);
    powerType = stack->Parameters.Power.Type;
    powerState = stack->Parameters.Power.State;

    //
    // If the device is not stated yet, just pass it down.
    //
    
    if (Data->DevicePnPState == NotStarted) {
        PoStartNextPowerIrp(Irp);
        IoSkipCurrentIrpStackLocation(Irp);
        return PoCallDriver(Data->NextLowerDriver, Irp);
    }

    Bus_IncIoCount (Data);

    if(stack->MinorFunction == IRP_MN_SET_POWER) {
        Bus_KdPrint_Cont(Data, BUS_DBG_POWER_TRACE,
                     ("\tRequest to set %s state to %s\n",
                     ((powerType == SystemPowerState) ?  "System" : "Device"),
                     ((powerType == SystemPowerState) ? \
                        DbgSystemPowerString(powerState.SystemState) :\
                        DbgDevicePowerString(powerState.DeviceState))));
    }

    PoStartNextPowerIrp (Irp);
    IoSkipCurrentIrpStackLocation(Irp);
    status =  PoCallDriver (Data->NextLowerDriver, Irp);    
    Bus_DecIoCount (Data);
    return status;
}


NTSTATUS
Bus_PDO_Power (
    PPDO_DEVICE_DATA    PdoData,
    PIRP                Irp
    )
/*++
    Handles power Irps sent to the PDOs.
    Typically a bus driver, that is not a power
    policy owner for the device, does nothing
    more than starting the next power IRP and
    completing this one.
    
Arguments:

    PdoData - Pointer to the PDO device extension.
    Irp     - Pointer to the irp.

Return Value:

    NT status is returned.

--*/

{
    NTSTATUS            status;
    PIO_STACK_LOCATION  stack;
    POWER_STATE         powerState;
    POWER_STATE_TYPE    powerType;

    stack = IoGetCurrentIrpStackLocation (Irp);
    powerType = stack->Parameters.Power.Type;
    powerState = stack->Parameters.Power.State;

    switch (stack->MinorFunction) {
    case IRP_MN_SET_POWER:
    
        Bus_KdPrint_Cont(PdoData, BUS_DBG_POWER_TRACE, 
                     ("\tSetting %s power state to %s\n",
                     ((powerType == SystemPowerState) ?  "System" : "Device"),
                     ((powerType == SystemPowerState) ? \
                        DbgSystemPowerString(powerState.SystemState) : \
                        DbgDevicePowerString(powerState.DeviceState))));
                     
        switch (powerType) {
            case DevicePowerState:
                PoSetPowerState (PdoData->Self, powerType, powerState);
                PdoData->DevicePowerState = powerState.DeviceState;
                status = STATUS_SUCCESS;
                break;

            case SystemPowerState:
                PdoData->SystemPowerState = powerState.SystemState;
                status = STATUS_SUCCESS;
                break;

            default:
                status = STATUS_NOT_SUPPORTED;
                break;
        }
        break;

    case IRP_MN_QUERY_POWER:
        status = STATUS_SUCCESS;
        break;

    case IRP_MN_WAIT_WAKE:
    case IRP_MN_POWER_SEQUENCE:
    default:
        status = STATUS_NOT_SUPPORTED;
        break;
    }

    if (status != STATUS_NOT_SUPPORTED) {

        Irp->IoStatus.Status = status;
    }

    PoStartNextPowerIrp(Irp);
    status = Irp->IoStatus.Status;
    IoCompleteRequest (Irp, IO_NO_INCREMENT);

    return status;
}

#if DBG

PCHAR
PowerMinorFunctionString (
    UCHAR MinorFunction
)
{
    switch (MinorFunction)
    {
        case IRP_MN_SET_POWER:
            return "IRP_MN_SET_POWER";
        case IRP_MN_QUERY_POWER:
            return "IRP_MN_QUERY_POWER";
        case IRP_MN_POWER_SEQUENCE:
            return "IRP_MN_POWER_SEQUENCE";
        case IRP_MN_WAIT_WAKE:
            return "IRP_MN_WAIT_WAKE";
            
        default:
            return "unknown_power_irp";
    }
}

PCHAR 
DbgSystemPowerString(
    IN SYSTEM_POWER_STATE Type
    ) 
{  
    switch (Type)
    {
        case PowerSystemUnspecified:
            return "PowerSystemUnspecified";
        case PowerSystemWorking:
            return "PowerSystemWorking";
        case PowerSystemSleeping1:
            return "PowerSystemSleeping1";
        case PowerSystemSleeping2:
            return "PowerSystemSleeping2";
        case PowerSystemSleeping3:
            return "PowerSystemSleeping3";
        case PowerSystemHibernate:
            return "PowerSystemHibernate";
        case PowerSystemShutdown:
            return "PowerSystemShutdown";
        case PowerSystemMaximum:
            return "PowerSystemMaximum";
        default:
            return "UnKnown System Power State";
    }
 }

PCHAR 
DbgDevicePowerString(
    IN DEVICE_POWER_STATE Type
    )   
{
    switch (Type)
    {
        case PowerDeviceUnspecified:
            return "PowerDeviceUnspecified";
        case PowerDeviceD0:
            return "PowerDeviceD0";
        case PowerDeviceD1:
            return "PowerDeviceD1";
        case PowerDeviceD2:
            return "PowerDeviceD2";
        case PowerDeviceD3:
            return "PowerDeviceD3";
        case PowerDeviceMaximum:
            return "PowerDeviceMaximum";
        default:
            return "UnKnown Device Power State";
    }
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆免费视频| 国产99久久久国产精品| 欧美日韩综合色| 亚洲伊人伊色伊影伊综合网| 在线欧美日韩精品| 午夜久久久久久久久久一区二区| 欧美日韩国产不卡| 国内外成人在线| 国产精品视频观看| 欧美自拍偷拍一区| 日本不卡的三区四区五区| 精品国产麻豆免费人成网站| 国产成人免费在线观看| 最新中文字幕一区二区三区| 欧美亚洲图片小说| 精品午夜久久福利影院| 一区在线观看视频| 欧美三级韩国三级日本一级| 久久99国产精品免费网站| 亚洲国产岛国毛片在线| 欧美性受极品xxxx喷水| 久久99精品国产麻豆婷婷洗澡| 国产精品无人区| 欧美三日本三级三级在线播放| 久久99久国产精品黄毛片色诱| 国产精品家庭影院| 久久丝袜美腿综合| 欧美少妇一区二区| 国产成人综合精品三级| 亚洲午夜久久久久久久久电影网 | 欧美自拍偷拍午夜视频| 蜜桃av一区二区| 亚洲欧洲美洲综合色网| 91麻豆精品国产91久久久久久久久| 国产乱码精品一品二品| 亚洲大型综合色站| 国产精品私人影院| 欧美一区二区福利在线| 97精品超碰一区二区三区| 日韩avvvv在线播放| 国产精品激情偷乱一区二区∴| 欧美精选午夜久久久乱码6080| 成人午夜电影小说| 看片的网站亚洲| 一区二区三区在线免费观看| 久久一留热品黄| 欧美精品乱码久久久久久按摩 | 99re热这里只有精品视频| 另类小说色综合网站| 夜色激情一区二区| 久久精品男人天堂av| 欧美一区午夜视频在线观看| 99re在线精品| 成人午夜免费视频| 国产麻豆欧美日韩一区| 日本成人中文字幕在线视频| 亚洲欧美日韩综合aⅴ视频| 久久久久亚洲蜜桃| 欧美一区二区三区四区五区| 欧洲国产伦久久久久久久| 成人激情av网| 成人一区二区三区在线观看| 日韩国产成人精品| 亚洲一区二区三区四区的| 亚洲人成在线播放网站岛国| 国产日韩视频一区二区三区| 精品成人一区二区三区| 日韩亚洲欧美高清| 69久久99精品久久久久婷婷| 欧美日韩卡一卡二| 欧美日韩日日骚| 欧美日韩亚洲综合| 欧美日韩国产乱码电影| 欧美日韩国产大片| 8x8x8国产精品| 欧美一区二区三区免费观看视频 | 高清不卡在线观看| 国产露脸91国语对白| 国产在线精品一区二区三区不卡| 另类人妖一区二区av| 麻豆精品国产传媒mv男同| 久久福利资源站| 国产在线一区二区| 懂色av噜噜一区二区三区av| 国产91精品精华液一区二区三区 | 国产欧美视频一区二区| 国产亚洲制服色| 国产精品少妇自拍| 中文字幕色av一区二区三区| 综合激情网...| 亚洲综合成人在线视频| 亚洲成av人片在线观看无码| 日韩av中文字幕一区二区三区| 天天操天天色综合| 精品在线播放免费| 成人在线视频一区| 在线观看一区二区视频| 337p亚洲精品色噜噜| 精品久久人人做人人爰| 国产色产综合色产在线视频| 国产精品久久精品日日| 亚洲一区中文在线| 日本亚洲最大的色成网站www| 久久精品国产99| 成人国产精品免费观看| 欧美日韩久久久| 久久亚洲一区二区三区四区| 国产精品白丝在线| 亚洲va欧美va人人爽| 国产在线视频不卡二| 91视频免费播放| 日韩一级完整毛片| 国产精品国产三级国产a| 午夜视黄欧洲亚洲| 懂色中文一区二区在线播放| 91久久香蕉国产日韩欧美9色| 日韩欧美一卡二卡| 亚洲人成亚洲人成在线观看图片| 日本成人中文字幕在线视频 | 国产精品视频九色porn| 一区二区三区在线高清| 国产一区二区不卡| 欧美在线免费播放| 中文一区一区三区高中清不卡| 亚洲一区二区精品3399| 顶级嫩模精品视频在线看| 欧美精品在线观看一区二区| 中文字幕av资源一区| 日本午夜一本久久久综合| 99国产精品久久久| 久久久综合视频| 日韩和欧美一区二区| 91网站在线观看视频| 精品少妇一区二区三区日产乱码| 一区二区三区在线视频观看58| 激情综合色播激情啊| 欧美高清你懂得| 亚洲男人的天堂网| 成人丝袜18视频在线观看| 欧美电影免费提供在线观看| 亚洲午夜免费视频| 91在线观看污| 国产午夜精品久久久久久免费视| 日韩va欧美va亚洲va久久| 在线观看日韩电影| 激情偷乱视频一区二区三区| 欧美午夜一区二区三区免费大片| 久久精品人人做人人综合| 麻豆高清免费国产一区| 欧美日韩精品电影| 亚洲一区二区三区四区五区黄| 成人18视频日本| 久久久不卡网国产精品一区| 日韩av一二三| 欧美区在线观看| 亚洲制服欧美中文字幕中文字幕| 成人av动漫在线| 国产精品免费视频观看| 国产大陆亚洲精品国产| 欧美成人艳星乳罩| 男人操女人的视频在线观看欧美| 欧美手机在线视频| 洋洋成人永久网站入口| 色狠狠桃花综合| 一区二区三区四区在线播放 | 国产精品性做久久久久久| 欧美不卡一区二区三区四区| 青青草伊人久久| 日韩一区国产二区欧美三区| 美国十次了思思久久精品导航| 91精品欧美综合在线观看最新| 三级一区在线视频先锋| 欧美一卡二卡三卡| 老色鬼精品视频在线观看播放| 欧美一级二级三级乱码| 久久99国内精品| 国产婷婷色一区二区三区在线| 国产成人午夜精品影院观看视频| 久久久久久夜精品精品免费| 福利一区福利二区| 中文字幕人成不卡一区| 在线影院国内精品| 爽好多水快深点欧美视频| 欧美mv日韩mv| 不卡在线观看av| 亚洲一区二区三区视频在线| 欧美久久高跟鞋激| 国产一区二区免费看| 国产欧美一区在线| 色婷婷一区二区三区四区| 天堂精品中文字幕在线| 精品久久久久久久久久久久久久久久久| 国产乱码字幕精品高清av| 最新日韩av在线| 制服视频三区第一页精品| 国产一区二区三区免费观看| 中文字幕日韩精品一区 | www.日韩精品| 亚洲已满18点击进入久久| 日韩女优毛片在线|