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

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

?? hidpi.h

?? usb設(shè)備檢測(cè) 信息采集程序
?? H
字號(hào):
 /*++

Copyright (c) 1996-1998      Microsoft Corporation

Module Name:

        HIDPI.H

Abstract:

   Public Interface to the HID parsing library.

Environment:

    Kernel & user mode

--*/

#ifndef   __HIDPI_H__
#define   __HIDPI_H__

#include <pshpack4.h>

// Please include "hidsdi.h" to use the user space (dll / parser)
// Please include "hidpddi.h" to use the kernel space parser

//
// Special Link collection values for using the query functions
//
// Root collection references the collection at the base of the link
// collection tree.
// Unspecifies, references all collections in the link collection tree.
//
#define HIDP_LINK_COLLECTION_ROOT ((USHORT) -1)
#define HIDP_LINK_COLLECTION_UNSPECIFIED ((USHORT) 0)


typedef enum _HIDP_REPORT_TYPE
{
    HidP_Input,
    HidP_Output,
    HidP_Feature
} HIDP_REPORT_TYPE;

typedef struct _USAGE_AND_PAGE
{
    USAGE Usage;
    USAGE UsagePage;
} USAGE_AND_PAGE, *PUSAGE_AND_PAGE;

#define HidP_IsSameUsageAndPage(u1, u2) ((* (PULONG) &u1) == (* (PULONG) &u2))

typedef struct _HIDP_BUTTON_CAPS
{
    USAGE    UsagePage;
    UCHAR    ReportID;
    BOOLEAN  IsAlias;

    USHORT   BitField;
    USHORT   LinkCollection;   // A unique internal index pointer

    USAGE    LinkUsage;
    USAGE    LinkUsagePage;

    BOOLEAN  IsRange;
    BOOLEAN  IsStringRange;
    BOOLEAN  IsDesignatorRange;
    BOOLEAN  IsAbsolute;

    ULONG    Reserved[10];
    union {
        struct {
            USAGE    UsageMin,         UsageMax;
            USHORT   StringMin,        StringMax;
            USHORT   DesignatorMin,    DesignatorMax;
            USHORT   DataIndexMin,     DataIndexMax;
        } Range;
        struct  {
            USAGE    Usage,            Reserved1;
            USHORT   StringIndex,      Reserved2;
            USHORT   DesignatorIndex,  Reserved3;
            USHORT   DataIndex,        Reserved4;
        } NotRange;
    };

} HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS;


typedef struct _HIDP_VALUE_CAPS
{
    USAGE    UsagePage;
    UCHAR    ReportID;
    BOOLEAN  IsAlias;

    USHORT   BitField;
    USHORT   LinkCollection;   // A unique internal index pointer

    USAGE    LinkUsage;
    USAGE    LinkUsagePage;

    BOOLEAN  IsRange;
    BOOLEAN  IsStringRange;
    BOOLEAN  IsDesignatorRange;
    BOOLEAN  IsAbsolute;

    BOOLEAN  HasNull;        // Does this channel have a null report   union
    UCHAR    Reserved;
    USHORT   BitSize;        // How many bits are devoted to this value?

    USHORT   ReportCount;    // See Note below.  Usually set to 1.
    USHORT   Reserved2[5];

    ULONG    UnitsExp;
    ULONG    Units;

    LONG     LogicalMin,       LogicalMax;
    LONG     PhysicalMin,      PhysicalMax;

    union {
        struct {
            USAGE    UsageMin,         UsageMax;
            USHORT   StringMin,        StringMax;
            USHORT   DesignatorMin,    DesignatorMax;
            USHORT   DataIndexMin,     DataIndexMax;
        } Range;

        struct {
            USAGE    Usage,            Reserved1;
            USHORT   StringIndex,      Reserved2;
            USHORT   DesignatorIndex,  Reserved3;
            USHORT   DataIndex,        Reserved4;
        } NotRange;
    };
} HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS;

//
// Notes:
//
// ReportCount:  When a report descriptor declares an Input, Output, or
// Feature main item with fewer usage declarations than the report count, then
// the last usage applies to all remaining unspecified count in that main item.
// (As an example you might have data that required many fields to describe,
// possibly buffered bytes.)  In this case, only one value cap structure is
// allocated for these associtated fields, all with the same usage, and Report
// Count reflects the number of fields involved.  Normally ReportCount is 1.
// To access all of the fields in such a value structure would require using
// HidP_GetUsageValueArray and HidP_SetUsageValueArray.   HidP_GetUsageValue/
// HidP_SetScaledUsageValue will also work, however, these functions will only
// work with the first field of the structure.
//

