Ignore:
Timestamp:
Jan 12, 2003, 5:19:37 PM (23 years ago)
Author:
sandervl
Message:

Ported & extended QueryDosDeviceA/W; implemented IOCTL_SCSI_GET_CAPABILITIES; don't fail CDIO init if media not present

File:
1 edited

Legend:

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

    r9333 r9663  
    1 /* $Id: hmdisk.cpp,v 1.59 2002-10-07 16:42:13 sandervl Exp $ */
     1/* $Id: hmdisk.cpp,v 1.60 2003-01-12 16:19:37 sandervl Exp $ */
    22
    33/*
     
    16321632
    16331633    case IOCTL_SCSI_GET_CAPABILITIES:
    1634         break;
     1634    {
     1635        PIO_SCSI_CAPABILITIES pPacket = (PIO_SCSI_CAPABILITIES)lpOutBuffer;
     1636
     1637        if(nOutBufferSize < sizeof(IO_SCSI_CAPABILITIES) ||
     1638           !pPacket || pPacket->Length < sizeof(IO_SCSI_CAPABILITIES))
     1639        {
     1640            SetLastError(ERROR_INSUFFICIENT_BUFFER);
     1641            return FALSE;
     1642        }
     1643        if(!drvInfo || drvInfo->fCDIoSupported == FALSE) {
     1644            dprintf(("os2cdrom.dmd CD interface not supported!!"));
     1645            SetLastError(ERROR_ACCESS_DENIED);
     1646            return FALSE;
     1647        }
     1648        if(lpBytesReturned) {
     1649            *lpBytesReturned = 0;
     1650        }
     1651        pPacket->MaximumTransferLength = 128*1024;
     1652        pPacket->MaximumPhysicalPages  = 64*1024;
     1653        pPacket->SupportedAsynchronousEvents = FALSE;
     1654        pPacket->AlignmentMask         = -1;
     1655        pPacket->TaggedQueuing         = FALSE;
     1656        pPacket->AdapterScansDown      = FALSE;
     1657        pPacket->AdapterUsesPio        = FALSE;
     1658        if(lpBytesReturned)
     1659            *lpBytesReturned = sizeof(*pPacket);
     1660
     1661        SetLastError(ERROR_SUCCESS);
     1662        return TRUE;
     1663    }
    16351664
    16361665    case IOCTL_SCSI_PASS_THROUGH:
Note: See TracChangeset for help on using the changeset viewer.