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 --ControllerMap-- + Intel(R) 5 Series/3400 Series SATA AHCI Controller [ATA] - Hitachi HDS721010CLA332 - Hitachi HDS723020BLA642 - Hitachi HDS722020ALA330 + Marvell 61xx RAID Controller [SCSI] - Marvell Virtual Device + Marvell 91xx SATA 6G Controller [SCSI] - M4-CT128 M4SSD2 SCSI Disk Device - Hitachi HDS5C3020ALA632 SCSI Disk Device OK:Win32_USBController WakeUp(0) WakeUp(1) WakeUp(2) WakeUp(4) WakeUp(5) DoIdentifyDeviceCsmi GetSmartAttributeCsmi FillSmartData GetSmartAttributeCsmi FillSmartData GetSmartThresholdCsmi FillSmartThreshold DoIdentifyDeviceCsmi GetSmartAttributeCsmi FillSmartData GetSmartAttributeCsmi FillSmartData GetSmartThresholdCsmi FillSmartThreshold DoIdentifyDeviceCsmi GetSmartAttributeCsmi FillSmartData GetSmartAttributeCsmi FillSmartData GetSmartThresholdCsmi FillSmartThreshold DoIdentifyDeviceCsmi GetSmartAttributeCsmi FillSmartData GetSmartAttributeCsmi FillSmartData GetSmartThresholdCsmi FillSmartThreshold DoIdentifyDeviceCsmi GetSmartAttributeCsmi FillSmartData GetSmartAttributeCsmi FillSmartData GetSmartThresholdCsmi FillSmartThreshold DoIdentifyDeviceCsmi GetSmartAttributeCsmi FillSmartData GetSmartAttributeCsmi FillSmartData GetSmartThresholdCsmi FillSmartThreshold DO:SELECT * FROM Win32_DiskDrive OK1:SELECT * FROM Win32_DiskDrive while(pEnumCOMDevs ... diskSize:1000202273280 deviceId:\\.\PHYSICALDRIVE0 model:Hitachi HDS721010CLA332 mediaType:Fixed hard disk media interfaceTypeWmi:IDE pnpDeviceId:IDE\DISKHITACHI_HDS721010CLA332_________________JP4OA3MA\4&3076FC63&0&0.0.0 DO:GetDiskInfo pd=0, sp=0, st=0, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(0, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) AddDisk(0, 0, 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:2000396321280 deviceId:\\.\PHYSICALDRIVE2 model:Hitachi HDS722020ALA330 mediaType:Fixed hard disk media interfaceTypeWmi:IDE pnpDeviceId:IDE\DISKHITACHI_HDS722020ALA330_________________JKAOA3EA\4&3076FC63&0&0.2.0 DO:GetDiskInfo pd=2, sp=0, st=2, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(2, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) AddDisk(2, 0, 2) - 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:2000396321280 deviceId:\\.\PHYSICALDRIVE1 model:Hitachi HDS723020BLA642 mediaType:Fixed hard disk media interfaceTypeWmi:IDE pnpDeviceId:IDE\DISKHITACHI_HDS723020BLA642_________________MN6OA800\4&3076FC63&0&0.1.0 DO:GetDiskInfo pd=1, sp=0, st=1, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(1, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) AddDisk(1, 0, 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:2000396321280 deviceId:\\.\PHYSICALDRIVE5 model:Hitachi HDS5C3020ALA632 SCSI Disk Device mediaType:Fixed hard disk media interfaceTypeWmi:SCSI pnpDeviceId:SCSI\DISK&VEN_HITACHI&PROD_HDS5C3020ALA632&REV_ML6O\7&24833039&0&000100 DO:GetDiskInfo pd=5, sp=2, st=1, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(5, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) SendAtaCommandPd - IDENTIFY_DEVICE AddDisk(5, 2, 1) - 6 GetSmartAttributePd(5) - 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:128034708480 deviceId:\\.\PHYSICALDRIVE4 model:M4-CT128 M4SSD2 SCSI Disk Device mediaType:Fixed hard disk media interfaceTypeWmi:SCSI pnpDeviceId:SCSI\DISK&VEN_M4-CT128&PROD_M4SSD2&REV_0309\7&24833039&0&000000 DO:GetDiskInfo pd=4, sp=2, st=0, mt=fixed hard disk media flagTarget && GetDiskInfo GetDiskInfo DoIdentifyDevicePd(4, 0xA0) - 1 SendAtaCommandPd - IDENTIFY_DEVICE (ATA_PASS_THROUGH) SendAtaCommandPd - IDENTIFY_DEVICE AddDisk(4, 2, 0) - 6 GetSmartAttributePd(4) - 1 SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_DATA SendAtaCommandPd - SMART_READ_THRESHOLDS int index = (int)vars.GetCount() - 1; OK:Check Model Name uReturned != 1 OK2:SELECT * FROM Win32_DiskDrive OK:GetDiskInfo - PhysicalDrive OK:qsort Drive Letter Mapping - Start A:\ Drive Letter Mapping - != DRIVE_FIXED B:\ Drive Letter Mapping - != DRIVE_FIXED C:\ \\.\C: volumeDiskExtents.NumberOfDiskExtents = 1 n = 0, pDiskExtent->DiskNumber = 4 D:\ \\.\D: volumeDiskExtents.NumberOfDiskExtents = 1 n = 0, pDiskExtent->DiskNumber = 0 E:\ \\.\E: volumeDiskExtents.NumberOfDiskExtents = 1 n = 0, pDiskExtent->DiskNumber = 5 F:\ \\.\F: volumeDiskExtents.NumberOfDiskExtents = 1 n = 0, pDiskExtent->DiskNumber = 1 G:\ \\.\G: volumeDiskExtents.NumberOfDiskExtents = 1 n = 0, pDiskExtent->DiskNumber = 2 H:\ Drive Letter Mapping - != DRIVE_FIXED I:\ Drive Letter Mapping - != DRIVE_FIXED J:\ Drive Letter Mapping - != DRIVE_FIXED K:\ Drive Letter Mapping - != DRIVE_FIXED L:\ Drive Letter Mapping - != DRIVE_FIXED M:\ Drive Letter Mapping - != DRIVE_FIXED N:\ Drive Letter Mapping - != DRIVE_FIXED O:\ Drive Letter Mapping - != DRIVE_FIXED P:\ Drive Letter Mapping - != DRIVE_FIXED Q:\ Drive Letter Mapping - != DRIVE_FIXED R:\ Drive Letter Mapping - != DRIVE_FIXED S:\ Drive Letter Mapping - != DRIVE_FIXED T:\ Drive Letter Mapping - != DRIVE_FIXED U:\ Drive Letter Mapping - != DRIVE_FIXED V:\ Drive Letter Mapping - != DRIVE_FIXED W:\ Drive Letter Mapping - != DRIVE_FIXED X:\ Drive Letter Mapping - != DRIVE_FIXED Y:\ Drive Letter Mapping - != DRIVE_FIXED Z:\ Drive Letter Mapping - != DRIVE_FIXED Drive Letter Mapping - End D F G C E CAtaSmart::Init - Complete SendAtaCommandPd - SMART_READ_DATA