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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? winioctl.h

?? 單片機(jī)USB串口通信模塊的動(dòng)態(tài)鏈接庫(kù)
?? H
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
    WORD   Reserved;
    WORD   Count;
    DWORD BlockNumber[1];
} REASSIGN_BLOCKS, *PREASSIGN_BLOCKS;

#if(_WIN32_WINNT >= 0x0400)
//
// IOCTL_DISK_CONTROLLER_NUMBER returns the controller and disk
// number for the handle.  This is used to determine if a disk
// is attached to the primary or secondary IDE controller.
//

typedef struct _DISK_CONTROLLER_NUMBER {
    DWORD ControllerNumber;
    DWORD DiskNumber;
} DISK_CONTROLLER_NUMBER, *PDISK_CONTROLLER_NUMBER;
#endif /* _WIN32_WINNT >= 0x0400 */

///////////////////////////////////////////////////////
//                                                   //
// The following structures define disk performance  //
// statistics: specifically the locations of all the //
// reads and writes which have occured on the disk.  //
//                                                   //
// To use these structures, you must issue an IOCTL_ //
// DISK_HIST_STRUCTURE (with a DISK_HISTOGRAM) to    //
// obtain the basic histogram information. The       //
// number of buckets which must allocated is part of //
// this structure. Allocate the required number of   //
// buckets and call an IOCTL_DISK_HIST_DATA to fill  //
// in the data                                       //
//                                                   //
///////////////////////////////////////////////////////

#define HIST_NO_OF_BUCKETS  24

typedef struct _HISTOGRAM_BUCKET {
    DWORD       Reads;
    DWORD       Writes;
} HISTOGRAM_BUCKET, *PHISTOGRAM_BUCKET;

#define HISTOGRAM_BUCKET_SIZE   sizeof(HISTOGRAM_BUCKET)

typedef struct _DISK_HISTOGRAM {
    LARGE_INTEGER   DiskSize;
    LARGE_INTEGER   Start;
    LARGE_INTEGER   End;
    LARGE_INTEGER   Average;
    LARGE_INTEGER   AverageRead;
    LARGE_INTEGER   AverageWrite;
    DWORD           Granularity;
    DWORD           Size;
    DWORD           ReadCount;
    DWORD           WriteCount;
    PHISTOGRAM_BUCKET  Histogram;
} DISK_HISTOGRAM, *PDISK_HISTOGRAM;

#define DISK_HISTOGRAM_SIZE sizeof(DISK_HISTOGRAM)

///////////////////////////////////////////////////////
//                                                   //
// The following structures define disk debugging    //
// capabilities. The IOCTLs are directed to one of   //
// the two disk filter drivers.                      //
//                                                   //
// DISKPERF is a utilty for collecting disk request  //
// statistics.                                       //
//                                                   //
// SIMBAD is a utility for injecting faults in       //
// IO requests to disks.                             //
//                                                   //
///////////////////////////////////////////////////////

//
// The following structure is exchanged on an IOCTL_DISK_GET_PERFORMANCE
// request. This ioctl collects summary disk request statistics used
// in measuring performance.
//

typedef struct _DISK_PERFORMANCE {
        LARGE_INTEGER BytesRead;
        LARGE_INTEGER BytesWritten;
        LARGE_INTEGER ReadTime;
        LARGE_INTEGER WriteTime;
        DWORD ReadCount;
        DWORD WriteCount;
        DWORD QueueDepth;
} DISK_PERFORMANCE, *PDISK_PERFORMANCE;

//
// This structure defines the disk logging record. When disk logging
// is enabled, one of these is written to an internal buffer for each
// disk request.
//

typedef struct _DISK_RECORD {
   LARGE_INTEGER ByteOffset;
   LARGE_INTEGER StartTime;
   LARGE_INTEGER EndTime;
   PVOID VirtualAddress;
   DWORD NumberOfBytes;
   BYTE  DeviceNumber;
   BOOLEAN ReadRequest;
} DISK_RECORD, *PDISK_RECORD;

//
// The following structure is exchanged on an IOCTL_DISK_LOG request.
// Not all fields are valid with each function type.
//

typedef struct _DISK_LOGGING {
    BYTE  Function;
    PVOID BufferAddress;
    DWORD BufferSize;
} DISK_LOGGING, *PDISK_LOGGING;

//
// Disk logging functions
//
// Start disk logging. Only the Function and BufferSize fields are valid.
//

#define DISK_LOGGING_START    0

//
// Stop disk logging. Only the Function field is valid.
//

#define DISK_LOGGING_STOP     1

