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

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

?? winioctl.h

?? 單片機(jī)USB串口通信模塊的動(dòng)態(tài)鏈接庫
?? H
?? 第 1 頁 / 共 5 頁
字號(hào):
#define IOCTL_CHANGER_BASE                FILE_DEVICE_CHANGER

#define IOCTL_CHANGER_GET_PARAMETERS         CTL_CODE(IOCTL_CHANGER_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_GET_STATUS             CTL_CODE(IOCTL_CHANGER_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_GET_PRODUCT_DATA       CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_SET_ACCESS             CTL_CODE(IOCTL_CHANGER_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CHANGER_GET_ELEMENT_STATUS     CTL_CODE(IOCTL_CHANGER_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS  CTL_CODE(IOCTL_CHANGER_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_SET_POSITION           CTL_CODE(IOCTL_CHANGER_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_EXCHANGE_MEDIUM        CTL_CODE(IOCTL_CHANGER_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_MOVE_MEDIUM            CTL_CODE(IOCTL_CHANGER_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_REINITIALIZE_TRANSPORT CTL_CODE(IOCTL_CHANGER_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CHANGER_QUERY_VOLUME_TAGS      CTL_CODE(IOCTL_CHANGER_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

//
// TBD - IOCTL_CHANGER_GET_ENVIRONMENTAL_DATA
// TBD - IOCTL_CHANGER_GET_STATISTICS
// TBD - IOCTL_CHANGER_WRITE_FIRMWARE
//



#define MAX_VOLUME_ID_SIZE       36
#define MAX_VOLUME_TEMPLATE_SIZE 40

#define VENDOR_ID_LENGTH          8
#define PRODUCT_ID_LENGTH        16
#define REVISION_LENGTH           4
#define SERIAL_NUMBER_LENGTH     32

//
// Common structures describing elements.
//

typedef  enum _ELEMENT_TYPE {
    AllElements,        // As defined by SCSI
    ChangerTransport,   // As defined by SCSI
    ChangerSlot,        // As defined by SCSI
    ChangerIEPort,      // As defined by SCSI
    ChangerDrive,       // As defined by SCSI
    ChangerDoor,        // Front panel, used to access internal of cabinet.
    ChangerKeypad,      // Keypad/input on front panel.
    ChangerMaxElement   // Placeholder only. Not a valid type.
} ELEMENT_TYPE, *PELEMENT_TYPE;

typedef  struct _CHANGER_ELEMENT {
    ELEMENT_TYPE    ElementType;
    DWORD   ElementAddress;
} CHANGER_ELEMENT, *PCHANGER_ELEMENT;

typedef  struct _CHANGER_ELEMENT_LIST {
    CHANGER_ELEMENT Element;
    DWORD   NumberOfElements;
} CHANGER_ELEMENT_LIST , *PCHANGER_ELEMENT_LIST;


//
// Definitions for  IOCTL_CHANGER_GET_PARAMETERS
//

//
// Definitions for Features0 of GET_CHANGER_PARAMETERS
//

#define CHANGER_BAR_CODE_SCANNER_INSTALLED  0x00000001 // The medium-changer has a bar code scanner installed.
#define CHANGER_INIT_ELEM_STAT_WITH_RANGE   0x00000002 // The medium-changer has the ability to initialize elements within a specified range.
#define CHANGER_CLOSE_IEPORT                0x00000004 // The medium-changer has the ability to close the i/e port door.
#define CHANGER_OPEN_IEPORT                 0x00000008 // The medium-changer can open the i/e port door.

#define CHANGER_STATUS_NON_VOLATILE         0x00000010 // The medium-changer uses non-volatile memory for element status information.
#define CHANGER_EXCHANGE_MEDIA              0x00000020 // The medium-changer supports exchange operations.
#define CHANGER_CLEANER_SLOT                0x00000040 // The medium-changer has a fixed slot designated for cleaner cartridges.
#define CHANGER_LOCK_UNLOCK                 0x00000080 // The medium-changer can be (un)secured to (allow)prevent media removal.

