A driver can use IOCTL_STORAGE_PROTOCOL_COMMAND to pass vendor-specific commands to a storage device.
Input buffer length
The driver returns the results of the vendor-specific command to the buffer at Irp->AssociatedIrp.SystemBuffer. Cast the structure returned to a STORAGE_PROTOCOL_COMMAND and check its ReturnStatus field to determine the status of the command request.
Output buffer length
Parameters.DeviceIoControl.OutputBufferLength in the I/O stack location indicates the size, in bytes, of the parameter buffer, which must be >= sizeof(STORAGE_PROTOCOL_COMMAND).
The Information field is set to the number of bytes returned. The Status field is set to STATUS_SUCCESS, or possibly to STATUS_INSUFFICIENT_RESOURCES.
|Minimum supported client||Windows 10|
|Minimum supported server||Windows Server 2016|
|Header||ntddstor.h (include Ntddstor.h)|