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

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

?? dcamdef.h

?? a sample WDM stream class video capture driver that supports two IEEE 1394 digital cameras. The sam
?? H
?? 第 1 頁 / 共 2 頁
字號:
//===========================================================================
//
// 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.
//
// Copyright (c) 1996 - 2000  Microsoft Corporation.  All Rights Reserved.
//
//===========================================================================
/*++

Module Name:

    dcamdef.h

Abstract:

    Header file for constants and structures used for this 1394 desktop camera driver

Author:

    Shaun Pierce 25-May-96

Environment:

    Kernel mode only

Revision History:


--*/

//
// Define this to support YUV444
//
#define SUPPORT_YUV444


//
// Define this to support YUV411
//
#define SUPPORT_YUV411


//
// Define this to support RGB24
// This format is the most expensive to support.
// It requires driver to swap R and B og RGB24.
//
// #define SUPPORT_RGB24


//
// Define this to support YMONO
//
#define SUPPORT_YUV800


//
// Various structure definitions
//

typedef struct _INITIALIZE_REGISTER {
        ULONG       Reserved:31;            // Bits 1-31
        ULONG       Initialize:1;           // Bit 0
} INITIALIZE_REGISTER, *PINITIALIZE_REGISTER;

typedef struct _V_FORMAT_INQ_REGISTER {
        ULONG       Reserved:24;            // Bits 8-31
        ULONG       Format7:1;              // Bit 7       Scaleable Image Size Format
        ULONG       Format6:1;              // Bit 6       Still Image format
        ULONG       FormatRsv:3;            // Bits 3-5    Reserved
        ULONG       Format2:1;              // Bit 2       SVGA non-compressed format(2)
        ULONG       Format1:1;              // Bit 1       SVGA non-compressed format(1)
        ULONG       Format0:1;              // Bit 0       VGA non-compressed format (Max 640x480)
} V_FORMAT_INQ_REGISTER, *PV_FORMAT_INQ_REGISTER;

typedef enum {
    VMODE0_YUV444=0,
    VMODE1_YUV422,
    VMODE2_YUV411,
    VMODE3_YUV422,
    VMODE4_RGB24,    
    VMODE5_YUV800
} VMODE_INQ0;

typedef struct _V_MODE_INQ_REGISTER {
        ULONG       Reserved:24;            // Bits 8-31
        ULONG       ModeX:2;                // Bits 6-7
        ULONG       Mode5:1;                // Bit 5
        ULONG       Mode4:1;                // Bit 4
        ULONG       Mode3:1;                // Bit 3
        ULONG       Mode2:1;                // Bit 2
        ULONG       Mode1:1;                // Bit 1
        ULONG       Mode0:1;                // Bit 0
} V_MODE_INQ_REGISTER; *PV_MODE_INQ_REGISTER;

typedef struct _V_RATE_INQ_REGISTER {
        ULONG       Reserved:24;            // Bits 8-31
        ULONG       FrameRateX:2;           // Bits 6-7
        ULONG       FrameRate5:1;           // Bit 5
        ULONG       FrameRate4:1;           // Bit 4
        ULONG       FrameRate3:1;           // Bit 3
        ULONG       FrameRate2:1;           // Bit 2
        ULONG       FrameRate1:1;           // Bit 1
        ULONG       FrameRate0:1;           // Bit 0
} V_RATE_INQ_REGISTER, *PV_RATE_INQ_REGISTER;


typedef struct _FEATURE_PRESENT1 {
        ULONG       Reserved:21;          // Bits 11-31
        ULONG       Focus:1;               // Bit 10
        ULONG       Iris:1;                // Bit 9
        ULONG       Gain:1;                // Bit 8
        ULONG       Shutter:1;             // Bit 7
        ULONG       Gamma:1;               // Bit 6
        ULONG       Saturation:1;          // Bit 5
        ULONG       Hue:1;                 // Bit 4
        ULONG       White_Balance:1;       // Bit 3
        ULONG       Sharpness:1;           // Bit 2
        ULONG       Exposure:1;            // Bit 1
        ULONG       Brightness:1;          // Bit 0
} FEATURE_PRESENT1, *PFEATURE_PRESENT1;

typedef struct _FEATURE_PRESENT2 {
        ULONG       Reserved:29;           // Bits 3-31
        ULONG       Tile:1;                // Bit 2
        ULONG       Pan:1;                 // Bit 1
        ULONG       Zoom:1;                // Bit 0
} FEATURE_PRESENT2, *PFEATURE_PRESENT2;

