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

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

?? cdiskinfo.cls

?? 讀取磁盤序列號 讀取磁盤序列號 讀取磁盤序列號
?? CLS
?? 第 1 頁 / 共 2 頁
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "CDiskInfo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

'--------------------------------------------------------------------------
'   模  塊: 取磁盤硬件信息處理類
'   版  本: 1.0
'   文件名: CDiskInfo.cls
'   作者: 林天炮
'   修改日期:2003-03-13
'
'   功能說明:獲取硬盤序列號、型號、磁道扇區(qū)信息等
'   版權(quán)說明:此為共享代碼,根據(jù)微軟提供的例程改編,可以任意修改及使用,
'             作者對此模塊運行所引起的錯誤不承擔(dān)任何責(zé)任。
'
'             引用此模塊時須保留作者署名,有意見或錯誤請發(fā)送至ltpao@sina.com
'
'   注意事項:支持Windows 95 OSR2, Windows 98, Windows NT, Windows 2000
'             XP沒有測試,估計沒問題,在Win9X下必須保證存在SMARTVSD.vxd
'--------------------------------------------------------------------------

'/****************************************************************************
'*                                                                           *
'* 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 1993-98  Microsoft Corporation.  All Rights Reserved.           *
'*                                                                           *
'****************************************************************************/

Private Const MAX_IDE_DRIVES As Long = 4   ' Max number of drives assuming primary/secondary, master/slave topology
Private Const READ_ATTRIBUTE_BUFFER_SIZE As Long = 512
Private Const IDENTIFY_BUFFER_SIZE As Long = 512
Private Const READ_THRESHOLD_BUFFER_SIZE As Long = 512

'
' IOCTL commands
'
Private Const DFP_GET_VERSION As Long = &H74080
Private Const DFP_SEND_DRIVE_COMMAND As Long = &H7C084
Private Const DFP_RECEIVE_DRIVE_DATA As Long = &H7C088

'---------------------------------------------------------------------
' GETVERSIONOUTPARAMS contains the data returned from the
' Get Driver Version function.
'---------------------------------------------------------------------
Private Type GETVERSIONOUTPARAMS
    bVersion As Byte       ' Binary driver version.
    bRevision As Byte      ' Binary driver revision.
    bReserved As Byte      ' Not used.
    bIDEDeviceMap As Byte  ' Bit map of IDE devices.
    fCapabilities As Long  ' Bit mask of driver capabilities.
    dwReserved(3) As Long  ' For future use.
End Type

'
' Bits returned in the fCapabilities member of GETVERSIONOUTPARAMS
'
Private Const CAP_IDE_ID_FUNCTION As Long = 1               ' ATA ID command supported
Private Const CAP_IDE_ATAPI_ID As Long = 2                  ' ATAPI ID command supported
Private Const CAP_IDE_EXECUTE_SMART_FUNCTION As Long = 4    ' SMART commannds supported

'---------------------------------------------------------------------
' IDE registers
'---------------------------------------------------------------------
Private Type IDEREGS
    bFeaturesReg As Byte       ' Used for specifying SMART "commands".
    bSectorCountReg As Byte    ' IDE sector count register
    bSectorNumberReg As Byte   ' IDE sector number register
    bCylLowReg As Byte         ' IDE low order cylinder value
    bCylHighReg As Byte        ' IDE high order cylinder value
    bDriveHeadReg As Byte      ' IDE drive/head register
    bCommandReg As Byte        ' Actual IDE command.
    bReserved As Byte          ' reserved for future use.  Must be zero.
End Type

'---------------------------------------------------------------------
' SENDCMDINPARAMS contains the input parameters for the
' Send Command to Drive function.
'---------------------------------------------------------------------
Private Type SENDCMDINPARAMS
    cBufferSize As Long        ' Buffer size in bytes
    irDriveRegs As IDEREGS     ' Structure with drive register values.
    bDriveNumber As Byte       ' Physical drive number to send
                                ' command to (0,1,2,3).
    bReserved(2) As Byte       ' Reserved for future expansion.
    dwReserved(3) As Long      ' For future use.
    bBuffer(0) As Byte         ' Input buffer.
End Type

'
' Valid values for the bCommandReg member of IDEREGS.
'
Private Const IDE_ATAPI_ID As Long = &HA1  ' Returns ID sector for ATAPI.
Private Const IDE_ID_FUNCTION As Long = &HEC  ' Returns ID sector for ATA.
Private Const IDE_EXECUTE_SMART_FUNCTION As Long = &HB0  ' Performs SMART cmd.
                                            ' Requires valid bFeaturesReg,
                                            ' bCylLowReg, and bCylHighReg
