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

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

?? hidpi.h

?? DDK API Calls USB Design
?? H
字號:
 /*++

Copyright (c) 1996      Microsoft Corporation

Module Name:

        HIDPI.H

Abstract:

   Public Interface to the HID parsing library.

Environment:

    Kernel & user mode

Revision History:

    09-29-95 : created by Kenneth D. Ray

--*/

#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


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;

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.
//

//
// 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.
//
// 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, exclusive.
// This value is found in HidP_ButtonCaps and HIDP_VALUE_CAPS and
// HIDP_BUTTON_CAPS structures.
//
// Most clients will find the Get/Set Buttons / Value accessor functions
// sufficient to their needs, as it will allow them 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.
//

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:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频免费在线观看| 国产亚洲欧美在线| 亚洲精品一线二线三线无人区| 久久久久久久性| 亚洲国产成人av网| 成人网在线免费视频| 日韩美女视频在线| 亚洲午夜三级在线| aaa欧美日韩| 日韩欧美国产一二三区| 亚洲最大的成人av| 丰满少妇在线播放bd日韩电影| 9191国产精品| 亚洲一区二区av电影| 成人av在线播放网址| 久久亚洲二区三区| 日韩av在线免费观看不卡| 日本电影亚洲天堂一区| 国产欧美精品一区二区三区四区 | 欧美性欧美巨大黑白大战| 国产丝袜欧美中文另类| 精品一区二区影视| 欧美一区二区网站| 亚洲一区精品在线| 在线视频欧美精品| 伊人开心综合网| 91丨国产丨九色丨pron| 国产精品进线69影院| 国产成人av电影在线观看| 精品黑人一区二区三区久久| 久久成人久久爱| 亚洲一区二区三区免费视频| 97久久超碰精品国产| 国产精品欧美极品| 成人综合激情网| 中文字幕高清一区| 91香蕉视频mp4| 亚洲激情在线播放| 91久久精品一区二区| 亚洲一级二级三级在线免费观看| 色激情天天射综合网| 一区二区三区鲁丝不卡| 欧美日韩性生活| 三级在线观看一区二区| 欧美一区二区视频观看视频| 日本网站在线观看一区二区三区| 91麻豆精品国产91久久久久| 看电视剧不卡顿的网站| 精品国产髙清在线看国产毛片| 经典三级视频一区| 国产精品三级视频| 在线免费观看日本一区| 亚洲国产精品麻豆| 日韩欧美在线网站| 成人福利视频在线看| 亚洲激情男女视频| 欧美日高清视频| 国产在线精品一区在线观看麻豆| 久久久精品影视| 日本高清不卡aⅴ免费网站| 日韩精品91亚洲二区在线观看| 精品少妇一区二区三区日产乱码 | 日韩久久久精品| 国产精品主播直播| 亚洲欧美偷拍三级| 欧美一区二区三区四区五区| 国产精品一区二区在线看| 亚洲欧美电影一区二区| 欧美一区二区福利视频| 成人精品视频一区二区三区| 午夜精品久久久久| 亚洲国产精品成人综合| 91精品欧美综合在线观看最新| 国产精品一区三区| 午夜精品免费在线观看| 日本一区二区在线不卡| 欧美日韩色综合| 国产成人综合亚洲网站| 亚洲国产精品久久久久秋霞影院 | 337p亚洲精品色噜噜| 久久国产精品72免费观看| 亚洲日本乱码在线观看| 欧美变态tickle挠乳网站| 91香蕉视频黄| 丰满亚洲少妇av| 美女视频黄 久久| 亚洲一区二区三区四区在线免费观看| 日韩亚洲电影在线| 一本久道久久综合中文字幕| 国产自产视频一区二区三区| 亚洲国产成人av好男人在线观看| 国产视频一区在线观看| 欧美一区二区黄| 欧美性受xxxx黑人xyx| 成人爱爱电影网址| 国产一区欧美二区| 三级不卡在线观看| 一区av在线播放| 国产精品国产自产拍在线| 久久丝袜美腿综合| 精品毛片乱码1区2区3区| 欧美日韩国产另类一区| 欧美性猛交xxxx乱大交退制版| 成人免费视频一区二区| 国产福利91精品一区二区三区| 日本成人在线网站| 日本成人在线电影网| 五月天亚洲精品| 亚洲香蕉伊在人在线观| 亚洲精品欧美专区| 亚洲欧美自拍偷拍色图| 国产精品妹子av| 国产精品美女久久久久久| 久久久精品综合| 国产欧美一区二区精品仙草咪 | 国产精品女主播av| 久久精品视频一区二区| 久久久不卡影院| 国产视频一区二区在线| 亚洲精品一区二区三区在线观看| 日韩精品中文字幕一区| 精品久久久久久久人人人人传媒 | 91麻豆精品久久久久蜜臀| 91精品一区二区三区久久久久久 | 色女孩综合影院| 在线视频你懂得一区二区三区| 色天天综合久久久久综合片| 欧美日韩中文字幕一区| 欧美精品乱码久久久久久| 欧美猛男男办公室激情| 日韩精品一区二区三区三区免费| 日韩欧美成人午夜| 久久精品欧美一区二区三区麻豆 | 精品国产制服丝袜高跟| 国产日产精品一区| 亚洲日本在线看| 日日夜夜精品视频免费| 九九九久久久精品| 成人毛片视频在线观看| 色综合久久中文综合久久97| 欧美精品欧美精品系列| 2017欧美狠狠色| 中文字幕一区二区三区不卡| 一区二区三区在线高清| 日本亚洲最大的色成网站www| 精东粉嫩av免费一区二区三区| 成人午夜免费电影| 欧美色图在线观看| 久久一夜天堂av一区二区三区 | 久久伊99综合婷婷久久伊| 成人欧美一区二区三区视频网页| 亚洲一线二线三线视频| 日本成人超碰在线观看| 波多野结衣亚洲| 欧美高清精品3d| 国产精品免费视频一区| 日韩高清不卡一区二区| 国产suv精品一区二区三区| 91久久免费观看| 久久精品亚洲精品国产欧美| 亚洲一级电影视频| 国产成人精品一区二| 91国偷自产一区二区三区成为亚洲经典 | 在线成人午夜影院| 欧美国产日韩亚洲一区| 午夜不卡av免费| 成人午夜电影网站| 日韩免费高清av| 亚洲综合一区二区精品导航| 国产一区福利在线| 欧美日韩欧美一区二区| 国产精品乱人伦一区二区| 日本午夜一区二区| 91国产精品成人| 中文字幕精品—区二区四季| 老司机精品视频在线| 在线视频欧美区| 国产精品妹子av| 国产精品一级黄| 欧美一级在线免费| 亚洲一级在线观看| 色噜噜狠狠色综合欧洲selulu| 欧美经典一区二区| 韩国一区二区视频| 日韩一区二区精品葵司在线| 亚洲午夜一区二区| 色综合视频在线观看| 国产精品久久久久久户外露出| 精品一区二区久久| 欧美一级在线视频| 亚州成人在线电影| 欧美性猛交xxxxxx富婆| 亚洲激情在线激情| 色综合久久综合| 亚洲乱码中文字幕综合| 色婷婷激情综合| 一区二区三区四区蜜桃| 色综合天天视频在线观看| 中文字幕日本乱码精品影院| 成人小视频免费观看|