//
// The link collection tree consists of an array of LINK_COLLECTION_NODES
// where the index into this array is the same as the collection number.
//
// Given a collection A which contains a subcollection B, A is defined to be
// the parent B, and B is defined to be the child.
//
// Given collections A, B, and C where B and C are children of A, and B was
// encountered before C in the report descriptor, B is defined as a sibling of
// C.  (This implies, of course, that if B is a sibling of C, then C is NOT a
// sibling of B).
//
// B is defined as the NextSibling of C if and only if there exists NO
// child collection of A, call it D, such that B is a sibling of D and D
// is a sibling of C.
//
// E is defined to be the FirstChild of A if and only if for all children of A,
// F, that are not equivalent to E, F is a sibling of E.
// (This implies, of course, that the does not exist a child of A, call it G,
// where E is a sibling of G).  In other words the first sibling is the last
// link collection found in the list.
//
// In other words, if a collection B is defined within the definition of another
// collection A, B becomes a child of A.  All collections with the same parent
// are considered siblings.  The FirstChild of the parent collection, A, will be
// last collection defined that has A as a parent.  The order of sibling pointers
// is similarly determined.  When a collection B is defined, it becomes the
// FirstChild of it's parent collection.  The previously defined FirstChild of the
// parent collection becomes the NextSibling of the new collection.  As new
// collections with the same parent are discovered, the chain of sibling is built.
//
// With that in mind, the following describes conclusively a data structure
// that provides direct traversal up, down, and accross the link collection
// tree.
//
//
typedef struct _HIDP_LINK_COLLECTION_NODE
{
    USAGE    LinkUsage;
    USAGE    LinkUsagePage;
    USHORT   Parent;
    USHORT   NumberOfChildren;
    USHORT   NextSibling;
    USHORT   FirstChild;
    ULONG    CollectionType: 8;  // As defined in 6.2.2.6 of HID spec
    ULONG    IsAlias : 1; // This link node is an allias of the next link node.
    ULONG    Reserved: 23;
    PVOID    UserContext; // The user can hang his coat here.
} HIDP_LINK_COLLECTION_NODE, *PHIDP_LINK_COLLECTION_NODE;

//
// When a link collection is described by a delimiter, alias link collection
// nodes are created.  (One for each usage within the delimiter).
// The parser assigns each capability description listed above only one
// link collection.
//
// If a control is defined within a collection defined by
// delimited usages, then that control is said to be within multiple link
// collections, one for each usage within the open and close delimiter tokens.
// Such multiple link collecions are said to be aliases.  The first N-1 such
// collections, listed in the link collection node array, have their IsAlias
// bit set.  The last such link collection is the link collection index used
// in the capabilities described above.
// Clients wishing to set a control in an aliased collection, should walk the
// collection array once for each time they see the IsAlias flag set, and use
// the last link collection as the index for the below accessor functions.
//
// NB: if IsAlias is set, then NextSibling should be one more than the current
// link collection node index.
//

typedef PUCHAR  PHIDP_REPORT_DESCRIPTOR;
typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;

typedef struct _HIDP_CAPS
{
    USAGE    Usage;
    USAGE    UsagePage;
    USHORT   InputReportByteLength;
    USHORT   OutputReportByteLength;
    USHORT   FeatureReportByteLength;
    USHORT   Reserved[17];

    USHORT   NumberLinkCollectionNodes;

    USHORT   NumberInputButtonCaps;
    USHORT   NumberInputValueCaps;
    USHORT   NumberInputDataIndices;

    USHORT   NumberOutputButtonCaps;
    USHORT   NumberOutputValueCaps;
    USHORT   NumberOutputDataIndices;

    USHORT   NumberFeatureButtonCaps;
    USHORT   NumberFeatureValueCaps;
    USHORT   NumberFeatureDataIndices;
} HIDP_CAPS, *PHIDP_CAPS;

