Changeset 7763 for trunk/src/kernel32/hmdevio.cpp
- Timestamp:
- Jan 12, 2002, 11:28:33 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmdevio.cpp
r7756 r7763 1 /* $Id: hmdevio.cpp,v 1.2 5 2002-01-09 16:13:17 sandervl Exp $ */1 /* $Id: hmdevio.cpp,v 1.26 2002-01-12 10:28:17 sandervl Exp $ */ 2 2 3 3 /* … … 111 111 { 112 112 sprintf(szDrvName, "\\\\.\\%s", szKeyName); 113 driver = new HMCustomDriver(hDrvDll, szDrvName );113 driver = new HMCustomDriver(hDrvDll, szDrvName, NULL); 114 114 115 115 rc = HMDeviceRegister(szDrvName, driver); … … 136 136 PFNDRVWRITE pfnDriverWrite, PFNDRVCANCELIO pfnDriverCancelIo, 137 137 PFNDRVGETOVERLAPPEDRESULT pfnDriverGetOverlappedResult, 138 LPCSTR lpDeviceName )138 LPCSTR lpDeviceName, LPVOID lpDriverData) 139 139 { 140 140 HMDeviceDriver *driver; 141 141 DWORD rc; 142 142 143 driver = new HMCustomDriver(pfnDriverOpen, pfnDriverClose, pfnDriverIOCtl, pfnDriverRead, pfnDriverWrite, pfnDriverCancelIo, pfnDriverGetOverlappedResult, lpDeviceName );143 driver = new HMCustomDriver(pfnDriverOpen, pfnDriverClose, pfnDriverIOCtl, pfnDriverRead, pfnDriverWrite, pfnDriverCancelIo, pfnDriverGetOverlappedResult, lpDeviceName, lpDriverData); 144 144 if(driver == NULL) { 145 145 DebugInt3(); … … 389 389 //****************************************************************************** 390 390 //****************************************************************************** 391 HMCustomDriver::HMCustomDriver(HINSTANCE hInstance, LPCSTR lpDeviceName )392 : HMDeviceDriver(lpDeviceName), hDrvDll(0) 391 HMCustomDriver::HMCustomDriver(HINSTANCE hInstance, LPCSTR lpDeviceName, LPVOID lpDriverData) 392 : HMDeviceDriver(lpDeviceName), hDrvDll(0), lpDriverData(NULL) 393 393 { 394 394 hDrvDll = hInstance ; … … 405 405 PFNDRVWRITE pfnDriverWrite, PFNDRVCANCELIO pfnDriverCancelIo, 406 406 PFNDRVGETOVERLAPPEDRESULT pfnDriverGetOverlappedResult, 407 LPCSTR lpDeviceName )407 LPCSTR lpDeviceName, LPVOID lpDriverData) 408 408 : HMDeviceDriver(lpDeviceName), hDrvDll(0) 409 409 { … … 418 418 this->pfnDriverCancelIo = pfnDriverCancelIo; 419 419 this->pfnDriverGetOverlappedResult = pfnDriverGetOverlappedResult; 420 this->lpDriverData = lpDriverData; 420 421 } 421 422 //****************************************************************************** … … 432 433 PHMHANDLEDATA pHMHandleDataTemplate) 433 434 { 434 pHMHandleData->hHMHandle = pfnDriverOpen( pHMHandleData->dwAccess, pHMHandleData->dwShare, pHMHandleData->dwFlags, (PVOID *)&pHMHandleData->dwUserData);435 pHMHandleData->hHMHandle = pfnDriverOpen(lpDriverData, pHMHandleData->dwAccess, pHMHandleData->dwShare, pHMHandleData->dwFlags, (PVOID *)&pHMHandleData->dwUserData); 435 436 if(pHMHandleData->hHMHandle == INVALID_HANDLE_VALUE_W) { 436 437 return GetLastError(); … … 443 444 { 444 445 if(pHMHandleData->hHMHandle) { 445 pfnDriverClose( pHMHandleData->hHMHandle, pHMHandleData->dwFlags, (PVOID)pHMHandleData->dwUserData);446 pfnDriverClose(lpDriverData, pHMHandleData->hHMHandle, pHMHandleData->dwFlags, (LPVOID)pHMHandleData->dwUserData); 446 447 } 447 448 pHMHandleData->hHMHandle = 0; … … 463 464 } 464 465 465 ret = pfnDriverIOCtl( pHMHandleData->hHMHandle, pHMHandleData->dwFlags, dwIoControlCode, lpInBuffer, nInBufferSize,466 lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped, ( PVOID)pHMHandleData->dwUserData);466 ret = pfnDriverIOCtl(lpDriverData, pHMHandleData->hHMHandle, pHMHandleData->dwFlags, dwIoControlCode, lpInBuffer, nInBufferSize, 467 lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped, (LPVOID)pHMHandleData->dwUserData); 467 468 dprintf(("DeviceIoControl %x returned %d", dwIoControlCode, ret)); 468 469 return ret; … … 499 500 return FALSE; 500 501 } 501 ret = pfnDriverRead( pHMHandleData->hHMHandle, pHMHandleData->dwFlags, lpBuffer, nNumberOfBytesToRead,502 ret = pfnDriverRead(lpDriverData, pHMHandleData->hHMHandle, pHMHandleData->dwFlags, lpBuffer, nNumberOfBytesToRead, 502 503 lpNumberOfBytesRead, lpOverlapped, lpCompletionRoutine, 503 ( PVOID)pHMHandleData->dwUserData);504 (LPVOID)pHMHandleData->dwUserData); 504 505 dprintf(("pfnDriverRead %x %x %x %x %x %x returned %x", pHMHandleData->hHMHandle, lpBuffer, nNumberOfBytesToRead, 505 506 lpNumberOfBytesRead, lpOverlapped, lpCompletionRoutine, ret)); … … 537 538 return FALSE; 538 539 } 539 ret = pfnDriverWrite( pHMHandleData->hHMHandle, pHMHandleData->dwFlags, lpBuffer, nNumberOfBytesToWrite,540 ret = pfnDriverWrite(lpDriverData, pHMHandleData->hHMHandle, pHMHandleData->dwFlags, lpBuffer, nNumberOfBytesToWrite, 540 541 lpNumberOfBytesWritten, lpOverlapped, lpCompletionRoutine, 541 ( PVOID)pHMHandleData->dwUserData);542 (LPVOID)pHMHandleData->dwUserData); 542 543 dprintf(("pfnDriverWrite %x %x %x %x %x %x returned %x", pHMHandleData->hHMHandle, lpBuffer, nNumberOfBytesToWrite, 543 544 lpNumberOfBytesWritten, lpOverlapped, lpCompletionRoutine, ret)); … … 563 564 return FALSE; 564 565 } 565 ret = pfnDriverCancelIo( pHMHandleData->hHMHandle, pHMHandleData->dwFlags, (PVOID)pHMHandleData->dwUserData);566 ret = pfnDriverCancelIo(lpDriverData, pHMHandleData->hHMHandle, pHMHandleData->dwFlags, (LPVOID)pHMHandleData->dwUserData); 566 567 dprintf(("pfnDriverCancelIo %x returned %x", pHMHandleData->hHMHandle, ret)); 567 568 return ret; … … 602 603 return FALSE; 603 604 } 604 return pfnDriverGetOverlappedResult( pHMHandleData->hHMHandle, pHMHandleData->dwFlags,605 lpOverlapped, lpcbTransfer, fWait, ( PVOID)pHMHandleData->dwUserData);605 return pfnDriverGetOverlappedResult(lpDriverData, pHMHandleData->hHMHandle, pHMHandleData->dwFlags, 606 lpOverlapped, lpcbTransfer, fWait, (LPVOID)pHMHandleData->dwUserData); 606 607 } 607 608 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.