CAtaSmart::Init WMI on - Start CoInitialize() CoInitializeSecurity() CoCreateInstance() ConnectServer() CoSetProxyBlanket() OK:WMI Init OK:Win32_IDEController OK:Win32_SCSIController OK:Win32_USBController OK:Win32_1394Controller DO:SELECT * FROM Win32_DiskDrive DO:GetDiskInfo pd=1, sp=1, st=1 GetDiskInfo(physicalDriveId, scsiPort, scsiTargetId, vars.GetCount() > MAX_DISK Check overlap interfaceType == INTERFACE_TYPE_UNKNOWN ... SendAtaCommandPd CMD_IDE_PATH_THROUGH CMD_IDE_PATH_THROUGH:memcpy_s DFP_RECEIVE_DRIVE_DATA DFP_RECEIVE_DRIVE_DATA:memcpy_s physicalDriveId >= 0 && DoIdentifyDevicePd(physicalDriveId, &identify) ATA_SMART_INFO asi; CheckAsciiStringError Hitachi HDS721616PLAT80 € Hitachi HDS721616PLAT80 P22OA8BA asi.Model.IsEmpty() || asi.FirmwareRev.IsEmpty() Check S.M.A.R.T. Enabled or Diabled CMD_TYPE_PHYSICAL_DRIVE for(int i = 0; i < vars.GetCount(); i++) vars.Add(asi); int index = (int)vars.GetCount() - 1; OK:Check Model Name DO:GetDiskInfo pd=0, sp=0, st=0 GetDiskInfo(physicalDriveId, scsiPort, scsiTargetId, vars.GetCount() > MAX_DISK Check overlap interfaceType == INTERFACE_TYPE_UNKNOWN ... SendAtaCommandPd CMD_IDE_PATH_THROUGH CMD_IDE_PATH_THROUGH:memcpy_s DFP_RECEIVE_DRIVE_DATA DFP_RECEIVE_DRIVE_DATA:memcpy_s physicalDriveId >= 0 && DoIdentifyDevicePd(physicalDriveId, &identify) ATA_SMART_INFO asi; CheckAsciiStringError Hitachi HDS721680PLAT80 € Hitachi HDS721680PLAT80 P21OA60A asi.Model.IsEmpty() || asi.FirmwareRev.IsEmpty() Check S.M.A.R.T. Enabled or Diabled CMD_TYPE_PHYSICAL_DRIVE for(int i = 0; i < vars.GetCount(); i++) vars.Add(asi); int index = (int)vars.GetCount() - 1; OK:Check Model Name OK:SELECT * FROM Win32_DiskDrive OK:Drive Letter Mapping OK:CoUninitialize() vars.GetCount() > MAX_DISK Check overlap Check overlap : physicalDriveId >= 0 vars.GetCount() > MAX_DISK Check overlap Check overlap : physicalDriveId >= 0 OK:GetDiskInfo - PhysicalDrive CAtaSmart::Init - Complete