Scsi Rewind Failing - Error "Access is Denied"

Discussion in 'MFC' started by hemanth_hp, Mar 21, 2007.

  1. hemanth_hp

    hemanth_hp New Member

    Joined:
    Mar 21, 2007
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Code:
    memset(&stScsiCmd, 0, sizeof(stScsiCmd));
    memset(bRqBuf, 0, sizeof(bRqBuf));
    memset(bCdb, 0, sizeof(bCdb));
    
    bCdb[0] = MTU_REWIND; // Rewind command 01h
    bCdb[1] = IMMMODE; // Immed bit=0
    
    stScsiCmd.sptd.Length = sizeof(SCSI_PASS_THROUGH_DIRECT);
    stScsiCmd.sptd.CdbLength = CDB_GROUP0;
    stScsiCmd.sptd.DataIn = SCSI_IOCTL_DATA_IN;
    stScsiCmd.sptd.SenseInfoLength = sizeof(stScsiCmd.ucSenseBuf); //RQLEN; 
    stScsiCmd.sptd.DataTransferLength = sizeof(bRqBuf);
    stScsiCmd.sptd.TimeOutValue = g_stDeviceData.uiScsiTimeOut;
    stScsiCmd.sptd.DataBuffer = bRqBuf;
    stScsiCmd.sptd.SenseInfoOffset = offsetof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER, ucSenseBuf);
    memcpy(stScsiCmd.sptd.Cdb, bCdb, CDB_GROUP0);
    
    //length = sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER);
    
    iResult = DeviceIoControl(hDevHndl,
    IOCTL_SCSI_PASS_THROUGH_DIRECT,
    &stScsiCmd,
    sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER),
    &stScsiCmd,
    sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER),
    &returned,
    FALSE);
    
    errCode = GetLastError();
    //0 is for failure
    if ((iResult == 0) || (stScsiCmd.sptd.ScsiStatus != 0))
    {
    return -1;
    }
     
    Last edited by a moderator: Mar 21, 2007

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice