-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Would you please provide a usage example of the IOCTL_STORAGE_PROTOCOL_COMMAND by the DeviceIoControl? #9
Comments
Kouichi, thanks for bringing this to our attention. We're preparing a new doc page to describe the correct usage of this IOCTL. We'll share a link to that when it's live. |
Any updates on the new doc? https://msdn.microsoft.com/en-us/library/windows/hardware/dn931814(v=vs.85).aspx |
I found already those documents when I opened this issue. Even if it was updated, I think it is not enough information to use this IOCTL. // And I tried to make a sample program with these information but it was not working correctly. |
Any update on this? Does a new doc explained relations between the IOCTL_STORAGE_PROTOCOL_COMMAND and the Common Effect Log of NVMe v1.2 spec? And, Dose the document explain how to use extended buffers([Data-to-Device Buffer] [Data-from-Device Buffer]) with vender command? |
Hi, sirosiro |
Hi, psycholliu, https://msdn.microsoft.com/en-us/library/windows/desktop/mt718131(v=vs.85).aspx This page explaining to how to sending a vendor-specific command, but I don't tried it yet. |
Hi sirosiro, |
I too am stuck on the 0x87 error. The bug whether it be documentation or otherwise has been reported to Microsoft. It has just moved into the active state. I too tried many variations of the sample code with no luck. I get the 87 result with about anything I do which leads me to believe this command does not work at all meaning it is not coming down to command registers or buffers. |
IOCTL_STORAGE_PROTOCOL_COMMAND is intended for sending vendor-specific commands only. Also your NVMe drive must support CEL. |
markg1 highlighted the problem in your experiments. And they are documented at https://msdn.microsoft.com/en-us/library/windows/desktop/mt718131(v=vs.85).aspx |
IOCTL_STORAGE_PROTOCOL_COMMAND is intended for sending vendor-specific commands only. How can I get a namespace list? You block pass-through Identify, and you don't support Identify CNS 02 with IOCTL_STORAGE_QUERY_PROPERTY. Have you considered not blocking commands that don't do any damage, or do you actually have a rationale behind forcing the use of incomplete and needlessly complicated abstraction layers for completely harmless commands? |
I have not tried this, but based on nvme.h and provided info, I would suggest you try protocolData->ProtocolDataRequestValue = NVME_IDENTIFY_CNS_CONTROLLER; Good luck. |
I try, but it can't work @@ |
Please refer to https://docs.microsoft.com/en-us/windows-hardware/drivers/storage/nvme-features-supported-by-stornvme for any clarifications on command supported Currently, IOCTL_STORAGE_QUERY_PROPERTY with identify option NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES is not supported |
I have been looking for it but I couldn't find it anywhere, and I was tried to make it myself but it was not work correctly.
The text was updated successfully, but these errors were encountered: