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

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

?? globals.hpp

?? Latest USB 802.3, HID printer and mass storage divers from Microsoft for Platform Builder 4.2.
?? HPP
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Module Name:
//    globals.hpp
//
// Abstract:  This header contains UHCD data that all classes
//            should have access to
//
// Notes:
//

#ifndef _UHCD_GLOBALS_HPP_
#define _UHCD_GLOBALS_HPP_

// There are four warnings that I like from Warning level 4.  Since we build
// at warning level 3, I'm setting these four down to level 3 so I still get
// them.
// C4100 unrefrenced formal parameter
// C4101 unrefrenced local variable
// C4705 statement has no effect
// C4706 assignment in conditional
#pragma warning (3 : 4100 4101 4705 4706)

#include <windows.h>
#include <ceddk.h>
#include <hcdi.h>
#include "uhcdddsi.h"


#define IN
#define OUT
#define IN_OUT

typedef volatile PUCHAR REGISTER;

enum HCD_REQUEST_STATUS {
    requestFailed = 0,
    requestOK,
    requestIgnored
};

#ifdef DEBUG
    // in debug mode, structures are inited and sometimes written with
    // garbage during execution. This "GARBAGE" can be set to anything
    // and should not affect program execution. Changing this value once
    // in a while may find hidden bugs (i.e. if code is accessing items
    // that it shouldn't be...)
    #define GARBAGE int(0xAA)

    #define DEBUG_ONLY(x) x
    #define DEBUG_PARAM(x) x,
#else
    #define DEBUG_ONLY(x)
    #define DEBUG_PARAM(x)
#endif

#define USBPAGESIZE DWORD(4096)    // Spec'ed to be 4kB
#define USBPAGEMASK DWORD(USBPAGESIZE - 1)

// USB addresses are 7 bits long, hence between 0 and 127
#define USB_MAX_ADDRESS                     UCHAR(127)

// minimum packet size of control pipe to endpoint 0
#define ENDPOINT_ZERO_MIN_MAXPACKET_SIZE USHORT(8)

//
// USBD function typedefs
//

typedef BOOL (* LPUSBD_HCD_ATTACH_PROC)(LPVOID lpvHcd, LPCHCD_FUNCS lpHcdFuncs,
                                        LPLPVOID lppvContext);
typedef BOOL (* LPUSBD_HCD_DETACH_PROC)(LPVOID lpvContext);
typedef BOOL (* LPUSBD_ATTACH_PROC)(LPVOID lpvContext, UINT address,
                                    UINT iEndpointZero,
                                    LPCUSB_DEVICE lpDeviceInfo,
                                    LPLPVOID lppvDeviceDetach);
typedef BOOL (* LPUSBD_DETACH_PROC)(LPVOID lpvDeviceDetach);

//
// These structures MUST have exactly the same
// data types as the USB_* structues in usbtypes.h
//

typedef struct _NON_CONST_USB_ENDPOINT {
    DWORD                                   dwCount;

    USB_ENDPOINT_DESCRIPTOR                 Descriptor;
    LPBYTE                                  lpbExtended;
} NON_CONST_USB_ENDPOINT, * LPNON_CONST_USB_ENDPOINT;

typedef struct _NON_CONST_USB_INTERFACE {
    DWORD                                   dwCount;

    USB_INTERFACE_DESCRIPTOR                Descriptor;
    LPBYTE                                  lpbExtended;
    LPNON_CONST_USB_ENDPOINT                lpEndpoints;
} NON_CONST_USB_INTERFACE, * LPNON_CONST_USB_INTERFACE;

typedef struct _NON_CONST_USB_CONFIGURATION {
    DWORD                                   dwCount;

    USB_CONFIGURATION_DESCRIPTOR            Descriptor;
    LPBYTE                                  lpbExtended;
    // Total number of interfaces (including alternates)
    DWORD                                   dwNumInterfaces;
    LPNON_CONST_USB_INTERFACE               lpInterfaces;
} NON_CONST_USB_CONFIGURATION, * LPNON_CONST_USB_CONFIGURATION;