typedef struct _FEATURE_REGISTER {
        ULONG       MAX_Value:12;           // Bits 20-31
        ULONG       MIN_Value:12;           // Bits 8-19
        ULONG       ManualMode:1;            // Bit 7
        ULONG       AutoMode:1;             // Bit 6
        ULONG       OnOff:1;                // Bit 5
        ULONG       ReadOut_Inq:1;          // Bit 4
        ULONG       OnePush:1;              // Bit 3
        ULONG       Reserved:2;             // Bits 1-2
        ULONG       PresenceInq:1;          // Bit 0
} FEATURE_REGISTER, *PFEATURE_REGISTER;


typedef struct _BRIGHTNESS_REGISTER {
        ULONG       Value:12;               // Bits 20-31
        ULONG       Reserved1:12;           // Bits 8-19
        ULONG       AutoMode:1;             // Bit 7
        ULONG       OnOff:1;                // Bit 6
        ULONG       OnePush:1;              // Bit 5
        ULONG       Reserved2:4;            // Bits 1-4
        ULONG       PresenceInq:1;          // Bit 0
} BRIGHTNESS_REGISTER, *PBRIGHTNESS_REGISTER;

typedef struct _WHITE_BALANCE_REGISTER {
        ULONG       VValue:12;              // Bits 20-31
        ULONG       UValue:12;              // Bits 8-19
        ULONG       AutoMode:1;             // Bit 7
        ULONG       OnOff:1;                // Bit 6
        ULONG       OnePush:1;              // Bit 5
        ULONG       Reserved1:4;            // Bits 1-4
        ULONG       PresenceInq:1;          // Bit 0
} WHITE_BALANCE_REGISTER, *PWHITE_BALANCE_REGISTER;

// A common structure so it is easier to access its elements.
typedef union _DCamRegArea {

        INITIALIZE_REGISTER Initialize;
        V_FORMAT_INQ_REGISTER VFormat;
        V_MODE_INQ_REGISTER VMode;
        V_RATE_INQ_REGISTER VRate;
        BRIGHTNESS_REGISTER Brightness;
        WHITE_BALANCE_REGISTER WhiteBalance;
        FEATURE_REGISTER Feature;
        FEATURE_PRESENT1 CameraCap1;
        FEATURE_PRESENT2 CameraCap2;
        ULONG AsULONG;

} DCamRegArea, * PDCamRegArea;


//
// Structure of the camera's register space
//

typedef struct _CAMERA_REGISTER_MAP {
    INITIALIZE_REGISTER     Initialize;         // @ 0
    ULONG                   Reserved1[63];      // @ 4
    V_FORMAT_INQ_REGISTER   VFormat;            // @ 100
    ULONG                   Reserved2[31];      // @ 104
    V_MODE_INQ_REGISTER     VModeInq[8];        // @ 180-19f
    ULONG                   Reserved3[24];      // @ 1A0-1ff
    V_RATE_INQ_REGISTER     VRateInq[128];      // @ 200-3ff
    ULONG                   Reserved4;          // @ 400-4ff
    FEATURE_PRESENT1        FeaturePresent1;    // @ 404
    FEATURE_PRESENT2        FeaturePresent2;    // @ 408
    ULONG                   Reserved4b[61];     // @ 40c-4ff

    FEATURE_REGISTER        Brightness_Inq;     // @ 500-503
    FEATURE_REGISTER        Exposure_Inq;       // @ 504
    FEATURE_REGISTER        Sharpness_Inq;      // @ 508
    FEATURE_REGISTER        WhiteBalance_Inq;   // @ 50c
    FEATURE_REGISTER        Hue_Inq;            // @ 510
    FEATURE_REGISTER        Saturation_Inq;     // @ 514
    FEATURE_REGISTER        Gamma_Inq;          // @ 518
    FEATURE_REGISTER        Shutter_Inq;        // @ 51c
    FEATURE_REGISTER        Gain_Inq;           // @ 520
    FEATURE_REGISTER        Iris_Inq;           // @ 524
    FEATURE_REGISTER        Focus_Inq;          // @ 528
    ULONG                   Resreved5[(0x580-0x52c)/4];      // @ 52c-57c
    FEATURE_REGISTER        Zoom_Inq;           // @ 580
    FEATURE_REGISTER        Pan_Inq;            // @ 584
    FEATURE_REGISTER        Tilt_Inq;           // @ 588-58b
    ULONG                   Reserved6[(0x600-0x58c)/4];      // @ 58c-5ff
    // Status and control register for camera
    ULONG                   CurrentVFrmRate;    // @ 600
    ULONG                   CurrentVMode;       // @ 604
    ULONG                   CurrentVFormat;     // @ 608
    ULONG                   IsoChannel;         // @ 60C
    ULONG                   CameraPower;        // @ 610
    ULONG                   IsoEnable;          // @ 614
    ULONG                   MemorySave;         // @ 618
    ULONG                   OneShot;            // @ 61C
    ULONG                   MemorySaveChannel;  // @ 620
    ULONG                   CurrentMemChannel;  // @ 624
    ULONG                   Reserved7[(0x800-0x628)/4];     // @ 628-7ff

    // Status and control register for feature
    BRIGHTNESS_REGISTER     Brightness;         // @ 800
    BRIGHTNESS_REGISTER     Exposure;           // @ 804
    BRIGHTNESS_REGISTER     Sharpness;          // @ 808
    WHITE_BALANCE_REGISTER  WhiteBalance;       // @ 80C
    BRIGHTNESS_REGISTER     Hue;                // @ 810
    BRIGHTNESS_REGISTER     Saturation;         // @ 814
    BRIGHTNESS_REGISTER     Gamma;              // @ 818
    BRIGHTNESS_REGISTER     Shutter;            // @ 81C
    BRIGHTNESS_REGISTER     Gain;               // @ 820
    BRIGHTNESS_REGISTER     Iris;               // @ 824
    BRIGHTNESS_REGISTER     Focus;              // @ 828
    ULONG                   Resreved8[(0x880-0x82c)/4];      // @ 82c-87c
    BRIGHTNESS_REGISTER     Zoom;               // @ 880
    BRIGHTNESS_REGISTER     Pan;                // @ 884
    BRIGHTNESS_REGISTER     Tilt;               // @ 888

} CAMERA_REGISTER_MAP, *PCAMERA_REGISTER_MAP;


//
// To make DCAm start streaming,
// it needs to set all these step.
// We will do them one by one in the
// StartDCam's IoCompletionRoutine
//
typedef enum {
    DCAM_STATE_UNDEFINED = 0,
    DCAM_SET_INITIALIZE,

    DCAM_STOPSTATE_SET_REQUEST_ISOCH_STOP,
    DCAM_STOPSTATE_SET_STOP_ISOCH_TRANSMISSION,

    DCAM_PAUSESTATE_SET_REQUEST_ISOCH_STOP,

    DCAM_RUNSTATE_SET_REQUEST_ISOCH_LISTEN,
    DCAM_RUNSTATE_SET_FRAME_RATE,
    DCAM_RUNSTATE_SET_CURRENT_VIDEO_MODE,
    DCAM_RUNSTATE_SET_CURRENT_VIDEO_FORMAT,
    DCAM_RUNSTATE_SET_SPEED,
    DCAM_RUNSTATE_SET_START,

    DCAM_SET_DONE
} DCAM_DEVICE_STATE, *PDCAM_DEVICE_STATE;


//
// Video formats and modes support
//
#define MAX_VMODES               6  // Support at most 6 modes of V_MODE_INQ_0


//
// Support's property, they are used as the index.
//
#define NUM_VIDEOPROCAMP_ITEMS   5
#define NUM_CAMERACONTROL_ITEMS  2
#define NUM_PROPERTY_ITEMS       NUM_VIDEOPROCAMP_ITEMS + NUM_CAMERACONTROL_ITEMS
typedef enum {
    // VideoProcAmp
    ENUM_BRIGHTNESS = 0,
    ENUM_SHARPNESS,
    ENUM_HUE,
    ENUM_SATURATION,
    ENUM_WHITEBALANCE,
    // CameraControl
    ENUM_FOCUS,
    ENUM_ZOOM,

} ENUM_DEV_PROP;


//
// Structure for each device property
//
typedef struct _DEV_PROPERTY {
    // ReadOnly
    KSPROPERTY_STEPPING_LONG RangeNStep;    // Range from the Feature
    LONG  DefaultValue;                     // Read from the registry or midrange if not in registry
#if 0
    ULONG ulFieldOffset;                    // Offset of where the CSR is located
#endif
    // ReadOnly
    DCamRegArea Feature;                    // Register that contain the feature inquery of a property

    // Read/Write
    DCamRegArea StatusNControl;             // Register that is both R/W (Addr has an 0x300 offset from the Feature's)
} DEV_PROPERTY, * PDEV_PROPERTY;


