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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? intwmi.c

?? Silicon Laboratories C8051F320/1單片機(jī)例子
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*++

Module Name:

    intwmi.c

Abstract:

Environment:

    Kernel mode

Notes:


--*/

#include "intusb.h"
#include "intpwr.h"
#include "intpnp.h"
#include "intdev.h"
#include "intrwr.h"
#include "intwmi.h"
#include "intusr.h"

#define MOFRESOURCENAME L"MofResourceName"

#define WMI_INTUSB_DRIVER_INFORMATION 0

DEFINE_GUID (INTUSB_WMI_STD_DATA_GUID, 
0xBBA21300, 0x6DD3, 0x11d2, 0xB8, 0x44, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);

WMIGUIDREGINFO IntWmiGuidList[1] = { {

        &INTUSB_WMI_STD_DATA_GUID, 1, 0 // driver information
    }
};

NTSTATUS
IntUsb_WmiRegistration(
    IN OUT PDEVICE_EXTENSION DeviceExtension
    )
/*++

Routine Description:

    Registers with WMI as a data provider for this
    instance of the device

Arguments:

Return Value:

--*/
{
    NTSTATUS ntStatus;
    
    PAGED_CODE();

    DeviceExtension->WmiLibInfo.GuidCount = 
          sizeof (IntWmiGuidList) / sizeof (WMIGUIDREGINFO);

    DeviceExtension->WmiLibInfo.GuidList           = IntWmiGuidList;
    DeviceExtension->WmiLibInfo.QueryWmiRegInfo    = IntUsb_QueryWmiRegInfo;
    DeviceExtension->WmiLibInfo.QueryWmiDataBlock  = IntUsb_QueryWmiDataBlock;
    DeviceExtension->WmiLibInfo.SetWmiDataBlock    = IntUsb_SetWmiDataBlock;
    DeviceExtension->WmiLibInfo.SetWmiDataItem     = IntUsb_SetWmiDataItem;
    DeviceExtension->WmiLibInfo.ExecuteWmiMethod   = NULL;
    DeviceExtension->WmiLibInfo.WmiFunctionControl = NULL;

    //
    // Register with WMI
    //
    
    ntStatus = IoWMIRegistrationControl(DeviceExtension->FunctionalDeviceObject,
                                        WMIREG_ACTION_REGISTER);

    return ntStatus;
    
}

NTSTATUS
IntUsb_WmiDeRegistration(
    IN OUT PDEVICE_EXTENSION DeviceExtension
    )
/*++

Routine Description:

     Inform WMI to remove this DeviceObject from its 
     list of providers. This function also 
     decrements the reference count of the deviceobject.

Arguments:

Return Value:

--*/
{

    PAGED_CODE();

    return IoWMIRegistrationControl(DeviceExtension->FunctionalDeviceObject,
                                    WMIREG_ACTION_DEREGISTER);

}

NTSTATUS
IntUsb_DispatchSysCtrl(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP           Irp
    )
/*++
 
Routine Description:

Arguments:

Return Value:

--*/
{
    PDEVICE_EXTENSION       deviceExtension;
    SYSCTL_IRP_DISPOSITION  disposition;
    NTSTATUS                ntStatus;
    PIO_STACK_LOCATION      irpStack;
    
    PAGED_CODE();

    irpStack = IoGetCurrentIrpStackLocation (Irp);
    deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;

    KdPrint( (WMIMinorFunctionString(irpStack->MinorFunction)));

    if(Removed == deviceExtension->DeviceState) {

        ntStatus = STATUS_DELETE_PENDING;

        Irp->IoStatus.Status = ntStatus;
        Irp->IoStatus.Information = 0;

        IoCompleteRequest(Irp, IO_NO_INCREMENT);

        return ntStatus;
    }

    KdPrint( ("IntUsb_DispatchSysCtrl::"));
    IntUsb_IoIncrement(deviceExtension);

    ntStatus = WmiSystemControl(&deviceExtension->WmiLibInfo, 
                                DeviceObject, 
                                Irp,
                                &disposition);

    switch(disposition) {

        case IrpProcessed: 
        {
            //
            // This irp has been processed and may be completed or pending.
            //

            break;
        }
        
        case IrpNotCompleted:
        {
            //
            // This irp has not been completed, but has been fully processed.
            // we will complete it now
            //

            IoCompleteRequest(Irp, IO_NO_INCREMENT);                

            break;
        }
        
        case IrpForward:
        case IrpNotWmi:
        {
            //
            // This irp is either not a WMI irp or is a WMI irp targeted
            // at a device lower in the stack.
            //

            IoSkipCurrentIrpStackLocation (Irp);

            ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, 
                                    Irp);

            break;
        }
                                    
        default:
        {
            //
            // We really should never get here, but if we do just forward....
            //

            ASSERT(FALSE);

            IoSkipCurrentIrpStackLocation (Irp);

            ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, 
                                  Irp);
            break;
        }        
    }

    KdPrint( ("IntUsb_DispatchSysCtrl::"));
    IntUsb_IoDecrement(deviceExtension);

    return ntStatus;
}