typedef struct _USB_DEVICE_INFO {
    DWORD                                   dwCount;

    USB_DEVICE_DESCRIPTOR                   Descriptor;
    LPNON_CONST_USB_CONFIGURATION           lpConfigs;
    LPNON_CONST_USB_CONFIGURATION           lpActiveConfig;
} USB_DEVICE_INFO, * LPUSB_DEVICE_INFO;


//
// USB Hub definitions
//
#define UHCD_NUM_ROOT_HUB_PORTS             UCHAR(2)

// There can be at most 5 hubs linked in a row, according to USB spec
// 1.1, section 7.1.19 (Figure 7-31)
#define USB_MAXIMUM_HUB_TIER UCHAR(5)
//
// USB spec(1.1) 11.15.2.1 - hub descriptor type is 29h
#define USB_HUB_DESCRIPTOR_TYPE               UCHAR(0x29)
// If the hub has <= 7 ports, the descriptor will be
// 9 bytes long. Else, it will be larger.
#define USB_HUB_DESCRIPTOR_MINIMUM_SIZE     UCHAR(0x9)

// device set and clear feature recipients
#define USB_DEVICE_RECIPIENT                UCHAR(0x00)
#define USB_INTERFACE_RECIPIENT             UCHAR(0x01)
#define USB_ENDPOINT_RECIPIENT              UCHAR(0x02)

// Standard device feature selectors
#define USB_DEVICE_REMOTE_WAKEUP            UCHAR(0x01)
#define USB_FEATURE_ENDPOINT_HALT           UCHAR(0x00)

// USB spec(1.1) Table 11-12 : Hub Class Feature Selectors
#define USB_HUB_FEATURE_C_HUB_LOCAL_POWER   UCHAR(0x00)
#define USB_HUB_FEATURE_C_HUB_OVER_CURRENT  UCHAR(0x01)
#define USB_HUB_FEATURE_PORT_CONNECTION     UCHAR(0x00)
#define USB_HUB_FEATURE_PORT_ENABLE         UCHAR(0x01)
#define USB_HUB_FEATURE_PORT_SUSPEND        UCHAR(0x02)
#define USB_HUB_FEATURE_PORT_OVER_CURRENT   UCHAR(0x03)
#define USB_HUB_FEATURE_PORT_RESET          UCHAR(0x04)
// 0x5 - 0x7 are reserved
#define USB_HUB_FEATURE_PORT_POWER            UCHAR(0x08)
#define USB_HUB_FEATURE_PORT_LOW_SPEED      UCHAR(0x09)
// 0xA - 0xF are reserved
#define USB_HUB_FEATURE_C_PORT_CONNECTION   UCHAR(USB_HUB_FEATURE_PORT_CONNECTION | 0x10)
#define USB_HUB_FEATURE_C_PORT_ENABLE         UCHAR(USB_HUB_FEATURE_PORT_ENABLE | 0x10)
#define USB_HUB_FEATURE_C_PORT_SUSPEND    UCHAR(USB_HUB_FEATURE_PORT_SUSPEND | 0x10)
#define USB_HUB_FEATURE_C_PORT_OVER_CURRENT UCHAR(USB_HUB_FEATURE_PORT_OVER_CURRENT | 0x10)
#define USB_HUB_FEATURE_C_PORT_RESET          UCHAR(USB_HUB_FEATURE_PORT_RESET | 0x10)

#define USB_HUB_FEATURE_INVALID             UCHAR(0xFF)

// bits for hub descriptor wHubCharacteristics field
// see USB spec (1.1) Table 11-8, offset 3
#define USB_HUB_CHARACTERISTIC_GANGED_POWER_SWITCHING           USHORT(0x0)
#define USB_HUB_CHARACTERISTIC_INDIVIDUAL_POWER_SWITCHING       USHORT(0x1)
#define USB_HUB_CHARACTERISTIC_NO_POWER_SWITCHING               USHORT(0x2) // warning can be 0x3
#define USB_HUB_CHARACTERISTIC_NOT_PART_OF_COMPOUND_DEVICE      USHORT(0 << 2)
#define USB_HUB_CHARACTERISTIC_PART_OF_COMPOUND_DEVICE          USHORT(1 << 2)
#define USB_HUB_CHARACTERISTIC_GLOBAL_OVER_CURRENT_PROTECTION   USHORT(0x0 << 3)
#define USB_HUB_CHARACTERISTIC_INDIVIDUAL_OVER_CURRENT_PROTECTION USHORT(0x1 << 3)
#define USB_HUB_CHARACTERISTIC_NO_OVER_CURRENT_PROTECTION       USHORT(0x2 << 3) // warning, can be (0x3 << 3)

// Data returned by GetHubStatus request is 4 bytes
// and structures as follows: (USB spec 1.1 - Table 11-13/14)
//
// Data returned by GetPortStatus request is 4 bytes
// and structured as follows: (USB spec 1.1 - Table 11-15/16)
typedef struct _USB_HUB_AND_PORT_STATUS
{
    union {
        struct {
            USHORT LocalPowerStatus:1;             // wHubStatus bit 0
            USHORT OverCurrentIndicator:1;         // wHubStatus bit 1
            USHORT Reserved:14;                    // wHubStatus bits 2-15
        }          hub;
        struct {
            USHORT PortConnected:1;                // wPortStatus bit 0
            USHORT PortEnabled:1;                  // wPortStatus bit 1
            USHORT PortSuspended:1;                // wPortStatus bit 2
            USHORT PortOverCurrent:1;              // wPortStatus bit 3
            USHORT PortReset:1;                    // wPortStatus bit 4
            USHORT Reserved:3;                     // wPortStatus bits 5-7
            USHORT PortPower:1;                    // wPortStatus bit 8
            USHORT DeviceIsLowSpeed:1;             // wPortStatus bit 9
            USHORT Reserved2:6;                    // wPortStatus bits 10-15
        }          port;
        USHORT     word;
    }                                              status;
    union {
        struct {
            USHORT LocalPowerChange:1;             // wHubChange bit 0
            USHORT OverCurrentIndicatorChange:1;   // wHubChange bit 1
            USHORT Reserved2:14;                   // wHubChange bits 2-15
        }          hub;
        struct {
            USHORT ConnectStatusChange:1;          // wPortChange bit 0
            USHORT PortEnableChange:1;             // wPortChange bit 1
            USHORT SuspendChange:1;                // wPortChange bit 2
            USHORT OverCurrentChange:1;            // wPortChange bit 3
            USHORT ResetChange:1;                  // wPortChange bit 4
            USHORT Reserved:11;                    // wPortChange bits 5-15
        }          port;
        USHORT     word;
    }                                              change;
} USB_HUB_AND_PORT_STATUS, *PUSB_HUB_AND_PORT_STATUS;

// this is the minimum packet size which can be safely scheduled
// for bandwidth reclamation
#define UHCD_MAX_RECLAMATION_PACKET_SIZE    USHORT(64)


#ifdef __cplusplus
extern "C" DWORD g_IstThreadPriority;
#endif

#ifdef CE_PREv3
// CE versions prior to 3.0 only have eight priorities
#define DEFAULT_UHCD_IST_PRIORITY  THREAD_PRIORITY_HIGHEST
#define RELATIVE_PRIO_ADJUST_FRAME 2    // UsbAdjustFrameLengthThread (low pri!)
#define RELATIVE_PRIO_STSCHG       1    // HubStatusChangeThread
#define RELATIVE_PRIO_DOWNSTREAM   1    // DetachDownstreamDeviceThread
#define RELATIVE_PRIO_CHECKDONE    0    // CheckForDoneTransfersThread

