Changeset 7301 for trunk/src/kernel32/hmparport.cpp
- Timestamp:
- Nov 8, 2001, 4:38:43 PM (24 years ago)
- 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:39phaller Exp $ */1 /* $Id: hmparport.cpp,v 1.3 2001-11-08 15:38:43 phaller Exp $ */ 2 2 3 3 /* … … 92 92 ULONG ulMagic; 93 93 // Win32 Device Control Block 94 COMMCONFIG CommCfg; 94 95 //OS/2 Device Control Block 95 96 } HMDEVPARPORTDATA, *PHMDEVPARPORTDATA; … … 103 104 memset(pData,0,sizeof(HMDEVPARPORTDATA)); 104 105 pData->ulMagic = MAGIC_PARPORT; 106 pData->CommCfg.dwSize = sizeof(COMMCONFIG); 107 pData->CommCfg.wVersion = 1; 108 pData->CommCfg.dwProviderSubType = PST_PARALLELPORT; 105 109 } 106 110 return pData; … … 554 558 return(rc==0); 555 559 } 560 561 562 BOOL 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 597 BOOL 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 614 BOOL 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 640 BOOL 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 651 BOOL 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.