'
' Cylinder register values required when issuing SMART command
'
Private Const SMART_CYL_LOW As Long = &H4F
Private Const SMART_CYL_HI As Long = &HC2

'---------------------------------------------------------------------
' Status returned from driver
'---------------------------------------------------------------------
Private Type DRIVERSTATUS
    bDriverError As Byte       ' Error code from driver,
                                ' or 0 if no error.
    bIDEStatus As Byte         ' Contents of IDE Error register.
                                ' Only valid when bDriverError
                                ' is SMART_IDE_ERROR.
    bReserved(1) As Byte       ' Reserved for future expansion.
    dwReserved(1) As Long      ' Reserved for future expansion.
End Type

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

'---------------------------------------------------------------------
' Structure returned by SMART IOCTL for several commands
'---------------------------------------------------------------------
Private Type SENDCMDOUTPARAMS
    cBufferSize As Long        ' Size of bBuffer in bytes
    drvStatus As DRIVERSTATUS  ' Driver status structure.
    bBuffer(0) As Byte         ' Buffer of arbitrary length in which to store the data read from the                                          ' drive.
End Type

'---------------------------------------------------------------------
' Feature register defines for SMART "sub commands"
'---------------------------------------------------------------------
Private Const SMART_READ_ATTRIBUTE_VALUES As Long = &HD0    ' ATA4: Renamed
                                                        ' SMART READ DATA
Private Const SMART_READ_ATTRIBUTE_THRESHOLDS As Long = &HD1    ' Obsoleted in ATA4!
Private Const SMART_ENABLE_DISABLE_ATTRIBUTE_AUTOSAVE As Long = &HD2
Private Const SMART_SAVE_ATTRIBUTE_VALUES As Long = &HD3
Private Const SMART_EXECUTE_OFFLINE_IMMEDIATE As Long = &HD4    ' ATA4
' Vendor specific commands:
Private Const SMART_ENABLE_SMART_OPERATIONS As Long = &HD8
Private Const SMART_DISABLE_SMART_OPERATIONS As Long = &HD9
Private Const SMART_RETURN_SMART_STATUS As Long = &HDA


'---------------------------------------------------------------------
' The following structure defines the structure of a Drive Attribute
'---------------------------------------------------------------------
Private Type DRIVEATTRIBUTE
    bAttrID As Byte        ' Identifies which attribute
    wStatusFlags As Integer    ' see bit definitions below
    bAttrValue As Byte     ' Current normalized value
    bWorstValue As Byte    ' How bad has it ever been?
    bRawValue(5) As Byte   ' Un-normalized value
    bReserved As Byte      ' ...
End Type

'---------------------------------------------------------------------
' The following structure defines the structure of a Warranty Threshold
' Obsoleted in ATA4!
'---------------------------------------------------------------------
Private Type ATTRTHRESHOLD
    bAttrID As Byte            ' Identifies which attribute
    bWarrantyThreshold As Byte ' Triggering value
    bReserved(9) As Byte      ' ...
End Type

'---------------------------------------------------------------------
' The following struct defines the interesting part of the IDENTIFY
' buffer:
'---------------------------------------------------------------------
Private Type IDSECTOR
    wGenConfig As Integer
    wNumCyls As Integer
    wReserved As Integer
    wNumHeads As Integer
    wBytesPerTrack As Integer
    wBytesPerSector As Integer
    wSectorsPerTrack As Integer
    wVendorUnique(2) As Integer
    sSerialNumber(19) As Byte
    wBufferType As Integer
    wBufferSize As Integer
    wECCSize As Integer
    sFirmwareRev(7) As Byte
    sModelNumber(39) As Byte
    wMoreVendorUnique As Integer
    wDoubleWordIO As Integer
    wCapabilities As Integer
    wReserved1 As Integer
    wPIOTiming As Integer
    wDMATiming As Integer
    wBS As Integer
    wNumCurrentCyls As Integer
    wNumCurrentHeads As Integer
    wNumCurrentSectorsPerTrack As Integer
    ulCurrentSectorCapacity As Long
    wMultSectorStuff As Integer
    ulTotalAddressableSectors As Long
    wSingleWordDMA As Integer
    wMultiWordDMA As Integer
    bReserved(127) As Byte
End Type