// Pre-3.0 versions also don't use the newer Get/SetPriority calls:
#define CeSetThreadPriority(t,p) SetThreadPriority(t,p)
#define CeGetThreadPriority(t)   GetThreadPriority(t)

#else // 3.0 versions and later use a wider spread of priorities:

#define DEFAULT_UHCD_IST_PRIORITY 101   // UsbInterruptThread
#define RELATIVE_PRIO_ADJUST_FRAME 7    // UsbAdjustFrameLengthThread (low pri!)
#define RELATIVE_PRIO_STSCHG       5    // HubStatusChangeThread
#define RELATIVE_PRIO_DOWNSTREAM   3    // DetachDownstreamDeviceThread
#define RELATIVE_PRIO_CHECKDONE    1    // CheckForDoneTransfersThread
#endif // not PREv3 //

#endif //_UHCD_GLOBALS_HPP_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡一卡二卡三乱码免费网站| 亚洲欧美精品午睡沙发| 欧美亚洲国产一区在线观看网站| 久久99久久精品欧美| 亚洲成人黄色影院| 亚洲自拍欧美精品| 亚洲欧洲综合另类在线| 国产精品毛片久久久久久| 久久免费的精品国产v∧| 欧美成人艳星乳罩| 日韩欧美国产一区二区在线播放| 成人深夜在线观看| 国产一区二区三区| 国产精一区二区三区| 黄一区二区三区| 狠狠色狠狠色综合| 国产精品自在在线| 成人免费毛片a| 91在线观看视频| 一本大道久久精品懂色aⅴ| 99视频在线精品| 一本色道综合亚洲| 欧美亚洲综合在线| 在线观看91精品国产麻豆| 欧美精选午夜久久久乱码6080| 欧美性猛交一区二区三区精品| 欧美三级日本三级少妇99| 欧美日本国产一区| 精品久久久影院| 国产精品天美传媒| 亚洲综合丁香婷婷六月香| 丝袜美腿亚洲综合| 激情小说亚洲一区| 高清在线成人网| 色诱亚洲精品久久久久久| 欧美日韩视频不卡| 精品国产一区二区三区忘忧草 | 亚洲另类春色校园小说| 亚洲成人免费视频| 国产综合一区二区| youjizz久久| 欧美人牲a欧美精品| 亚洲精品一区二区三区影院 | 韩国三级电影一区二区| 97精品久久久午夜一区二区三区 | 国产精品欧美久久久久一区二区| 一区二区三区在线观看国产| 日韩 欧美一区二区三区| 国产黄人亚洲片| 在线亚洲人成电影网站色www| 欧美一区二区久久久| 中文字幕精品三区| 琪琪久久久久日韩精品| 972aa.com艺术欧美| 日韩欧美电影在线| 亚洲在线免费播放| 国产精品影音先锋| 色婷婷一区二区三区四区| 精品免费视频.| 亚洲高清免费视频| av网站一区二区三区| 欧美一区二区女人| 亚洲综合图片区| 成人av网站在线观看| 欧美大尺度电影在线| 亚洲一区二区三区自拍| 成人小视频免费在线观看| 日韩免费视频一区二区| 亚洲成av人片| 在线观看成人免费视频| 国产精品久久久久毛片软件| 激情都市一区二区| 日韩欧美一二三| 香蕉成人伊视频在线观看| 91免费看片在线观看| 国产精品日韩精品欧美在线| 国产在线一区二区| 日韩精品一区二区三区在线观看| 夜夜嗨av一区二区三区| 色综合天天视频在线观看| 中文字幕二三区不卡| 国产91对白在线观看九色| 久久精品一区蜜桃臀影院| 激情五月婷婷综合| 日韩一区二区在线观看视频| 天天影视网天天综合色在线播放 | 亚洲免费高清视频在线| 99久久伊人网影院| 亚洲男人电影天堂| 在线视频一区二区三| 亚洲国产精品久久人人爱| 欧美丝袜丝交足nylons| 午夜亚洲国产au精品一区二区| 欧美色图激情小说| 日韩影视精彩在线| 日韩一级二级三级| 国产乱妇无码大片在线观看| 国产日韩欧美精品综合| 成人美女视频在线观看18| 18欧美亚洲精品| 在线国产电影不卡| 亚洲va欧美va人人爽午夜| 91精品国产综合久久久久久漫画| 午夜精品福利在线| 精品国产在天天线2019| 国产白丝网站精品污在线入口| 国产精品国产三级国产普通话蜜臀| 成人黄色免费短视频| 一区二区三区四区五区视频在线观看| 在线观看亚洲成人| 九九九久久久精品| 中文字幕一区二区三区蜜月| 欧美性猛交xxxx乱大交退制版 | 大尺度一区二区| 亚洲女人****多毛耸耸8| 欧美区在线观看| 国产真实乱偷精品视频免| 中文字幕字幕中文在线中不卡视频| 欧美在线色视频| 老司机精品视频在线| 中文字幕亚洲不卡| 欧美三级欧美一级| 成人做爰69片免费看网站| 亚洲成a天堂v人片| 国产女同性恋一区二区| 欧美视频在线观看一区二区| 国产一区激情在线| 亚洲午夜免费电影| 国产午夜亚洲精品午夜鲁丝片| 成人一级黄色片| 视频一区二区三区中文字幕| 国产日韩视频一区二区三区| 日本黄色一区二区| 国产激情视频一区二区在线观看 | 亚洲一区二区三区四区在线观看| 精品国产免费一区二区三区四区 | 亚洲精品老司机| 久久久国际精品| 日韩一区二区三区视频在线| 色婷婷综合视频在线观看| 国产成人免费网站| 免费在线观看成人| 亚洲高清在线视频| 亚洲品质自拍视频网站| 中文在线一区二区| 欧美大黄免费观看| 6080午夜不卡| 欧美午夜影院一区| 日本道免费精品一区二区三区| 国产高清精品在线| 国产乱人伦偷精品视频不卡| 爽好多水快深点欧美视频| 亚洲综合一二三区| 一区二区三区在线免费视频| 中文字幕在线一区免费| 国产欧美日韩精品a在线观看| 欧美xxx久久| 日韩精品一区二区三区在线观看| 欧美日韩高清在线播放| 欧美亚洲国产一区二区三区va | 国产精品综合视频| 黄页视频在线91| 国产又黄又大久久| 国产一区二区三区视频在线播放| 日韩高清不卡一区二区| 男女激情视频一区| 精品一区二区三区免费观看| 麻豆视频一区二区| 久久精品国产成人一区二区三区 | 欧美最猛性xxxxx直播| 色激情天天射综合网| 在线免费视频一区二区| 欧美日韩精品一区二区三区蜜桃| 在线视频国内一区二区| 色欧美片视频在线观看在线视频| 一本色道久久综合狠狠躁的推荐| 色婷婷亚洲精品| 欧美日韩视频专区在线播放| 欧美日韩视频在线一区二区| 欧美一级免费观看| 久久色在线观看| 国产精品久久一级| 亚洲一区二区视频在线| 蜜臀精品一区二区三区在线观看| 激情综合亚洲精品| 成人免费视频视频| 91成人免费在线视频| 91精品国产综合久久福利软件| 精品成人在线观看| 亚洲欧洲在线观看av| 丝袜美腿亚洲一区二区图片| 国产一区日韩二区欧美三区| 99久久精品国产精品久久| 欧美日韩精品欧美日韩精品一 | 同产精品九九九| 九九九精品视频| 欧洲在线/亚洲| 日韩欧美一二三区| 亚洲精品国产第一综合99久久| 三级一区在线视频先锋|