#define CHANGER_CARTRIDGE_MAGAZINE          0x00000100 // The medium-changer uses cartridge magazines for some storage slots.
#define CHANGER_MEDIUM_FLIP                 0x00000200 // The medium-changer can flip medium.
#define CHANGER_POSITION_TO_ELEMENT         0x00000400 // The medium-changer can position the transport to a particular element.
#define CHANGER_REPORT_IEPORT_STATE         0x00000800 // The medium-changer can determine whether media is present
                                                       // in the IE Port.

#define CHANGER_STORAGE_DRIVE               0x00001000 // The medium-changer can use a drive as an independent storage element.
#define CHANGER_STORAGE_IEPORT              0x00002000 // The medium-changer can use a i/e port as an independent storage element.
#define CHANGER_STORAGE_SLOT                0x00004000 // The medium-changer can use a slot as an independent storage element.
#define CHANGER_STORAGE_TRANSPORT           0x00008000 // The medium-changer can use a transport as an independent storage element.

#define CHANGER_DRIVE_CLEANING_REQUIRED     0x00010000 // The drives controlled by the medium changer require periodic cleaning
                                                       // initiated by an application.
#define CHANGER_PREDISMOUNT_EJECT_REQUIRED  0x00020000 // The medium-changer requires a drive eject command to be issued, before a changer
                                                       // move / exchange command can be issued to the drive.
#define CHANGER_CLEANER_EJECT_REQUIRED      0x00040000 // The medium-changer requires a drive eject command to be issued, before a changer
                                                       // move / exchange command can be issued to a cleaner cartridge.
#define CHANGER_PREMOUNT_EJECT_REQUIRED     0x00080000 // The medium-changer requires a drive eject command to be issued
                                                       // before a move / exchange command can be issued with the drive as src/dst.

#define CHANGER_VOLUME_IDENTIFICATION       0x00100000 // The medium-changer supports volume identification.
#define CHANGER_VOLUME_SEARCH               0x00200000 // The medium-changer can search for volume information.
#define CHANGER_VOLUME_ASSERT               0x00400000 // The medium-changer can verify volume information.
#define CHANGER_VOLUME_REPLACE              0x00800000 // The medium-changer can replace volume information.
#define CHANGER_VOLUME_UNDEFINE             0x01000000 // The medium-changer can undefine volume information.

#define CHANGER_SERIAL_NUMBER_VALID         0x04000000 // The serial number reported in GetProductData is valid
                                                       // and unique.

#define CHANGER_DEVICE_REINITIALIZE_CAPABLE 0x08000000 // The medium-changer must be issued a ChangerReinitializeUnit for operations.
#define CHANGER_KEYPAD_ENABLE_DISABLE       0x10000000 // Indicates that the keypad can be enabled/disabled.
#define CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS  0x20000000 // Drives must be empty before access via the door is possible.
#define CHANGER_PREDISMOUNT_ALIGN_DRIVE_TO_SLOT 0x40000000 // The drive and slot must be prepositioned prior to ejecting the media and preforming
                                                           // the move medium.
#define CHANGER_CLEANER_AUTODISMOUNT        0x80000000 // The device will move the cleaner cartridge back into the slot when cleaning has completed.

//
// Definitions for MoveFrom and ExchangeFrom
//

#define CHANGER_TO_TRANSPORT    0x01 // The device can carry out the operation to a transport from the specified element.
#define CHANGER_TO_SLOT         0x02 // The device can carry out the operation to a slot from the specified element.
#define CHANGER_TO_IEPORT       0x04 // The device can carry out the operation to an IE Port from the specified element.
#define CHANGER_TO_DRIVE        0x08 // The device can carry out the operation to a drive from the specified element.


