| | 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 | |