typedef struct _DEV_PROPERTY_DEFINE {
    KSPROPERTY_VALUES Value;
    KSPROPERTY_MEMBERSLIST Range;
    KSPROPERTY_MEMBERSLIST Default;
} DEV_PROPERTY_DEFINE, *PDEV_PROPERTY_DEFINE;


//
// Device Extension for our 1394 Desktop Camera Driver
//

// Circular pointers DevExt<->StrmEx
typedef struct _STREAMEX;
typedef struct _DCAM_EXTENSION;

//
// Context to keep track in the IO Completion routine.
//
typedef struct _DCAM_IO_CONTEXT {
    DWORD               dwSize;

    PHW_STREAM_REQUEST_BLOCK   pSrb;
    struct _DCAM_EXTENSION *pDevExt;
    PIRB                       pIrb;
    PVOID      pReserved[4];   // Maybe used for extra context information.

    DCAM_DEVICE_STATE   DeviceState;

    //
    // Holds an area for us to read/write camera registers to/from here
    //
    union {
        INITIALIZE_REGISTER Initialize;
        V_FORMAT_INQ_REGISTER VFormat;
        V_MODE_INQ_REGISTER VMode;
        V_RATE_INQ_REGISTER VRate;
        BRIGHTNESS_REGISTER Brightness;
        WHITE_BALANCE_REGISTER WhiteBalance;
              FEATURE_REGISTER Feature;
        ULONG AsULONG;
    } RegisterWorkArea;

} DCAM_IO_CONTEXT, *PDCAM_IO_CONTEXT;



