1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

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