typedef  struct _GET_CHANGER_PARAMETERS {

    //
    // Size of the structure. Can be used for versioning.
    //

    DWORD Size;

    //
    // Number of N element(s) as defined by the Element Address Page (or equivalent...).
    //

    WORD   NumberTransportElements;
    WORD   NumberStorageElements;                // for data cartridges only
    WORD   NumberCleanerSlots;                   // for cleaner cartridges
    WORD   NumberIEElements;
    WORD   NumberDataTransferElements;

    //
    // Number of doors/front panels (allows user entry into the cabinet).
    //

    WORD   NumberOfDoors;

    //
    // The device-specific address (from user manual of the device) of the first N element. Used
    // by the UI to relate the various elements to the user.
    //

    WORD   FirstSlotNumber;
    WORD   FirstDriveNumber;
    WORD   FirstTransportNumber;
    WORD   FirstIEPortNumber;
    WORD   FirstCleanerSlotAddress;

    //
    // Indicates the capacity of each magazine, if they exist.
    //

    WORD   MagazineSize;

    //
    // Specifies the approximate number of seconds for when a cleaning should be completed.
    // Only applicable if drive cleaning is supported. See Features0.
    //

    DWORD DriveCleanTimeout;

    //
    // See features bits, above.
    //

    DWORD Features0;
    DWORD Reserved;

    //
    // Bitmask defining Move from N element to element. Defined by Device Capabilities Page (or equivalent).
    // AND-masking with the TO_XXX values will indicate legal destinations.
    //

    BYTE  MoveFromTransport;
    BYTE  MoveFromSlot;
    BYTE  MoveFromIePort;
    BYTE  MoveFromDrive;

    //
    // Bitmask defining Exchange from N element to element. Defined by Device Capabilities Page (or equivalent).
    // AND-masking with the TO_XXX values will indicate legal destinations.
    //

    BYTE  ExchangeFromTransport;
    BYTE  ExchangeFromSlot;
    BYTE  ExchangeFromIePort;
    BYTE  ExchangeFromDrive;

} GET_CHANGER_PARAMETERS, * PGET_CHANGER_PARAMETERS;


//
// Definitions for IOCTL_CHANGER_GET_PRODUCT_DATA
//

typedef  struct _CHANGER_PRODUCT_DATA {

    //
    // Device manufacturer's name - based on inquiry data
    //

    BYTE  VendorId[VENDOR_ID_LENGTH];

    //
    // Product identification as defined by the vendor - based on Inquiry data
    //

    BYTE  ProductId[PRODUCT_ID_LENGTH];

    //
    // Product revision as defined by the vendor.
    //

    BYTE  Revision[REVISION_LENGTH];

    //
    // Vendor unique value used to globally identify this device. Can
    // be from Vital Product Data, for example.
    //

    BYTE  SerialNumber[SERIAL_NUMBER_LENGTH];

    //
    // Indicates device type of data transports, as defined by SCSI-2.
    //

    BYTE  DeviceType;

} CHANGER_PRODUCT_DATA, *PCHANGER_PRODUCT_DATA;


//
// Definitions for IOCTL_CHANGER_SET_ACCESS
//

#define LOCK_ELEMENT        0
#define UNLOCK_ELEMENT      1
#define EXTEND_IEPORT       2
#define RETRACT_IEPORT      3

typedef struct _CHANGER_SET_ACCESS {

    //
    // Element can be ChangerIEPort, ChangerDoor, ChangerKeypad
    //

    CHANGER_ELEMENT Element;

    //
    // See above for possible operations.
    //

    DWORD           Control;
} CHANGER_SET_ACCESS, *PCHANGER_SET_ACCESS;


//
// Definitions for IOCTL_CHANGER_GET_ELEMENT_STATUS
//

//
// Input buffer.
//

typedef struct _CHANGER_READ_ELEMENT_STATUS {

    //
    // List describing the elements and range on which to return information.
    //

    CHANGER_ELEMENT_LIST ElementList;

    //
    // Indicates whether volume tag information is to be returned.
    //

    BOOLEAN VolumeTagInfo;
} CHANGER_READ_ELEMENT_STATUS, *PCHANGER_READ_ELEMENT_STATUS;