'---------------------------------------------------------------------
' Valid Attribute IDs
'---------------------------------------------------------------------
Private Const ATTR_INVALID As Long = 0
Private Const ATTR_READ_ERROR_RATE As Long = 1
Private Const ATTR_THROUGHPUT_PERF As Long = 2
Private Const ATTR_SPIN_UP_TIME As Long = 3
Private Const ATTR_START_STOP_COUNT As Long = 4
Private Const ATTR_REALLOC_SECTOR_COUNT As Long = 5
Private Const ATTR_READ_CHANNEL_MARGIN As Long = 6
Private Const ATTR_SEEK_ERROR_RATE As Long = 7
Private Const ATTR_SEEK_TIME_PERF As Long = 8
Private Const ATTR_POWER_ON_HRS_COUNT As Long = 9
Private Const ATTR_SPIN_RETRY_COUNT As Long = 10
Private Const ATTR_CALIBRATION_RETRY_COUNT As Long = 11
Private Const ATTR_POWER_CYCLE_COUNT As Long = 12

'---------------------------------------------------------------------
' Status Flags Values
'---------------------------------------------------------------------
Private Const PRE_FAILURE_WARRANTY As Long = &H1
Private Const ON_LINE_COLLECTION As Long = &H2
Private Const PERFORMANCE_ATTRIBUTE As Long = &H4
Private Const ERROR_RATE_ATTRIBUTE As Long = &H8
Private Const EVENT_COUNT_ATTRIBUTE As Long = &H10
Private Const SELF_PRESERVING_ATTRIBUTE As Long = &H20

Private Const NUM_ATTRIBUTE_STRUCTS As Long = 30


Private Const INVALID_HANDLE_VALUE = -1

Private Const VER_PLATFORM_WIN32s = 0
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT = 2
Private Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128      '  Maintenance string for PSS usage
End Type
Private Declare Function GetVersionEx Lib "KERNEL32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long

Private Const CREATE_NEW = 1
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const OPEN_EXISTING = 3
Private Declare Function CreateFile Lib "KERNEL32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function DeviceIoControl Lib "KERNEL32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long) As Long
Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function CloseHandle Lib "KERNEL32" (ByVal hObject As Long) As Long

'
' Define global buffers.
'
Private m_DiskInfo As IDSECTOR