NTSTATUS
IntUsb_QueryWmiRegInfo(
    IN  PDEVICE_OBJECT  DeviceObject,
    OUT ULONG           *RegFlags,
    OUT PUNICODE_STRING InstanceName,
    OUT PUNICODE_STRING *RegistryPath,
    OUT PUNICODE_STRING MofResourceName,
    OUT PDEVICE_OBJECT  *Pdo	    
    )
/*++

Routine Description:

    This routine is a callback into the driver to retrieve the list of
    guids or data blocks that the driver wants to register with WMI. This
    routine may not pend or block. Driver should NOT call
    WmiCompleteRequest.

Arguments:

    DeviceObject is the device whose data block is being queried

    *RegFlags returns with a set of flags that describe the guids being
        registered for this device. If the device wants enable and disable
        collection callbacks before receiving queries for the registered
        guids then it should return the WMIREG_FLAG_EXPENSIVE flag. Also the
        returned flags may specify WMIREG_FLAG_INSTANCE_PDO in which case
        the instance name is determined from the PDO associated with the
        device object. Note that the PDO must have an associated devnode. If
        WMIREG_FLAG_INSTANCE_PDO is not set then Name must return a unique
        name for the device.

    InstanceName returns with the instance name for the guids if
        WMIREG_FLAG_INSTANCE_PDO is not set in the returned *RegFlags. The
        caller will call ExFreePool with the buffer returned.

    *RegistryPath returns with the registry path of the driver

    *MofResourceName returns with the name of the MOF resource attached to
        the binary file. If the driver does not have a mof resource attached
        then this can be returned as NULL.

    *Pdo returns with the device object for the PDO associated with this
        device if the WMIREG_FLAG_INSTANCE_PDO flag is returned in 
        *RegFlags.

Return Value:

    status

--*/
{
    PDEVICE_EXTENSION deviceExtension;

    PAGED_CODE();

    KdPrint( ("IntUsb_QueryWmiRegInfo - begins\n"));

    deviceExtension = DeviceObject->DeviceExtension;

    *RegFlags     = WMIREG_FLAG_INSTANCE_PDO;
    *RegistryPath = &Globals.IntUsb_RegistryPath;
    *Pdo          = deviceExtension->PhysicalDeviceObject;
    RtlInitUnicodeString(MofResourceName, MOFRESOURCENAME);

    KdPrint( ("IntUsb_QueryWmiRegInfo - ends\n"));
    
    return STATUS_SUCCESS;
}

NTSTATUS
IntUsb_QueryWmiDataBlock(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP           Irp,
    IN ULONG          GuidIndex,
    IN ULONG          InstanceIndex,
    IN ULONG          InstanceCount,
    IN OUT PULONG     InstanceLengthArray,
    IN ULONG          OutBufferSize,
    OUT PUCHAR        Buffer
    )