//
// Output buffer.
//

typedef  struct _CHANGER_ELEMENT_STATUS {

    //
    // Element to which this structure refers.
    //

    CHANGER_ELEMENT Element;

    //
    // Address of the element from which the media was originally moved.
    // Valid if ELEMENT_STATUS_SVALID bit of Flags DWORD is set.
    // Needs to be converted to a zero-based offset from the device-unique value.
    //

    CHANGER_ELEMENT SrcElementAddress;

    //
    // See below.
    //

    DWORD Flags;

    //
    // See below for possible values.
    //

    DWORD ExceptionCode;

    //
    // Scsi Target Id of this element.
    // Valid only if ELEMENT_STATUS_ID_VALID is set in Flags.
    //

    BYTE  TargetId;

    //
    // LogicalUnitNumber of this element.
    // Valid only if ELEMENT_STATUS_LUN_VALID is set in Flags.
    //

    BYTE  Lun;
    WORD   Reserved;

    //
    // Primary volume identification for the media.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久免费| 日本精品一级二级| 欧美成人性战久久| 久久er99精品| 久久久蜜臀国产一区二区| 国产美女精品在线| 亚洲欧美日本在线| 欧美亚洲丝袜传媒另类| 日本不卡1234视频| 精品不卡在线视频| 成人精品视频一区二区三区尤物| 国产精品天美传媒| 色噜噜狠狠色综合中国| 午夜一区二区三区在线观看| 日韩欧美国产综合| 成人性色生活片| 亚洲综合av网| 久久众筹精品私拍模特| 99精品视频免费在线观看| 亚洲18影院在线观看| 欧美精品一区二区久久久| 成人免费视频视频| 亚洲成人www| 国产调教视频一区| 在线亚洲精品福利网址导航| 久久国产日韩欧美精品| 中文字幕日本不卡| 日韩一区二区三区免费看 | 色哟哟精品一区| 午夜精品福利一区二区三区蜜桃| 久久影音资源网| 一本到三区不卡视频| 久久成人18免费观看| 亚洲精品国产第一综合99久久 | 国产精品综合一区二区| 一区二区三区四区国产精品| 欧美精品一区二| 91在线小视频| 韩国三级在线一区| 亚洲高清免费在线| 国产午夜精品久久久久久免费视 | a4yy欧美一区二区三区| 免费高清不卡av| 一区二区三区日韩精品视频| 久久亚洲捆绑美女| 欧美精品99久久久**| av在线不卡免费看| 国产精品一区在线观看你懂的| 午夜欧美电影在线观看| 日韩毛片精品高清免费| 久久精品视频一区二区| 日韩欧美国产精品| 欧美日韩精品一区二区| 99热这里都是精品| 国产成人综合自拍| 免费日韩伦理电影| 天堂一区二区在线| 亚洲国产综合视频在线观看| 亚洲三级电影全部在线观看高清| 久久视频一区二区| 日韩免费观看高清完整版| 欧美日韩视频在线观看一区二区三区 | 久久国产精品99精品国产| 亚洲成人先锋电影| 亚洲午夜av在线| 亚洲综合免费观看高清在线观看| 国产精品久久久久毛片软件| 久久美女高清视频| 欧美一区二区黄| 91超碰这里只有精品国产| 欧美在线免费观看视频| 在线看不卡av| 91福利在线免费观看| 91老师国产黑色丝袜在线| proumb性欧美在线观看| 成人精品一区二区三区四区| 风间由美一区二区av101| 国产一区二区三区久久久| 国产综合色视频| 国产麻豆精品95视频| 国产精品亚洲专一区二区三区| 国产美女精品人人做人人爽| 国产大陆亚洲精品国产| 懂色av一区二区三区免费观看| 国产成人精品免费在线| 成人污视频在线观看| 99久久精品久久久久久清纯| 91视频在线观看| 在线精品视频免费播放| 欧美绝品在线观看成人午夜影视| 欧美精品在线观看一区二区| 日韩写真欧美这视频| 精品国产sm最大网站| 国产亚洲欧美日韩日本| 国产精品国产三级国产三级人妇 | 日本韩国欧美国产| 欧美日韩国产片| 精品国产乱码久久| 中文字幕在线一区| 亚洲一二三专区| 免费人成网站在线观看欧美高清| 韩国三级电影一区二区| 91最新地址在线播放| 在线成人av影院| 精品福利视频一区二区三区| 亚洲国产精品高清| 亚洲成人一区在线| 国内精品国产成人国产三级粉色 | 国产嫩草影院久久久久| 亚洲九九爱视频| 美女脱光内衣内裤视频久久网站| 国产高清在线精品| 在线视频欧美精品| 2021国产精品久久精品| 亚洲免费av高清| 久久精品久久99精品久久| 99这里只有久久精品视频| 欧美久久免费观看| 中文字幕乱码亚洲精品一区| 亚洲bt欧美bt精品| 高清不卡在线观看av| 717成人午夜免费福利电影| 26uuu久久天堂性欧美| 伊人开心综合网| 国产在线一区二区综合免费视频| 不卡免费追剧大全电视剧网站| 在线播放91灌醉迷j高跟美女 | 中文字幕av一区二区三区免费看| 亚洲图片欧美一区| 国产高清视频一区| 欧美精品自拍偷拍| 亚洲视频在线一区二区| 精品一二线国产| 欧美日产国产精品| 中文字幕视频一区| 国产白丝精品91爽爽久久| 日韩一区二区精品| 一区二区三区国产精品| 国产丶欧美丶日本不卡视频| 欧美日本一区二区三区| 亚洲人成网站精品片在线观看| 九九热在线视频观看这里只有精品| 色综合久久久久久久久| 国产欧美一区二区精品久导航| 日本午夜一本久久久综合| 色综合欧美在线视频区| 国产精品美女久久久久高潮| 美女一区二区视频| 欧美麻豆精品久久久久久| 亚洲欧美色一区| 高清久久久久久| 久久综合九色欧美综合狠狠| 日本强好片久久久久久aaa| 色婷婷精品久久二区二区蜜臂av| 国产精品无遮挡| 国产精品一区二区91| 日韩精品一区二区三区老鸭窝| 性做久久久久久久久| 欧美在线观看禁18| 亚洲一区二区不卡免费| 在线中文字幕一区二区| 亚洲黄色在线视频| 91在线看国产| 亚洲欧美综合另类在线卡通| 成人精品gif动图一区| 中文字幕va一区二区三区| 国产不卡视频一区二区三区| 国产欧美日韩三区| 国产精品456| 欧美国产日韩在线观看| 成人一区二区三区| 亚洲欧洲一区二区在线播放| gogo大胆日本视频一区| 1024成人网| 色婷婷综合久久久| 亚洲国产视频a| 欧美精品精品一区| 日本免费在线视频不卡一不卡二| 日韩欧美成人激情| 国内成人免费视频| 国产区在线观看成人精品 | 免费av成人在线| 日韩午夜激情av| 国产麻豆精品theporn| 欧美激情在线看| 色婷婷精品久久二区二区蜜臂av | 国产成人h网站| 国产精品视频线看| 色久优优欧美色久优优| 香蕉加勒比综合久久| 欧美mv日韩mv国产网站app| 国产精品 欧美精品| 亚洲欧美日韩综合aⅴ视频| 欧美日本国产视频| 国产一区二区三区在线观看免费视频 | 麻豆高清免费国产一区| 久久精品这里都是精品| 91蜜桃在线观看| 三级欧美韩日大片在线看| 国产亚洲欧美在线|