Microsoft KB Archive/251369
INFO: SCSI Pass Through Functionality and Limitations
The information in this article applies to:
- Microsoft Windows NT 4.0 Driver Development Kit (DDK)
- Microsoft Windows 2000 Driver Development Kit (DDK)
On Windows NT and Windows 2000, the interface used in an application to send SCSI commands to a SCSI device is called SCSI Pass Through (SPT). A Win32 program uses DeviceIoControl with the IoControlCode of IOCTL_SCSI_PASS_THROUGH or IOCTL_SCSI_PASS_THROUGH_DIRECT. This article explains some of the functionality and limitations of the SCSI Pass Through interface.
The SPT requests are always synchronous. Even if the caller has specified overlapped I/O (FILE_FLAG_OVERLAPPED) and passed the overlapped structure to the DeviceIoControl call, the ScsiPort driver will block the SPT request until the SCSI device completes it.
When completed by the SCSI device (success or error), ScsiPort will complete the SPT request and the calling thread will be unblocked.
A SCSI command can be send to the SCSI device as either untagged or tagged. Untagged queuing permits a device to accept commands from an initiator while executing commands from another. Tagged queuing gives the device the ability to accept a series of commands from the same or different initiators. The SPT always uses untagged queuing while sending commands to the device.
The SPT interface is documented in the Windows NT/Windows 2000 DDK documentation.
For additional information on the SPT interface, click the article numbers below to view the articles in the Microsoft Knowledge Base:
Q137247 IOCTL_SCSI_MINIPORT and IOCTL_SCSI_PASS_THROUGH Limitations
Q241374 INFO: Read and Write Access Required for SCSI Pass Through Request
There is sample program (SPTI) available in the DDK that demonstrates the SPT interface. It can be found in the \Ddk\Src\Storage\Class\Spti folder.
Additional query words: spti IOCTL_SCSI_PASS_THROUGH IOCTL_SCSI_PASS_THROUGH_DIRECT
Keywords : kbDDK kbOSWinNT400 kbOSWin2000 kbStorageDev kbDSupport kbGrpDSNTDDK
Issue type : kbinfo
Technology : kbWinNTsearch kbWinNT400xsearch kbwin2000Search kbwin2000DDK kbAudDeveloper kbWinDDKSearch kbWinNT400DDK
Last Reviewed: February 7, 2000