typedef struct _HIDP_DATA
{
    USHORT  DataIndex;
    USHORT  Reserved;
    union {
        ULONG   RawValue; // for values
        BOOLEAN On; // for buttons MUST BE TRUE for buttons.
    };
} HIDP_DATA, *PHIDP_DATA;
//
// The HIDP_DATA structure is used with HidP_GetData and HidP_SetData
// functions.
//
// The parser contiguously assigns every control (button or value) in a hid
// device a unique data index from zero to NumberXXXDataIndices -1 , inclusive.
// This value is found in the HIDP_BUTTON_CAPS and HIDP_VALUE_CAPS structures.
//
// Most clients will find the Get/Set Buttons / Value accessor functions
// sufficient to their needs, as they will allow the clients to access the
// data known to them while ignoring the other controls.
//
// More complex clients, which actually read the Button / Value Caps, and which
// do a value add service to these routines (EG Direct Input), will need to
// access all the data in the device without interest in the individual usage
// or link collection location.  These are the clients that will find
// HidP_Data useful.
//

typedef struct _HIDP_UNKNOWN_TOKEN
{
    UCHAR  Token;
    UCHAR  Reserved[3];
    ULONG  BitField;
} HIDP_UNKNOWN_TOKEN, *PHIDP_UNKNOWN_TOKEN;

typedef struct _HIDP_EXTENDED_ATTRIBUTES
{
    UCHAR   NumGlobalUnknowns;
    UCHAR   Reserved [3];
    PHIDP_UNKNOWN_TOKEN  GlobalUnknowns;
    // ... Additional attributes
    ULONG   Data [1]; // variableLength  DO NOT ACCESS THIS FIELD
} HIDP_EXTENDED_ATTRIBUTES, *PHIDP_EXTENDED_ATTRIBUTES;

NTSTATUS __stdcall
HidP_GetCaps (
   IN      PHIDP_PREPARSED_DATA      PreparsedData,
   OUT     PHIDP_CAPS                Capabilities
   );
