
--------------------------------------------------------------------------------
http://msdn.microsoft.com/en-us/library/aa509041.aspx

The SCSI Pass Through Interface sample demonstrates how to communicate with a SCSI device from MIcrosoft Win32 applications by using the DeviceIoControl API. 




--------------------------------------------------------------------------------
http://support.microsoft.com/?scid=kb%3Ben-us%3B251369&x=17&y=10

INFO: SCSI Pass Through Functionality and Limitations

- A Win32 program uses DeviceIoControl with the IoControlCode of IOCTL_SCSI_PASS_THROUGH or IOCTL_SCSI_PASS_THROUGH_DIRECT
- 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. 




--------------------------------------------------------------------------------
http://support.microsoft.com/kb/241374/EN-US/

    // Open the device for SCSI pass through requests.  Make
    // sure to specify both GENERIC_READ and GENERIC_WRITE
    // or the SCSI pass through request will fail.

    hDevice = CreateFile("\\\\.\\F:,
                         GENERIC_READ | GENERIC_WRITE,
                         FILE_SHARE_READ | FILE_SHARE_WRITE,
                         NULL, 
                         OPEN_EXISTING, 
                         FILE_ATTRIBUTE_NORMAL,
                         NULL
                         );

    // Check that CreateFile worked.  If it fails, it returns
    // an invalid handle.

    if (INVALID_HANDLE_VALUE == hDevice) {
    
        dwErrorCode = GetLastError();
        printf("CreateFile failed.  Error %d \n", dwErrorCode);
        return dwErrorCode;
    }



--------------------------------------------------------------------------------
http://support.microsoft.com/?scid=kb%3Ben-us%3B264203&x=11&y=14

- Enumdisk1.exe: Enumdisk Sample for Enumerating Disk Devices




--------------------------------------------------------------------------------
http://www.microsoft.com/whdc/Devtools/wdk/default.mspx

- Windows Driver Kit (WDK). The WDK is a fully integrated driver development system that contains the Windows Driver Device Kit (DDK) and tests for stability and reliability of Windows drivers, including the following:

2003 DDK:  http://www.microsoft.com/whdc/DevTools/ddk/default.mspx#



--------------------------------------------------------------------------------
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2756432&SiteID=1&pageid=0

- Re: Send SCSI Command Fail in Vista  

-Try these sequence.
   You already got the handle via "Volume" which is good.
   Next you need to lock the volume via DeviceIoControl with "FSCTL_LOCK_VOLUME".
   Do your SCSI Write.
   Unlock the volume afterwards  via DeviceIoControl with "FSCTL_UNLOCK_VOLUME".




--------------------------------------------------------------------------------
http://www.osronline.com/ddkx/ddk2.htm

- The Microsoft Windows DDK Docs Online!



--------------------------------------------------------------------------------
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
- Windows Server 2003 SP1 Platform SDK Web Install

http://www.microsoft.com/downloads/details.aspx?familyid=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en
- Windows SDK for Windows Server 2008 and .NET Framework 3.5



--------------------------------------------------------------------------------
http://msdn.microsoft.com/en-us/library/ms792959.aspx



SetupDiGetClassDevs                 --   http://msdn.microsoft.com/en-us/library/ms792959.aspx

SetupDiEnumDeviceInterfaces         --   http://msdn.microsoft.com/en-us/library/ms791242.aspx
 
SetupDiGetDeviceInterfaceDetail     --   


those who do not understand unix are condemned to reinvent it. poorly.


why this sucks:
http://club.cdfreaks.com/f52/aspi-manage-scsi-robotics-devices-227791/
