Ignore:
Timestamp:
Nov 8, 2001, 4:38:43 PM (24 years ago)
Author:
phaller
Message:

.

File:
1 edited

Legend:

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

    r7300 r7301  
    1 /* $Id: hmparport.cpp,v 1.2 2001-11-08 15:10:39 phaller Exp $ */
     1/* $Id: hmparport.cpp,v 1.3 2001-11-08 15:38:43 phaller Exp $ */
    22
    33/*
     
    9292  ULONG ulMagic;
    9393  // Win32 Device Control Block
     94  COMMCONFIG   CommCfg;
    9495  //OS/2 Device Control Block
    9596} HMDEVPARPORTDATA, *PHMDEVPARPORTDATA;
     
    103104    memset(pData,0,sizeof(HMDEVPARPORTDATA));
    104105    pData->ulMagic = MAGIC_PARPORT;
     106    pData->CommCfg.dwSize   = sizeof(COMMCONFIG);
     107    pData->CommCfg.wVersion = 1;
     108    pData->CommCfg.dwProviderSubType = PST_PARALLELPORT;
    105109  }
    106110  return pData;
     
    554558  return(rc==0);
    555559}
     560
     561
     562BOOL HMDeviceParPortClass::DeviceIoControl(PHMHANDLEDATA pHMHandleData, DWORD dwIoControlCode,
     563                             LPVOID lpInBuffer, DWORD nInBufferSize,
     564                             LPVOID lpOutBuffer, DWORD nOutBufferSize,
     565                             LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)
     566{
     567#ifdef DEBUG
     568    char *msg = NULL;
     569
     570    switch(dwIoControlCode)
     571    {
     572/**
     573    case IOCTL_DISK_FORMAT_TRACKS:
     574        msg = "IOCTL_DISK_FORMAT_TRACKS";
     575        break;
     576*/
     577    }
     578 
     579    if(msg) {
     580        dprintf(("HMDeviceParPortClass::DeviceIoControl %s %x %d %x %d %x %x", msg, lpInBuffer, nInBufferSize,
     581                 lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped));
     582    }
     583#endif
     584
     585    switch(dwIoControlCode)
     586    {
     587//    case IOCTL_SCSI_RESCAN_BUS:
     588//        break;
     589
     590    }
     591    dprintf(("HMDeviceParPortClass::DeviceIoControl: unimplemented dwIoControlCode=%08lx\n", dwIoControlCode));
     592    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     593    return FALSE;
     594}
     595
     596
     597BOOL HMDeviceParPortClass::SetDefaultCommConfig( PHMHANDLEDATA pHMHandleData,
     598                                                LPCOMMCONFIG lpCC,
     599                                                DWORD dwSize)
     600{
     601  PHMDEVPARPORTDATA pDevData = (PHMDEVPARPORTDATA)pHMHandleData->lpDeviceData;
     602  if((NULL==pDevData) || (pDevData->ulMagic != MAGIC_PARPORT) )
     603  {
     604    SetLastError(ERROR_INVALID_HANDLE);
     605    return FALSE;
     606  }
     607  memset(&pDevData->CommCfg,0, sizeof(COMMCONFIG));
     608  memcpy(&pDevData->CommCfg,lpCC,dwSize>sizeof(COMMCONFIG)?sizeof(COMMCONFIG):dwSize);
     609
     610  return(TRUE);
     611}
     612
     613
     614BOOL HMDeviceParPortClass::GetDefaultCommConfig( PHMHANDLEDATA pHMHandleData,
     615                                                LPCOMMCONFIG lpCC,
     616                                                LPDWORD lpdwSize)
     617{
     618  PHMDEVPARPORTDATA pDevData = (PHMDEVPARPORTDATA)pHMHandleData->lpDeviceData;
     619
     620  if( O32_IsBadWritePtr(lpCC,sizeof(COMMCONFIG)) ||
     621      *lpdwSize< sizeof(COMMCONFIG) )
     622  {
     623    SetLastError(ERROR_INSUFFICIENT_BUFFER);
     624    *lpdwSize= sizeof(COMMCONFIG);
     625    return FALSE;
     626  }
     627
     628  if((NULL==pDevData) || (pDevData->ulMagic != MAGIC_PARPORT) )
     629  {
     630    SetLastError(ERROR_INVALID_HANDLE);
     631    return FALSE;
     632  }
     633
     634  memcpy(lpCC,&pDevData->CommCfg,sizeof(COMMCONFIG));
     635  *lpdwSize = sizeof(COMMCONFIG);
     636  return(TRUE);
     637}
     638
     639
     640BOOL HMDeviceParPortClass::SetCommConfig( PHMHANDLEDATA pHMHandleData,
     641                                         LPCOMMCONFIG lpCC,
     642                                         DWORD dwSize )
     643{
     644  dprintf(("HMDeviceParPortClass::SetCommConfig not implemented"));
     645
     646
     647  return(TRUE);
     648}
     649
     650
     651BOOL HMDeviceParPortClass::GetCommConfig( PHMHANDLEDATA pHMHandleData,
     652                                         LPCOMMCONFIG lpCC,
     653                                         LPDWORD lpdwSize )
     654{
     655  PHMDEVPARPORTDATA pDevData = (PHMDEVPARPORTDATA)pHMHandleData->lpHandlerData;
     656
     657  dprintf(("HMDeviceParPortClass::GetCommConfig"));
     658
     659  if( O32_IsBadWritePtr(lpCC,sizeof(COMMCONFIG)) ||
     660      *lpdwSize< sizeof(COMMCONFIG) )
     661  {
     662    SetLastError(ERROR_INSUFFICIENT_BUFFER);
     663    *lpdwSize= sizeof(COMMCONFIG);
     664    return FALSE;
     665  }
     666
     667  if((NULL==pDevData) || (pDevData->ulMagic != MAGIC_PARPORT) )
     668  {
     669    SetLastError(ERROR_INVALID_HANDLE);
     670    return FALSE;
     671  }
     672
     673  memcpy(lpCC,&pDevData->CommCfg,sizeof(COMMCONFIG));
     674  *lpdwSize = sizeof(COMMCONFIG);
     675  return(TRUE);
     676}
Note: See TracChangeset for help on using the changeset viewer.