Windows 10의 NVMe 명령어들

드디어 나온 Windows 10의 NVM Express Admin Command 명령어들에 대해서 알아보자.

Windows 10에서 제공하는 IOCTL 코드는 IOCTL_STORAGE_QUERY_PROPERTY와 IOCTL_STORAGE_PROTOCOL_COMMAND 두 가지다. 그렇다면 후자를 사용하면 모든 명령어에 대한 일반적인 구현이 가능할 거라 생각할 거다. 아니다. 후자는 지정된 “Vendor specific” 명령어만 사용할 수 있다. 따라서 우리가 알고 있는 일반적인 명령어는 다음의 세 가지만 사용할 수 있는 거다. 만약 다른 명령에 대해 passthrough를 원한다면 ‘나래온 NVMe 툴‘ 카테고리의 다른 글들을 보시라.

  1. Identify
  2. Get Log Page
  3. Get Features

다만 문제가 하나 있는데, Get Features의 경우 07h(Number of Queues)를 가져오는 데 오류를 발생시킨다. 2017년 2월 현재 해당 문제가 발생하지 않는 드라이버는, 삼성 NVMe 드라이버 2.1버전 하나 뿐이다. 다른 제품의 경우는 역시 ‘나래온 NVMe 툴‘ 카테고리의 다른 글들을 참고해 다른 방법으로 시도하기 바란다.

풀버전 소스

Delphi
C++ (Identify)
C++ (Get Features)