Naraeon SSD Tools internals – 7. Get diagnostic information(SMART) from SATA devices

Necessity I think this part doesn’t need any further explanation about necessity. Because this part is the reason of existence of disk management tool. With this, we can manage devices’ status, and catches subtle failures that can be easily ignored by users, to prevent big failure. S.M.A.R.T: Self-Monitoring, Analysis, and Reporting Technology As the name […]

(스포일러 주의) 두근두근 문예부와 자체 수정 코드

인터넷에서 두근두근 문예부라는 게임이 유행인 모양이다. 독자들 역시 픽션과 현실을 구분을 잘 하므로 설정들을 진지하게 받아들이는 사람은 없을 것이다. 그러나 한 십 년 전에 각종 픽션들을 과학적으로 증명해보는 시리즈가 유행했듯, 우리도 한 번 검증해볼 수는 있지 않을까. 까놓고 얘기하면 Ren’Py라는 그 장르를 위한 스크립트 언어로 제작한 건데 이 악물고 이러니 저러니 하는 것도 이상할 것이다. […]

Naraeon SSD Tools internals – 6. Identify SATA devices

Necessity Last time, I introduced ATAPI command standard, ACS-3. I said about some definitions and introduced how we can issue a command to SATA devices. In this time, we would see implementation to issue identify device command in Naraeon SSD Tools. Identify (Identify device) In fourth, I said about Identify command like this. BIOS and device […]

Naraeon SSD Tools internals – 5. Introduction to SATA commands

Necessity Though NVMe devices are now widely spread, SATA devices are majority. Most of the SSDs connected with PC using SATA interface, and definitely HDDs do. To get information about them, knowledge about their language, ATAPI is mandatory. Naraeon SSD Tools implemented based on SATA, and results from other devices converted to SATA form. When […]

Naraeon SSD Tools internals – 4. Command set and Interpreting buffer

Necessity I think reason for visiting my blog is in this. Function that includes all features other than Read, Write, Open, Close, ioctl. Called DeviceIoControl in winapi. In undergraduate course, there would be only introduction about this function. I also firstly had no idea about where to find information to use ioctls. So I would write about […]

Naraeon SSD Tools internals – 3. Physical drive abstraction

Necessity Physical drives have various features. From these features, TPhysicalDrive abstracts some of them those are needed to Naraeon SSD Tools. Internally, the object just passes the request to right object. There are objects process these requests. Firstly, there is an object that issue adequate command to the bus directly(ATA, SCSI, NVMe, …).  And there is […]

Naraeon SSD Tools internals – 2. Objects pointing path

Necessity Naraeon SSD Tools has various objects those need path. From TPhysicalDrive as the name shows, a lot of Getter objects need the destination drive path. Other than that, some objects require path of a partition. In those cases, it is reasonable to memorize the path and use many times. Someone would think this is […]

Naraeon SSD Tools internals – 1. How to get PhysicalDrive list

Foreword In this series, I would write about internals of Naraeon SSD Tools. So people who implements some subset of this would get some help. This series includes things I asked about. If you have further questions, feel free to email me. But I would not get request about translating code snippet from Delphi to […]

Windows 10 NVMe Commands

Finally, from Windows 10, NVM Express Admin Command passthrough interface has arrived. Windows 10 provides two IOCTLs, IOCTL_STORAGE_QUERY_PROPERTY and IOCTL_STORAGE_PROTOCOL_COMMAND. Then you would think that second one would be one-size-fits-all IOCTL, but it’s not. That one can only be used for “Vendor specific” command. Therefore, only three commands in known commands can be used. If […]