CreateMutex AfxOleInit() AfxOleGetMessageFilter()->SetMessagePendingDelay AfxOleGetMessageFilter()->EnableNotRespondingDialog(FALSE) AfxOleGetMessageFilter()->EnableBusyDialog(FALSE) dlg.DoModal() CAtaSmart::Init WMI on - Start CoInitializeSecurity() CoCreateInstance() ConnectServer() CoSetProxyBlanket() OK:WMI Init OK:Win32_IDEController OK:Win32_SCSIController OK:Win32_USBController VID=058Fh, PID=6362h VID=0000h, PID=0000h VID=0000h, PID=0000h VID=0000h, PID=0000h DO:SELECT * FROM Win32_DiskDrive OK:SELECT * FROM Win32_DiskDrive while(pEnumCOMDevs ... diskSize:1000202273280 deviceId:\\.\PHYSICALDRIVE0 model:WDC WD1002FAEX-00Z3A0 ATA Device mediaType:Fixed hard disk media interfaceTypeWmi:IDE pnpDeviceId:IDE\DISKWDC_WD1002FAEX-00Z3A0___________________05.01D05\5&19A06573&0&0.0.0 DO:GetDiskInfo pd=0, sp=2, st=0, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(0, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) AddDisk(0, 2, 0) - 6 GetSmartAttributePd(0) - 1 SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_THRESHOLDS int index = (int)vars.GetCount() - 1; OK:Check Model Name while(pEnumCOMDevs ... diskSize:320070320640 deviceId:\\.\PHYSICALDRIVE1 model:WDC WD3200KS-00PFB0 ATA Device mediaType:Fixed hard disk media interfaceTypeWmi:IDE pnpDeviceId:IDE\DISKWDC_WD3200KS-00PFB0_____________________21.00M21\5&19A06573&0&0.1.0 DO:GetDiskInfo pd=1, sp=2, st=1, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(1, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) AddDisk(1, 2, 1) - 6 GetSmartAttributePd(1) - 1 SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_THRESHOLDS int index = (int)vars.GetCount() - 1; OK:Check Model Name while(pEnumCOMDevs ... diskSize:320070320640 deviceId:\\.\PHYSICALDRIVE2 model:WDC WD3200KS-00PFB0 ATA Device mediaType:Fixed hard disk media interfaceTypeWmi:IDE pnpDeviceId:IDE\DISKWDC_WD3200KS-00PFB0_____________________21.00M21\5&6E6B4CE&0&1.0.0 DO:GetDiskInfo pd=2, sp=3, st=0, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(2, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) AddDisk(2, 3, 0) - 6 GetSmartAttributePd(2) - 1 SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_THRESHOLDS int index = (int)vars.GetCount() - 1; OK:Check Model Name while(pEnumCOMDevs ... diskSize:1000202273280 deviceId:\\.\PHYSICALDRIVE4 model:ST310003 33AS SCSI Disk Device mediaType:Fixed hard disk media interfaceTypeWmi:SCSI pnpDeviceId:SCSI\DISK&VEN_ST310003&PROD_33AS&REV_CC1H\5&7E6F944&0&010000 SiliconImageController:SCSI\DISK&VEN_ST310003&PROD_33AS&REV_CC1H\5&7E6F944&0&010000 DO:GetDiskInfo pd=4, sp=4, st=0, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo physicalDriveId=4, scsiPort=4, scsiBus=1, scsiTargetId=0 AddDisk - Si while(pEnumCOMDevs ... diskSize:1000202273280 deviceId:\\.\PHYSICALDRIVE3 model:WDC WD10 EADS-00L5B1 SCSI Disk Device mediaType:Fixed hard disk media interfaceTypeWmi:SCSI pnpDeviceId:SCSI\DISK&VEN_WDC_WD10&PROD_EADS-00L5B1&REV_01.0\5&7E6F944&0&000000 SiliconImageController:SCSI\DISK&VEN_WDC_WD10&PROD_EADS-00L5B1&REV_01.0\5&7E6F944&0&000000 DO:GetDiskInfo pd=3, sp=4, st=0, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo physicalDriveId=3, scsiPort=4, scsiBus=0, scsiTargetId=0 AddDisk - Si GetSmartAttributeSi(physicalDriveId, &asi) GetSmartAttributeSi(physicalDriveId, &asiCheck) CheckSmartAttributeCorrect(&asi, &asiCheck) - 1 SendAtaCommandPd - SMART_READ_DATA CheckSmartAttributeCorrect(&asi, &asiCheck) - 2 GetSmartThresholdPd SendAtaCommandPd - SMART_READ_THRESHOLDS int index = (int)vars.GetCount() - 1; OK:Check Model Name while(pEnumCOMDevs ... deviceId:\\.\PHYSICALDRIVE6 model:Generic USB CF Reader USB Device interfaceTypeWmi:USB pnpDeviceId:USBSTOR\DISK&VEN_GENERIC&PROD_USB_CF_READER&REV_1.01\058F312D81B&1 DO:GetDiskInfo pd=6, sp=-1, st=-1, mt= INTERFACE_TYPE_USB usbVendorId=0000, usbProductId=0000 flagTarget && GetDiskInfo while(pEnumCOMDevs ... deviceId:\\.\PHYSICALDRIVE8 model:Generic USB MS Reader USB Device interfaceTypeWmi:USB pnpDeviceId:USBSTOR\DISK&VEN_GENERIC&PROD_USB_MS_READER&REV_1.03\058F312D81B&3 DO:GetDiskInfo pd=8, sp=-1, st=-1, mt= INTERFACE_TYPE_USB usbVendorId=0000, usbProductId=0000 flagTarget && GetDiskInfo while(pEnumCOMDevs ... deviceId:\\.\PHYSICALDRIVE5 model:Generic USB SD Reader USB Device interfaceTypeWmi:USB pnpDeviceId:USBSTOR\DISK&VEN_GENERIC&PROD_USB_SD_READER&REV_1.00\058F312D81B&0 DO:GetDiskInfo pd=5, sp=-1, st=-1, mt= INTERFACE_TYPE_USB usbVendorId=058F, usbProductId=6362 flagTarget && GetDiskInfo while(pEnumCOMDevs ... deviceId:\\.\PHYSICALDRIVE7 model:Generic USB SM Reader USB Device interfaceTypeWmi:USB pnpDeviceId:USBSTOR\DISK&VEN_GENERIC&PROD_USB_SM_READER&REV_1.02\058F312D81B&2 DO:GetDiskInfo pd=7, sp=-1, st=-1, mt= INTERFACE_TYPE_USB usbVendorId=0000, usbProductId=0000 flagTarget && GetDiskInfo OK:SELECT * FROM Win32_DiskDrive DO:SELECT * FROM Win32_DiskPartition OK:SELECT * FROM Win32_DiskPartition OK:Drive Letter Mapping DO:GetDiskInfo GetDiskInfo DoIdentifyDevicePd(4, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) SendAtaCommandPd - IDENTIFY_DEVICE WakeUp(4) DoIdentifyDevicePd(4, 0xA0) - 2 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) SendAtaCommandPd - IDENTIFY_DEVICE DoIdentifyDevicePd(4, 0xB0) - 3 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) SendAtaCommandPd - IDENTIFY_DEVICE DoIdentifyDeviceScsi(-1, -1) - 4 OK:GetDiskInfo - PhysicalDrive OK:qsort CAtaSmart::Init - Complete SendAtaCommandPd - SMART_READ_DATA