'---------------------------------------------------------------------
' Open SMART to allow DeviceIoControl communications.
'---------------------------------------------------------------------
Private Function OpenSMART(ByVal nDrive As Byte) As Long
    Dim hSMARTIOCTL As Long
    hSMARTIOCTL = INVALID_HANDLE_VALUE
    Dim hd As String
    Dim VersionInfo As OSVERSIONINFO
    VersionInfo.dwOSVersionInfoSize = Len(VersionInfo)
    GetVersionEx VersionInfo
    Select Case VersionInfo.dwPlatformId

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www..com久久爱| 精品一区二区三区的国产在线播放| 国产成人在线电影| 国产欧美日韩精品a在线观看| 国产v日产∨综合v精品视频| 国产精品视频麻豆| 91麻豆精品一区二区三区| 亚洲一区二区欧美日韩| 欧美一区二区三区小说| 国产精品一区在线观看乱码| 国产精品短视频| 欧美亚洲一区二区在线观看| 丝袜a∨在线一区二区三区不卡| 欧美一区二区三区视频| 国产一区在线视频| 亚洲人妖av一区二区| 欧美日韩午夜在线| 国产精品一区二区在线播放| 国产精品久久久久久久久免费桃花 | 丁香婷婷综合激情五月色| 国产精品大尺度| 欧美日韩一区二区三区四区五区| 日韩不卡手机在线v区| 国产视频一区二区在线观看| 在线一区二区三区四区| 老司机精品视频一区二区三区| 国产精品女主播av| 欧美高清精品3d| 国产成人综合亚洲网站| 亚洲国产综合人成综合网站| 精品免费一区二区三区| 色国产综合视频| 韩国一区二区三区| 亚洲一级二级三级| 国产视频一区不卡| 欧美人伦禁忌dvd放荡欲情| 国产成人在线影院| 日韩成人av影视| 91麻豆精品国产91久久久久久| 国产精品免费观看视频| 亚洲女人小视频在线观看| 91视频你懂的| 九九在线精品视频| 一区二区三区蜜桃| 中文字幕的久久| 精品日韩一区二区三区免费视频| 欧日韩精品视频| 国产91精品精华液一区二区三区 | 日韩欧美国产不卡| 在线免费亚洲电影| 成人午夜伦理影院| 激情深爱一区二区| 日韩专区在线视频| 亚洲一区二区三区视频在线| 国产精品高潮呻吟久久| 国产网红主播福利一区二区| 日韩一二三区不卡| 欧美群妇大交群中文字幕| 91美女福利视频| 99久久综合国产精品| 国产ts人妖一区二区| 久久99精品国产麻豆不卡| 不卡电影一区二区三区| av在线不卡观看免费观看| www精品美女久久久tv| 欧美片网站yy| 欧美撒尿777hd撒尿| 一本色道久久综合亚洲精品按摩| 成人激情免费视频| 成人av电影在线| 成人精品视频.| 成人av在线播放网站| 国产a视频精品免费观看| 国产在线精品一区二区夜色| 久久不见久久见免费视频1| 美日韩一区二区三区| 欧美aaaaaa午夜精品| 免费人成精品欧美精品| 青青草97国产精品免费观看无弹窗版 | 久久久精品国产99久久精品芒果 | 国产精品中文有码| 国产成人一级电影| 成人黄色小视频在线观看| 成人av免费在线观看| av高清久久久| 欧美性生活一区| 91精品婷婷国产综合久久| 制服丝袜日韩国产| 欧美成人乱码一区二区三区| 久久精品免费在线观看| 中文无字幕一区二区三区| 国产精品灌醉下药二区| 亚洲亚洲精品在线观看| 亚洲bt欧美bt精品777| 蜜桃精品在线观看| 国产美女av一区二区三区| 成人免费视频播放| 色视频欧美一区二区三区| 91精品国产综合久久久久久久| 欧美zozozo| 国产精品国产三级国产aⅴ原创 | 麻豆久久久久久| 国产精品一区二区三区四区| 波多野结衣91| 欧美剧在线免费观看网站| 精品第一国产综合精品aⅴ| 欧美激情综合五月色丁香小说| 亚洲丝袜另类动漫二区| 日韩精品一区第一页| 国产麻豆9l精品三级站| 色综合久久久久综合体桃花网| 欧美日韩视频一区二区| 久久久91精品国产一区二区三区| 亚洲男人都懂的| 毛片av中文字幕一区二区| 不卡一区在线观看| 欧美精品自拍偷拍| 国产日韩欧美一区二区三区综合| 亚洲精品乱码久久久久久黑人| 美女网站色91| 色哟哟在线观看一区二区三区| 欧美一区二区三区视频免费| 国产精品国产自产拍在线| 蜜臀国产一区二区三区在线播放 | 色婷婷av一区二区三区软件| 精品久久久久久久人人人人传媒| 亚洲视频一二三区| 精品制服美女久久| 欧美在线不卡视频| 日本一区免费视频| 日韩不卡手机在线v区| 91日韩在线专区| 精品国产一区二区亚洲人成毛片 | 欧美国产在线观看| 免费久久99精品国产| 在线国产电影不卡| 欧美国产日本韩| 狠狠网亚洲精品| 欧美日韩精品一区二区三区四区| 国产精品女人毛片| 久久99精品久久久久久动态图| 精品视频一区 二区 三区| 中文字幕亚洲综合久久菠萝蜜| 美女视频黄久久| 欧美日韩国产成人在线免费| 亚洲人妖av一区二区| 国产成人8x视频一区二区| 日韩欧美国产成人一区二区| 亚洲gay无套男同| 在线精品亚洲一区二区不卡| 国产精品高潮呻吟久久| 国产激情精品久久久第一区二区| 日韩一级在线观看| 日韩vs国产vs欧美| 欧美日韩精品系列| 亚洲成人av福利| 精品视频在线免费观看| 一区二区欧美视频| 色综合久久久久久久久久久| 国产精品久久影院| 成人三级伦理片| 国产精品国产三级国产a| 成人国产视频在线观看| 中文文精品字幕一区二区| 粉嫩av一区二区三区在线播放| 久久久久97国产精华液好用吗| 国内精品伊人久久久久影院对白| 日韩精品综合一本久道在线视频| 全国精品久久少妇| 日韩三级精品电影久久久| 蜜桃av噜噜一区二区三区小说| 日韩亚洲欧美成人一区| 久久精品国产999大香线蕉| 精品剧情在线观看| 国产成人精品亚洲午夜麻豆| 国产日本一区二区| 99re这里只有精品视频首页| 亚洲欧美日韩国产综合在线| 在线免费精品视频| 日韩精品一级中文字幕精品视频免费观看 | 久久女同互慰一区二区三区| 国产精品系列在线播放| 日本一区二区三区在线观看| 成人精品视频一区二区三区 | 中日韩免费视频中文字幕| 99久久久免费精品国产一区二区| 亚洲猫色日本管| 欧美日韩精品欧美日韩精品| 美女视频免费一区| 国产欧美精品国产国产专区| 97成人超碰视| 视频在线观看一区二区三区| 26uuu久久天堂性欧美| 成人性生交大合| 亚洲观看高清完整版在线观看| 欧美不卡一二三| 99精品国产视频| 久久精品国产免费| 亚洲视频一区二区在线观看| 欧美一区二区三区四区在线观看 |