//
// Return disk log. All fields are valid. Data will be copied from internal
// buffer to buffer specified for the number of bytes requested.
//

#define DISK_LOGGING_DUMP     2

//
// DISK BINNING
//
// DISKPERF will keep counters for IO that falls in each of these ranges.
// The application determines the number and size of the ranges.
// Joe Lin wanted me to keep it flexible as possible, for instance, IO
// sizes are interesting in ranges like 0-4096, 4097-16384, 16385-65536, 65537+.
//

#define DISK_BINNING          3

//
// Bin types
//

typedef enum _BIN_TYPES {
    RequestSize,
    RequestLocation
} BIN_TYPES;

//
// Bin ranges
//

typedef struct _BIN_RANGE {
    LARGE_INTEGER StartValue;
    LARGE_INTEGER Length;
} BIN_RANGE, *PBIN_RANGE;

//
// Bin definition
//

typedef struct _PERF_BIN {
    DWORD NumberOfBins;
    DWORD TypeOfBin;
    BIN_RANGE BinsRanges[1];
} PERF_BIN, *PPERF_BIN ;

//
// Bin count
//

typedef struct _BIN_COUNT {
    BIN_RANGE BinRange;
    DWORD BinCount;
} BIN_COUNT, *PBIN_COUNT;

//
// Bin results
//

typedef struct _BIN_RESULTS {
    DWORD NumberOfBins;
    BIN_COUNT BinCounts[1];
} BIN_RESULTS, *PBIN_RESULTS;

#if(_WIN32_WINNT >= 0x0400)
//
// Data structures for SMART drive fault prediction.
//
// GETVERSIONINPARAMS contains the data returned from the
// Get Driver Version function.
//

#pragma pack(1)
typedef struct _GETVERSIONINPARAMS {
        BYTE     bVersion;               // Binary driver version.
        BYTE     bRevision;              // Binary driver revision.
        BYTE     bReserved;              // Not used.
        BYTE     bIDEDeviceMap;          // Bit map of IDE devices.
        DWORD   fCapabilities;          // Bit mask of driver capabilities.
        DWORD   dwReserved[4];          // For future use.
} GETVERSIONINPARAMS, *PGETVERSIONINPARAMS, *LPGETVERSIONINPARAMS;
#pragma pack()

//
// Bits returned in the fCapabilities member of GETVERSIONINPARAMS
//

#define CAP_ATA_ID_CMD          1       // ATA ID command supported
#define CAP_ATAPI_ID_CMD        2       // ATAPI ID command supported
#define CAP_SMART_CMD           4       // SMART commannds supported

//
// IDE registers
//

#pragma pack(1)
typedef struct _IDEREGS {
        BYTE     bFeaturesReg;           // Used for specifying SMART "commands".
        BYTE     bSectorCountReg;        // IDE sector count register
        BYTE     bSectorNumberReg;       // IDE sector number register
        BYTE     bCylLowReg;             // IDE low order cylinder value
        BYTE     bCylHighReg;            // IDE high order cylinder value
        BYTE     bDriveHeadReg;          // IDE drive/head register
        BYTE     bCommandReg;            // Actual IDE command.
        BYTE     bReserved;                      // reserved for future use.  Must be zero.
} IDEREGS, *PIDEREGS, *LPIDEREGS;
#pragma pack()

//
// Valid values for the bCommandReg member of IDEREGS.
//

#define ATAPI_ID_CMD    0xA1            // Returns ID sector for ATAPI.
#define ID_CMD          0xEC            // Returns ID sector for ATA.
#define SMART_CMD       0xB0            // Performs SMART cmd.
                                        // Requires valid bFeaturesReg,
                                        // bCylLowReg, and bCylHighReg

//
// Cylinder register defines for SMART command
//

#define SMART_CYL_LOW   0x4F
#define SMART_CYL_HI    0xC2


//
// SENDCMDINPARAMS contains the input parameters for the
// Send Command to Drive function.
//

#pragma pack(1)
typedef struct _SENDCMDINPARAMS {
        DWORD   cBufferSize;            // Buffer size in bytes
        IDEREGS irDriveRegs;            // Structure with drive register values.
        BYTE     bDriveNumber;           // Physical drive number to send
                                                                // command to (0,1,2,3).
        BYTE     bReserved[3];           // Reserved for future expansion.
        DWORD   dwReserved[4];          // For future use.
        BYTE     bBuffer[1];                     // Input buffer.
} SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;
#pragma pack()

//
// Status returned from driver
//