/*++

Routine Description:

    This routine is a callback into the driver to query for the contents of
    a data block. When the driver has finished filling the data block it
    must call WmiCompleteRequest to complete the irp. The driver can
    return STATUS_PENDING if the irp cannot be completed immediately.

Arguments:

    DeviceObject is the device whose data block is being queried

    Irp is the Irp that makes this request

    GuidIndex is the index into the list of guids provided when the
        device registered

    InstanceIndex is the index that denotes which instance of the data block
        is being queried.
            
    InstanceCount is the number of instances expected to be returned for
        the data block.
            
    InstanceLengthArray is a pointer to an array of ULONG that returns the 
        lengths of each instance of the data block. If this is NULL then
        there was not enough space in the output buffer to fulfill the request

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线综合| 中文字幕高清一区| 精品视频123区在线观看| 91蝌蚪国产九色| 成人小视频免费观看| 国产老妇另类xxxxx| 国产综合成人久久大片91| 狠狠色伊人亚洲综合成人| 美洲天堂一区二卡三卡四卡视频| 日本欧洲一区二区| 麻豆国产91在线播放| 蜜臀久久久久久久| 美女国产一区二区| 国产一区二区三区最好精华液| 韩国一区二区在线观看| 国产一区二区三区高清播放| 午夜影院久久久| 亚洲国产成人av网| 午夜亚洲国产au精品一区二区| 中文字幕一区免费在线观看| 欧美激情在线一区二区| 欧美v亚洲v综合ⅴ国产v| 在线观看亚洲精品| 91黄色激情网站| 99久久er热在这里只有精品15| 黄色精品一二区| 精品一区二区久久| 精品久久五月天| 久久精品无码一区二区三区| 国产精品久久久久一区| 成人欧美一区二区三区视频网页| 亚洲精品中文在线影院| 丝袜诱惑亚洲看片| 狠狠色丁香婷婷综合| av电影在线观看不卡| 欧美色图天堂网| 欧美一级在线视频| 日本一区二区视频在线| 亚洲美女免费在线| 热久久一区二区| 国产91丝袜在线观看| 色吊一区二区三区| 欧美不卡视频一区| 国产精品黄色在线观看| 午夜久久久久久| 国产精品99久| 欧美色倩网站大全免费| 久久综合成人精品亚洲另类欧美 | 国产精品一区二区男女羞羞无遮挡| 国产精品1024| 色狠狠一区二区| 26uuu国产电影一区二区| 亚洲欧美综合色| 久久99国产精品成人| 91同城在线观看| 日韩免费成人网| 亚洲精品成人少妇| 国产伦精品一区二区三区免费迷 | 国产高清精品久久久久| 色激情天天射综合网| 精品卡一卡二卡三卡四在线| 欧美经典一区二区| 成人永久看片免费视频天堂| 欧美日韩国产一二三| 国产欧美一区二区精品性色超碰 | 欧美一级在线观看| 久久亚区不卡日本| 国产精品一卡二卡在线观看| 欧美精品一区二区在线播放| 一区二区三区欧美日| 久久99九九99精品| 欧美亚洲一区二区三区四区| 欧美激情在线一区二区| 久久激五月天综合精品| 欧美性猛片aaaaaaa做受| 国产嫩草影院久久久久| 久久国产人妖系列| 欧美日韩亚洲另类| 亚洲人成网站色在线观看 | 欧美日韩黄色一区二区| 国产性色一区二区| 日本不卡一区二区| 色婷婷亚洲一区二区三区| 欧美日韩精品欧美日韩精品一 | 经典三级在线一区| 欧美中文字幕一二三区视频| 久久久噜噜噜久久中文字幕色伊伊| 樱桃视频在线观看一区| 国产69精品久久久久毛片 | 欧美一级一级性生活免费录像| 国产精品理伦片| 国产老女人精品毛片久久| 7777女厕盗摄久久久| 亚洲综合久久久久| 极品少妇一区二区三区精品视频| 欧美日韩精品一二三区| 亚洲免费观看高清完整版在线观看| 久久精品国产免费| 欧美亚州韩日在线看免费版国语版| 国产欧美日韩一区二区三区在线观看| 日韩在线播放一区二区| 在线观看一区不卡| 日本一二三不卡| 成人免费视频一区二区| 精品精品国产高清a毛片牛牛| 欧美日韩和欧美的一区二区| 亚洲国产精品久久人人爱| 日韩限制级电影在线观看| 国产乱码精品一区二区三区五月婷| 欧美一级午夜免费电影| 亚洲一区二区三区自拍| 欧美日韩精品三区| 九九在线精品视频| 国产午夜一区二区三区| 成人久久视频在线观看| 亚洲色图制服诱惑 | 亚洲视频综合在线| 精品写真视频在线观看| 欧美男人的天堂一二区| 日韩中文欧美在线| 欧美私人免费视频| 亚洲一区二区三区美女| 91尤物视频在线观看| 国产精品国产自产拍高清av | 亚洲国产综合色| 色噜噜久久综合| 亚洲曰韩产成在线| 欧美三级电影精品| 久久激情五月婷婷| 精品99999| 国产成人在线观看| 日本一二三不卡| 一本一本久久a久久精品综合麻豆| 日韩久久一区二区| 欧美色偷偷大香| 久久99国内精品| 中文字幕不卡在线观看| av在线这里只有精品| 亚洲伦理在线免费看| 欧美亚洲动漫制服丝袜| 日韩电影免费在线看| 日韩一区二区影院| 成人丝袜18视频在线观看| 亚洲男女毛片无遮挡| 欧美日韩一区精品| 捆绑调教一区二区三区| 国产精品丝袜久久久久久app| 91香蕉国产在线观看软件| 伊人开心综合网| 欧美大肚乱孕交hd孕妇| 国产99精品国产| 亚洲一区在线播放| 日韩一区二区在线免费观看| 国产精品亚洲午夜一区二区三区| 国产精品成人免费| 色婷婷av一区二区三区软件| 精品在线播放午夜| 成人免费在线视频观看| 欧美精品日韩一区| 国产一本一道久久香蕉| 一区二区三区欧美激情| 91精品国产综合久久久久| 成人爱爱电影网址| 三级亚洲高清视频| 国产亚洲综合av| 成人精品视频一区二区三区尤物| 国产精品色哟哟| 91麻豆精品国产91久久久久久久久 | 91福利资源站| 久久丁香综合五月国产三级网站| 国产精品丝袜一区| 欧美高清dvd| 成人美女在线观看| 捆绑调教美女网站视频一区| 《视频一区视频二区| 欧美一级高清片| 色综合色综合色综合色综合色综合 | 一区二区三区精品视频在线| 欧美不卡一区二区三区| 成人美女在线观看| 国产精品 欧美精品| 天天综合网天天综合色| 国产精品午夜春色av| 日韩丝袜情趣美女图片| 99re热这里只有精品视频| 精品影视av免费| 一区二区在线观看免费| 自拍偷拍亚洲激情| 久久久久久久久久久久久久久99 | 日日摸夜夜添夜夜添亚洲女人| 久久久亚洲精品石原莉奈 | 久久久国产精品午夜一区ai换脸| 欧美在线啊v一区| 国产成人精品影视| 欧美a一区二区| 午夜激情久久久| 国产精品传媒视频| 国产精品久久综合| 久久一区二区视频| 日韩视频一区二区在线观看|