/*++
Routine Description:
   Returns a list of capabilities of a given hid device as described by its
   preparsed data.

Arguments:
   PreparsedData    The preparsed data returned from HIDCLASS.
   Capabilities     a HIDP_CAPS structure

Return Value:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频一二三区 | 日韩专区一卡二卡| 欧洲精品一区二区三区在线观看| 亚洲婷婷综合久久一本伊一区| 99久久精品99国产精品| 亚洲日本欧美天堂| 欧美亚洲一区二区在线| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲美女偷拍久久| 色噜噜狠狠成人中文综合| 一区二区三区欧美在线观看| 欧美在线视频全部完| 三级亚洲高清视频| 国产亚洲综合性久久久影院| 成人高清免费观看| 亚洲va欧美va人人爽午夜| 日韩精品在线一区| 国产成人亚洲综合a∨婷婷| 日韩美女视频一区| 欧美一级理论片| 成人黄色小视频在线观看| 一区二区三区久久久| 日韩一级片在线播放| 国产在线播放一区| 日韩理论在线观看| 91精品国产麻豆国产自产在线| 激情综合网av| 一区二区三区在线视频观看| 欧美一区二区三区免费视频| 国产一区二区三区免费在线观看| 国产精品情趣视频| 欧美一区二区美女| av成人动漫在线观看| 日韩国产欧美在线观看| 国产亲近乱来精品视频| 欧美日韩一区二区三区视频| 国产乱子轮精品视频| 亚洲福利国产精品| 久久综合色婷婷| 欧美亚洲精品一区| 成人性生交大合| 奇米一区二区三区| 亚洲欧美日韩国产手机在线| 日韩欧美国产不卡| 欧美视频在线一区| 成人av网站大全| 韩国一区二区视频| 天天综合天天做天天综合| 一区免费观看视频| 久久久综合网站| 欧美一区二区三级| 在线视频你懂得一区| 成人免费视频播放| 精品一区二区三区日韩| 亚洲高清免费观看高清完整版在线观看| 精品国产亚洲在线| 欧美一级搡bbbb搡bbbb| 日本精品视频一区二区| 成人精品一区二区三区四区| 精品午夜久久福利影院 | 亚洲欧美一区二区三区极速播放| 久久影院视频免费| 欧美va亚洲va在线观看蝴蝶网| 欧美日韩精品专区| 在线观看成人小视频| 成人av电影免费观看| 国产精品888| 国产乱码精品一区二区三区忘忧草 | 久久久亚洲欧洲日产国码αv| 欧美高清dvd| 欧美日韩另类国产亚洲欧美一级| 色偷偷88欧美精品久久久| av动漫一区二区| 99精品视频在线播放观看| 国产精品系列在线播放| 国产精品一区二区在线观看网站 | 狠狠狠色丁香婷婷综合久久五月| 麻豆国产一区二区| 极品少妇一区二区三区精品视频| 麻豆freexxxx性91精品| 麻豆精品视频在线| 精品一区二区三区在线播放 | 精品国产乱码久久久久久久久 | 久久伊99综合婷婷久久伊| 欧美成人性战久久| 久久这里只有精品视频网| 久久蜜臀中文字幕| 国产精品沙发午睡系列990531| 国产亚洲精品aa午夜观看| 中文av一区特黄| 亚洲日本乱码在线观看| 亚洲综合清纯丝袜自拍| 五月婷婷综合网| 久久99国产精品麻豆| 国产激情一区二区三区桃花岛亚洲| 国产成人高清视频| 一本大道综合伊人精品热热 | 日本中文字幕一区二区有限公司| 日韩国产成人精品| 国产乱码精品一区二区三区av| 夫妻av一区二区| 91福利精品第一导航| 7777精品伊人久久久大香线蕉最新版| 日韩三级免费观看| 国产欧美精品在线观看| 亚洲欧洲中文日韩久久av乱码| 亚洲夂夂婷婷色拍ww47| 美国三级日本三级久久99| 国产精品1024久久| 欧美亚洲国产一区在线观看网站| 欧美一级高清大全免费观看| 久久久亚洲午夜电影| 一区二区成人在线| 精品一区二区三区影院在线午夜| 成人动漫一区二区在线| 91.com视频| 国产精品三级电影| 日韩激情一区二区| 成人免费毛片aaaaa**| 欧美视频在线观看一区二区| 26uuu国产日韩综合| 一区二区在线观看免费| 久久99热狠狠色一区二区| 91免费版pro下载短视频| 欧美va天堂va视频va在线| 中文字幕一区二区在线播放| 日本亚洲电影天堂| 91视频在线看| 久久先锋影音av| 亚洲高清久久久| av影院午夜一区| 欧美va亚洲va香蕉在线| 亚洲自拍偷拍麻豆| 成人avav在线| 2017欧美狠狠色| 一区二区在线看| 成人97人人超碰人人99| 欧美一区二区三区白人| 一区二区三区加勒比av| 国产在线精品不卡| 51午夜精品国产| 亚洲尤物在线视频观看| 成人免费va视频| 久久久亚洲国产美女国产盗摄| 天堂在线一区二区| 欧美专区亚洲专区| 中文字幕一区av| 国产成人综合在线观看| 精品欧美黑人一区二区三区| 五月婷婷激情综合| 欧美视频一区二区在线观看| 国产精品人人做人人爽人人添| 国产一区三区三区| 日韩免费电影一区| 免费一区二区视频| 欧美夫妻性生活| 首页欧美精品中文字幕| 欧美视频你懂的| 亚洲国产另类av| 欧美日韩一区中文字幕| 亚洲精品视频在线观看网站| www.66久久| 亚洲免费电影在线| 91毛片在线观看| 亚洲天堂福利av| 色一情一伦一子一伦一区| 日韩毛片视频在线看| 99riav一区二区三区| 亚洲欧美日韩中文播放| 91蜜桃网址入口| 亚洲卡通欧美制服中文| 一本色道亚洲精品aⅴ| 亚洲特黄一级片| 在线观看欧美日本| 亚洲一区av在线| 在线不卡中文字幕| 日本aⅴ亚洲精品中文乱码| 欧美一区二区三区播放老司机| 麻豆成人免费电影| 久久一区二区三区国产精品| 国产精品原创巨作av| 国产精品网站在线播放| 91污片在线观看| 亚洲国产日韩一级| 日韩欧美视频在线 | 成人精品国产一区二区4080| 国产精品女人毛片| 色天使色偷偷av一区二区| 亚洲成a人v欧美综合天堂下载 | 色狠狠综合天天综合综合| 欧美大片拔萝卜| 国产成人啪午夜精品网站男同| 中文一区在线播放| 91麻豆成人久久精品二区三区| 夜夜揉揉日日人人青青一国产精品| 欧美日韩不卡在线| 国产在线不卡视频| 一区二区三区在线高清| 日韩一区二区三区视频在线观看| 国产福利91精品一区二区三区|