#pragma pack(1)
typedef struct _DRIVERSTATUS {
        BYTE     bDriverError;           // Error code from driver,
                                                                // or 0 if no error.
        BYTE     bIDEError;                      // Contents of IDE Error register.
                                                                // Only valid when bDriverError
                                                                // is SMART_IDE_ERROR.
        BYTE     bReserved[2];           // Reserved for future expansion.
        DWORD   dwReserved[2];          // Reserved for future expansion.
} DRIVERSTATUS, *PDRIVERSTATUS, *LPDRIVERSTATUS;
#pragma pack()

//
// bDriverError values
//

#define SMART_NO_ERROR          0       // No error
#define SMART_IDE_ERROR         1       // Error from IDE controller
#define SMART_INVALID_FLAG      2       // Invalid command flag
#define SMART_INVALID_COMMAND   3       // Invalid command byte
#define SMART_INVALID_BUFFER    4       // Bad buffer (null, invalid addr..)
#define SMART_INVALID_DRIVE     5       // Drive number not valid
#define SMART_INVALID_IOCTL     6       // Invalid IOCTL
#define SMART_ERROR_NO_MEM      7       // Could not lock user's buffer
#define SMART_INVALID_REGISTER  8       // Some IDE Register not valid
#define SMART_NOT_SUPPORTED     9       // Invalid cmd flag set
#define SMART_NO_IDE_DEVICE     10      // Cmd issued to device not present
                                        // although drive number is valid

#pragma pack(1)
typedef struct _SENDCMDOUTPARAMS {
        DWORD                   cBufferSize;            // Size of bBuffer in bytes
        DRIVERSTATUS            DriverStatus;           // Driver status structure.
        BYTE                    bBuffer[1];             // Buffer of arbitrary length in which to store the data read from the                                                                                  // drive.
} SENDCMDOUTPARAMS, *PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS;
#pragma pack()


#define READ_ATTRIBUTE_BUFFER_SIZE  512
#define IDENTIFY_BUFFER_SIZE        512
#define READ_THRESHOLD_BUFFER_SIZE  512

//
// Feature register defines for SMART "sub commands"
//

