Changeset 7234 for trunk/src


Ignore:
Timestamp:
Oct 27, 2001, 10:26:06 AM (24 years ago)
Author:
sandervl
Message:

IOCTL_SCSI_GET_ADDRESS: fail if wnaspi32 not loaded

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/hmdisk.cpp

    r7224 r7234  
    1 /* $Id: hmdisk.cpp,v 1.22 2001-10-26 19:22:15 sandervl Exp $ */
     1/* $Id: hmdisk.cpp,v 1.23 2001-10-27 08:26:06 sandervl Exp $ */
    22
    33/*
     
    2626
    2727#define BIT_0     (1)
     28#define BIT_1     (2)
     29#define BIT_2     (4)
    2830#define BIT_11    (1<<11)
    2931
     
    902904        }
    903905        else {
    904             dprintf(("IOCTL_STORAGE_CHECK_VERIFY incompletely implemented"));
     906#pragma pack(1)
     907      typedef struct
     908      {
     909        BYTE  ucCommandInfo;
     910        WORD  usDriveUnit;
     911      } ParameterBlock;
     912#pragma pack()
     913
     914            DWORD parsize = sizeof(ParameterBlock);
     915            DWORD datasize = 2;
     916            WORD status = 0;
     917            DWORD rc;
     918            ParameterBlock parm;
     919
     920            parm.ucCommandInfo = 0;
     921            parm.usDriveUnit = drvInfo->driveLetter - 'A';
     922            //IOCTL_DISK (0x08), DSK_GETLOCKSTATUS (0x66)
     923            rc = OSLibDosDevIOCtl(pHMHandleData->hHMHandle, 0x08, 0x66, &parm, sizeof(parm), &parsize,
     924                                  &status, sizeof(status), &datasize);
     925            if(rc != NO_ERROR) {
     926                dprintf(("OSLibDosDevIOCtl failed with rc %d", rc));
     927                return FALSE;
     928            }
     929            dprintf(("Disk status 0x%x", status));
     930            dprintf(("WARNING: IOCTL_DISK_CHECK_VERIFY not properly implemented!!"));
     931            //TODO: this doesn't seem to work
     932            //if no disk present, return FALSE
     933//            if(!(status & (BIT_2))) {
     934//                SetLastError(ERROR_NOT_READY);  //NT4, SP6 returns this
     935//                return FALSE;
     936//            }
     937            SetLastError(NO_ERROR);
     938            return TRUE;
    905939        }
    906940        SetLastError(NO_ERROR);
     
    10371071
    10381072        if(drvInfo->hInstAspi == NULL) {
    1039             //Don't fail if wnaspi32 not loaded
    1040             addr->TargetId   = 0;
    1041             addr->Lun        = 0;
    1042             SetLastError(ERROR_SUCCESS);
    1043             return TRUE;
     1073            SetLastError(ERROR_ACCESS_DENIED);
     1074            return FALSE;
    10441075        }
    10451076
Note: See TracChangeset for help on using the changeset viewer.