| 332 | === On Windows {{{smartctl}}} prints the message: "...Log Read failed: Function not implemented" === |
| 333 | |
| 334 | What is going wrong? |
| 335 | |
| 336 | This means that the device driver does not support the command SMART READ LOG. |
| 337 | ''The message does not indicate a hard disk problem!'' |
| 338 | It does also not mean that the disk itself does not support SMART logs. |
| 339 | It may still be possible to read the logs with a Linux version of smartmontools run from |
| 340 | some [wiki:Download#ListofbootableCDs bootable CD]. |
| 341 | |
| 342 | To access ATA SMART functionality on Windows, smartmontools uses the |
| 343 | I/O control calls |
| 344 | [http://msdn2.microsoft.com/en-us/library/ms804269.aspx SMART_RCV_DRIVE_DATA] and |
| 345 | [http://msdn2.microsoft.com/en-us/library/ms803645.aspx SMART_SEND_DRIVE_CMD]. |
| 346 | These calls were available since Win95 OSR2. |
| 347 | An example program from Microsoft can be found |
| 348 | [http://download.microsoft.com/download/winddk/sample3/9x/W9X/EN-US/SmartApp.exe here] |
| 349 | (the related KB article 208048 is no longer available). |
| 350 | |
| 351 | Starting with NT4, these calls do more restrictive parameter checks. |
| 352 | In particular, the command codes for SMART READ LOG and ABORT SELF-TEST |
| 353 | are not accepted. To perform these functions, smartmontools uses the |
| 354 | undocumented functions SCSIOP_ATA_PASSTHROUGH (NT4) or |
| 355 | IOCTL_IDE_PASS_THROUGH (2000/XP) instead. |
| 356 | An example program using these calls can be found |
| 357 | [ftp://ftp.heise.de/pub/ct/listings/0207-218.zip here], |
| 358 | a related newsgroup thread is |
| 359 | [http://groups.google.com/group/microsoft.public.development.device.drivers/browse_frm/thread/e9763262823e11d1 here]. |
| 360 | |
| 361 | Unfortunately, these undocumented functions are not implemented in |
| 362 | most vendor specific ATA device drivers. {{{smartctl}}} prints a |
| 363 | "Function not implemented" message in this case. |
| 364 | |
| 365 | A new I/O control call |
| 366 | [http://msdn2.microsoft.com/en-us/library/ms804551.aspx IOCTL_ATA_PASS_THROUGH] |
| 367 | is available since Win2003 and XP SP2. |
| 368 | It should be supported by most new drivers. Experimental code using |
| 369 | this call was added 2006-04-27 and is included in smartmontools |
| 370 | release 5.37. |
| 371 | |
| 372 | ---- |
| 373 | |
563 | | <h3><a name="FAQ-win-ioctl"></a>On Windows, <tt>smartctl</tt> prints the |
564 | | message: "...Log Read failed: Function not implemented". What is going wrong?</h3> |
565 | | |
566 | | <p>This means that the device driver does not support the command SMART READ LOG. |
567 | | <span class="marked">The message does not indicate a hard disk problem!</span> |
568 | | It does also not mean that the disk itself does not support SMART logs. |
569 | | It may still be possible to read the logs with a Linux version of smartmontools run from |
570 | | some <a href="faq.html#bootable">bootable CD</a>.</p> |
571 | | |
572 | | <p>To access ATA SMART functionality on Windows, smartmontools uses the |
573 | | I/O control calls |
574 | | <a href="http://msdn2.microsoft.com/en-us/library/ms804269.aspx"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SMART_RCV_DRIVE_DATA</a> and |
575 | | <a href="http://msdn2.microsoft.com/en-us/library/ms803645.aspx"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SMART_SEND_DRIVE_CMD</a>. |
576 | | These calls were available since Win95 OSR2. |
577 | | An example program from Microsoft can be found |
578 | | <a href="http://download.microsoft.com/download/winddk/sample3/9x/W9X/EN-US/SmartApp.exe"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a> |
579 | | (the related KB article 208048 is no longer available).</p> |
580 | | |
581 | | <p>Starting with NT4, these calls do more restrictive parameter checks. |
582 | | In particular, the command codes for SMART READ LOG and ABORT SELF-TEST |
583 | | are not accepted. To perform these functions, smartmontools uses the |
584 | | undocumented functions SCSIOP_ATA_PASSTHROUGH (NT4) or |
585 | | IOCTL_IDE_PASS_THROUGH (2000/XP) instead. |
586 | | An example program using these calls can be found |
587 | | <a href="ftp://ftp.heise.de/pub/ct/listings/0207-218.zip"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>, |
588 | | a related newsgroup thread is |
589 | | <a href="http://groups.google.com/group/microsoft.public.development.device.drivers/browse_frm/thread/e9763262823e11d1"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>.</p> |
590 | | |
591 | | <p>Unfortunately, these undocumented functions are not implemented in |
592 | | most vendor specific ATA device drivers. <tt>Smartctl</tt> prints a |
593 | | "Function not implemented" message in this case.</p> |
594 | | |
595 | | <p>A new I/O control call |
596 | | <a href="http://msdn2.microsoft.com/en-us/library/ms804551.aspx"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />IOCTL_ATA_PASS_THROUGH</a> |
597 | | is available since Win2003 and XP SP2. |
598 | | It should be supported by most new drivers. Experimental code using |
599 | | this call was added 2006-04-27 and is included in smartmontools |
600 | | release 5.37.</p> |
| 605 | |