#define READ_ATTRIBUTES         0xD0
#define READ_THRESHOLDS         0xD1
#define ENABLE_DISABLE_AUTOSAVE 0xD2
#define SAVE_ATTRIBUTE_VALUES   0xD3
#define EXECUTE_OFFLINE_DIAGS   0xD4
#define ENABLE_SMART            0xD8
#define DISABLE_SMART           0xD9
#define RETURN_SMART_STATUS     0xDA
#endif /* _WIN32_WINNT >= 0x0400 */



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品美女一区二区| 久久精品国产第一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 天堂va蜜桃一区二区三区漫画版| 美女mm1313爽爽久久久蜜臀| 成人性生交大片| 欧美片网站yy| 久久久九九九九| 一区二区三区日本| 激情综合色播五月| 色婷婷亚洲一区二区三区| 日韩午夜激情免费电影| 中文字幕亚洲区| 蜜臀av国产精品久久久久| 成人午夜av电影| 91精品国产综合久久久久久 | 日本中文字幕一区二区视频 | 久久你懂得1024| 亚洲精品菠萝久久久久久久| 久久国产精品第一页| 99国产欧美久久久精品| 欧美电视剧免费观看| 中文字幕在线不卡视频| 久久国产福利国产秒拍| 欧洲一区在线观看| 欧美高清在线精品一区| 青娱乐精品在线视频| 色哟哟日韩精品| 国产日韩成人精品| 日韩国产在线观看| 91在线国内视频| 国产色一区二区| 奇米综合一区二区三区精品视频| 色噜噜狠狠色综合欧洲selulu| 久久先锋资源网| 午夜精品久久一牛影视| 99麻豆久久久国产精品免费优播| 欧美tickling挠脚心丨vk| 亚洲成av人在线观看| 成人av一区二区三区| 日韩一区二区三区三四区视频在线观看| 亚洲柠檬福利资源导航| 国产精品一区二区久激情瑜伽| 91精品国产欧美一区二区18| 有码一区二区三区| 不卡的电影网站| 久久久av毛片精品| 六月丁香婷婷色狠狠久久| 在线观看91精品国产麻豆| 一区二区三区四区视频精品免费 | 久久久亚洲欧洲日产国码αv| 五月综合激情日本mⅴ| 日本久久电影网| **性色生活片久久毛片| 国产91对白在线观看九色| 久久综合九色欧美综合狠狠| 蜜臀av国产精品久久久久| 正在播放一区二区| 亚洲成人tv网| 欧美少妇一区二区| 亚洲伊人色欲综合网| 一本色道久久综合亚洲aⅴ蜜桃 | 成人黄动漫网站免费app| 久久先锋影音av| 韩国成人在线视频| 精品久久久久久久久久久久久久久久久 | 亚洲国产日韩一区二区| 一本久久综合亚洲鲁鲁五月天| 中文字幕一区二| 99久久国产综合精品女不卡| 国产精品成人免费精品自在线观看| 国产电影一区在线| 欧美国产精品专区| 成人精品视频.| 国产精品福利一区二区| 不卡欧美aaaaa| 亚洲视频网在线直播| 色综合久久综合网欧美综合网 | 欧美丝袜第三区| 亚洲va韩国va欧美va| 在线播放91灌醉迷j高跟美女| 日av在线不卡| 久久色中文字幕| 成人av午夜影院| 一区二区三区久久| 欧美美女一区二区在线观看| 男男gaygay亚洲| 国产丝袜欧美中文另类| av在线一区二区| 亚洲综合一二三区| 在线成人免费视频| 狠狠色丁香久久婷婷综| 国产欧美一区二区精品仙草咪| 成人av电影在线观看| 亚洲一区国产视频| 欧美一卡2卡三卡4卡5免费| 国产尤物一区二区在线| 国产精品区一区二区三| 欧美性三三影院| 九九九精品视频| **性色生活片久久毛片| 欧美日韩高清在线播放| 久久精品国产**网站演员| 国产婷婷一区二区| 在线亚洲欧美专区二区| 蜜桃一区二区三区在线| 日本一区免费视频| 欧美专区亚洲专区| 蜜臀99久久精品久久久久久软件 | av亚洲精华国产精华精华| 亚洲国产视频a| 精品福利在线导航| 91丝袜高跟美女视频| 日韩中文字幕91| 国产欧美一区二区三区在线老狼| 日本韩国欧美在线| 精品一二线国产| 亚洲激情图片一区| 精品蜜桃在线看| 色综合久久综合| 韩国三级中文字幕hd久久精品| 亚洲激情av在线| 久久综合久久鬼色中文字| 91国内精品野花午夜精品| 久久疯狂做爰流白浆xx| 亚洲人成7777| 日韩一区二区三区视频在线观看| 亚洲视频1区2区| 91.麻豆视频| 亚洲激情欧美激情| 不卡视频一二三| 欧美一区二区精美| 一区二区三区四区在线免费观看| 91亚洲精品久久久蜜桃| 久久这里只有精品首页| 久久精品国产澳门| 91麻豆精品国产91久久久资源速度 | 国产丶欧美丶日本不卡视频| 欧美一级日韩一级| 久久一二三国产| 国产精品亲子乱子伦xxxx裸| 一区二区三区欧美| 色婷婷狠狠综合| 欧美日韩国产首页在线观看| 欧美一三区三区四区免费在线看| 日本一区二区三区在线观看| 成人欧美一区二区三区| 91丨porny丨国产| 99国产精品一区| 国产精品综合二区| www.亚洲在线| 亚洲男人的天堂在线aⅴ视频| 日本不卡的三区四区五区| 国产校园另类小说区| 久久99这里只有精品| 亚洲成a人v欧美综合天堂| 在线精品视频一区二区三四| 亚洲人成人一区二区在线观看| 色香蕉久久蜜桃| 欧美曰成人黄网| 精品成人免费观看| 国产精品亚洲成人| 亚洲欧美日本韩国| 欧美日韩国产成人在线91| 美女被吸乳得到大胸91| 国产91富婆露脸刺激对白| 午夜视黄欧洲亚洲| 欧美男人的天堂一二区| 麻豆精品久久久| 欧美日韩一二三区| 久久青草国产手机看片福利盒子 | 欧美日韩一区中文字幕| 99久久99久久久精品齐齐| 久久久91精品国产一区二区三区| 成人v精品蜜桃久久一区| 亚洲日本中文字幕区| 欧美专区日韩专区| 日日夜夜免费精品视频| 天天色综合成人网| 中文av字幕一区| 欧美精品一区二区在线播放| 色婷婷久久99综合精品jk白丝| 在线免费av一区| 午夜精品久久久久久久99樱桃| 日韩欧美国产电影| 97久久精品人人爽人人爽蜜臀| 不卡的av电影在线观看| 91黄视频在线观看| 日本女人一区二区三区| 337p日本欧洲亚洲大胆精品| 日本乱码高清不卡字幕| jlzzjlzz欧美大全| 日韩精品国产欧美| 国产在线观看一区二区 | 日韩精品国产精品| 亚洲欧美综合在线精品| 欧美高清你懂得| 五月天中文字幕一区二区| 自拍视频在线观看一区二区| 99视频有精品|