typedef struct _DCAM_EXTENSION {

    //
    // Holds the Device Object we share with the stream class
    //
    PDEVICE_OBJECT SharedDeviceObject;

    //
    // Holds the Device Object of our parent (1394 bus driver)
    // pass it in IoCallDriver()
    //
    PDEVICE_OBJECT BusDeviceObject;

    //
    // Holds my Physical Device Object
    // pass it in PnP API, such as IoOpenDeviceRegistryKey()
    //

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品福利在线一区二区三区 | 欧美福利视频一区| 日韩视频123| 亚洲天堂精品视频| 国产综合成人久久大片91| 色菇凉天天综合网| 国产欧美一区二区精品性| 日本中文一区二区三区| 色综合天天综合狠狠| 久久久另类综合| 日韩国产精品久久久| 色婷婷综合久久久久中文一区二区| 日韩精品一区二区三区swag| 亚洲韩国精品一区| 91视频一区二区| 中文字幕久久午夜不卡| 久久精品国产999大香线蕉| 欧美午夜在线一二页| 亚洲欧洲综合另类在线| 国产凹凸在线观看一区二区| 欧美xxxx老人做受| 日韩精品一卡二卡三卡四卡无卡| 色女孩综合影院| 亚洲色图欧美偷拍| www.av亚洲| 国产精品无码永久免费888| 国产一区二区看久久| 日韩美女视频一区二区在线观看| 婷婷成人综合网| 欧美三电影在线| 亚洲国产成人91porn| 欧美三级视频在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 99精品视频在线观看免费| 国产精品素人一区二区| 成人自拍视频在线| 国产精品久久久久久久裸模| 国产成人日日夜夜| 国产精品天美传媒沈樵| 99久久精品国产导航| 亚洲精品国产精华液| 色噜噜狠狠色综合中国 | 91精品国产美女浴室洗澡无遮挡| 亚洲一区二区黄色| 欧美日韩在线综合| 免费人成黄页网站在线一区二区| 日韩精品自拍偷拍| 国产在线精品一区二区| 国产精品污网站| 91免费版在线| 日本网站在线观看一区二区三区| 日韩欧美中文字幕精品| 国产一区二区在线观看免费| 欧美激情综合五月色丁香小说| av中文一区二区三区| 一区二区三区在线视频免费观看| 欧美三日本三级三级在线播放| 婷婷国产在线综合| 久久久精品蜜桃| 日本久久一区二区| 青青青伊人色综合久久| 国产欧美精品区一区二区三区| 99久久精品国产麻豆演员表| 午夜免费久久看| 久久久久综合网| 欧美伊人久久大香线蕉综合69 | 欧美精品v国产精品v日韩精品| 日本不卡高清视频| 亚洲国产精品黑人久久久| 在线一区二区视频| 另类人妖一区二区av| 国产精品福利一区二区| 欧美乱妇23p| 成人精品视频.| 日韩精品电影在线| 欧美国产日韩在线观看| 欧美日韩精品一区二区在线播放| 国内精品久久久久影院一蜜桃| 一区二区三区免费观看| 日韩精品影音先锋| 欧洲生活片亚洲生活在线观看| 极品少妇xxxx精品少妇| 亚洲一区二区在线免费观看视频| 久久先锋影音av| 欧美老女人第四色| 成人免费毛片app| 久久精品免费观看| 亚洲一区二区精品久久av| 日本一区二区成人在线| 欧美精品日韩精品| 91精彩视频在线| 国产成人亚洲综合a∨婷婷图片| 亚洲国产日产av| 国产精品久久久久影视| 亚洲精品一区二区三区福利 | 国产91在线看| 激情六月婷婷久久| 青草av.久久免费一区| 亚洲一区二区视频| 亚洲手机成人高清视频| 国产视频在线观看一区二区三区| 日韩亚洲欧美成人一区| 欧美日韩中文另类| 欧美性做爰猛烈叫床潮| 99国产精品国产精品久久| 国产精品911| 国模大尺度一区二区三区| 久久99在线观看| 美女被吸乳得到大胸91| 三级亚洲高清视频| 婷婷综合五月天| 亚洲一二三区不卡| 亚洲在线成人精品| 一区二区久久久| 亚洲一区二区欧美| 亚洲一区精品在线| 亚洲成人午夜电影| 午夜一区二区三区在线观看| 亚洲永久精品大片| 午夜欧美2019年伦理| 日韩精品一卡二卡三卡四卡无卡| 午夜精品福利视频网站| 首页亚洲欧美制服丝腿| 日本成人中文字幕在线视频| 三级在线观看一区二区| 久久激五月天综合精品| 国产精品1区二区.| 成人激情动漫在线观看| 91丨porny丨在线| 欧美午夜精品一区二区三区 | 日本久久精品电影| 欧美视频一区二区三区四区 | 日韩在线a电影| 美女mm1313爽爽久久久蜜臀| 国产一区二区三区视频在线播放| 国产成人综合亚洲网站| 91亚洲大成网污www| 欧美日韩精品专区| 精品国产一区二区三区四区四 | 国产精品久久久久天堂| 亚洲精品视频在线观看网站| 亚洲成在人线免费| 久久国产精品第一页| www.亚洲国产| 欧美日韩黄色一区二区| 精品国产乱码久久久久久久| 中文一区二区在线观看| 一区二区在线免费观看| 久久精品久久久精品美女| 成人黄色软件下载| 欧美人与z0zoxxxx视频| 久久五月婷婷丁香社区| 亚洲精品欧美综合四区| 美国一区二区三区在线播放| va亚洲va日韩不卡在线观看| 在线成人午夜影院| 国产日韩影视精品| 三级欧美韩日大片在线看| 成人一区在线观看| 91精品国产日韩91久久久久久| 国产精品久久久久久久蜜臀| 日韩avvvv在线播放| 97久久超碰国产精品| 日韩欧美亚洲国产另类| 亚洲高清一区二区三区| 国产不卡视频一区二区三区| 欧美日韩国产经典色站一区二区三区| 国产性做久久久久久| 五月激情六月综合| 99久久国产综合精品女不卡| 日韩欧美123| 一级做a爱片久久| 粉嫩av一区二区三区粉嫩| 欧美二区三区的天堂| 亚洲精品高清在线| 国产成人精品aa毛片| 日韩欧美在线网站| 亚洲大片精品永久免费| 成人18精品视频| 2023国产精品自拍| 青青草原综合久久大伊人精品| 97se狠狠狠综合亚洲狠狠| 国产日韩一级二级三级| 久久精品理论片| 日韩午夜电影av| 天天影视色香欲综合网老头| 色老综合老女人久久久| 国产精品剧情在线亚洲| 国产成人精品一区二| 精品国产一区a| 欧美aaa在线| 欧美精品高清视频| 亚洲高清不卡在线观看| 欧美影院一区二区三区| 一区二区三区四区高清精品免费观看| 国产成人8x视频一区二区| 久久久国产一区二区三区四区小说| 六月丁香婷婷色狠狠久久| 91精品国产免费久久综合| 日韩av中文在线观看|