Return to site

Walter Oney Software Port Devices Driver

broken image


Walter
May 31st, 2017
Driver
Never
Not a member of Pastebin yet?Sign Up, it unlocks many cool features!
Walter oney software port devices driver updater

Walter Oney Software Port Devices Driver

  • For the record however, so that anyone else who ends up reading this will know: first (UNDER 9x, NOT NT!) run Walter Oney's WDMCHECK utility or rloew's DISPPE32 on the 2K/XP driver you wish to load and see which WDM functions are missing. Then you must load WDMEX and repeat the same process again to see if all functions are satisfied.
  • For years, people have wondered why all Windows drivers are dated June 21, 2006. Long time developer at Microsoft, Raymond Chen explains (much of the entire post in summary): When the system looks for a driver to use for a particular piece of hardware, it ranks them according to various criteria.
  1. // Control.cpp -- IOCTL handlers for PtoPar driver
  2. // All rights reserved
  3. #include 'stddcls.h'
  4. #include 'ioctls.h'
  5. NTSTATUS CacheControlRequest(PDEVICE_EXTENSION pdx, PIRP Irp, PIRP* pIrp);
  6. VOID OnCancelPendingIoctl(PDEVICE_OBJECT fdo, PIRP Irp);
  7. NTSTATUS OnCompletePendingIoctl(PDEVICE_OBJECT junk, PIRP Irp, PDEVICE_EXTENSION pdx);
  8. VOID CleanupControlRequests(PDEVICE_EXTENSION pdx, NTSTATUS status, PFILE_OBJECT fop);
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #pragma PAGEDCODE
  11. NTSTATUS DispatchControl(PDEVICE_OBJECT fdo, PIRP Irp)
  12. PAGED_CODE();
  13. PDEVICE_EXTENSION pdx =(PDEVICE_EXTENSION) fdo->DeviceExtension;
  14. NTSTATUS status = IoAcquireRemoveLock(&pdx->RemoveLock, Irp);
  15. return CompleteRequest(Irp, status,0);
  16. PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp);
  17. ULONG cbin = stack->Parameters.DeviceIoControl.InputBufferLength;
  18. ULONG cbout = stack->Parameters.DeviceIoControl.OutputBufferLength;
  19. ULONG code = stack->Parameters.DeviceIoControl.IoControlCode;
  20. switch(code)
  21. {// IOCTL_GET_VERSION_BUFFERED
  22. // TODO insert code here to handle this IOCTL, which uses METHOD_BUFFERED
  23. status = STATUS_INVALID_BUFFER_SIZE;
  24. }
  25. PULONG pversion =(PULONG) Irp->AssociatedIrp.SystemBuffer;
  26. info =sizeof(ULONG);
  27. }// IOCTL_GET_VERSION_BUFFERED
  28. case IOCTL_GET_VERSION_DIRECT:// code 0x801
  29. // TODO insert code here to handle this IOCTL, which uses METHOD_OUT_DIRECT
  30. status = STATUS_INVALID_BUFFER_SIZE;
  31. }
  32. PULONG pversion =(PULONG) MmGetSystemAddressForMdl(Irp->MdlAddress);
  33. info =sizeof(ULONG);
  34. }// IOCTL_GET_VERSION_DIRECT
  35. case IOCTL_GET_VERSION_NEITHER:// code 0x802
  36. // TODO insert code here to handle this IOCTL, which uses METHOD_NEITHER
  37. break;
  38. {// IOCTL_WAIT_NOTIFY
  39. KdPrint((DRIVERNAME ' .. ITESM:PIC, DispatchControl(WAIT_NOTIFY)n'));
  40. status = STATUS_INVALID_PARAMETER;
  41. //status = CacheControlRequest(pdx, Irp, &pdx->NotifyIrp);
  42. IoMarkIrpPending(Irp);
  43. IoReleaseRemoveLock(&pdx->RemoveLock, Irp);
  44. break;
  45. status = STATUS_INVALID_DEVICE_REQUEST;
  46. return status STATUS_PENDING ? status : CompleteRequest(Irp, status, info);
  47. ///////////////////////////////////////////////////////////////////////////////
  48. #pragma PAGEDCODE
  49. VOID AbortPendingIoctls(PDEVICE_EXTENSION pdx, NTSTATUS status)
  50. }// AbortPendingIoctls
  51. ///////////////////////////////////////////////////////////////////////////////
  52. #pragma LOCKEDCODE
  53. NTSTATUS CacheControlRequest(PDEVICE_EXTENSION pdx, PIRP Irp, PIRP* pIrp)
  54. return STATUS_SUCCESS;
  55. ///////////////////////////////////////////////////////////////////////////////
  56. #pragma PAGEDCODE
  57. VOID CleanupControlRequests(PDEVICE_EXTENSION pdx, NTSTATUS status, PFILE_OBJECT fop)
  58. }// CleanupControlRequests
  59. ///////////////////////////////////////////////////////////////////////////////
  60. #pragma LOCKEDCODE
  61. VOID OnCancelPendingIoctl(PDEVICE_OBJECT fdo, PIRP Irp)
  62. KIRQL oldirql = Irp->CancelIrql;
  63. PDEVICE_EXTENSION pdx =(PDEVICE_EXTENSION) fdo->DeviceExtension;
  64. // Complete the IRP
  65. Irp->IoStatus.Status= STATUS_CANCELLED;
  66. pdx->NotifyIrp=NULL;
  67. ///////////////////////////////////////////////////////////////////////////////
  68. #pragma LOCKEDCODE
  69. NTSTATUS OnCompletePendingIoctl(PDEVICE_OBJECT junk, PIRP Irp, PDEVICE_EXTENSION pdx)
  70. return STATUS_SUCCESS;
  71. ///////////////////////////////////////////////////////////////////////////////
  72. #pragma LOCKEDCODE
  73. PIRP UncacheControlRequest(PDEVICE_EXTENSION pdx, PIRP* pIrp)
  74. return(*pIrp);
  75. #pragma LOCKEDCODE // force inline functions into nonpaged code
Walter oney software port devices drivers
Walter
May 31st, 2017
Never
Not a member of Pastebin yet?Sign Up, it unlocks many cool features!

Walter Oney Software Port Devices Driver

  • For the record however, so that anyone else who ends up reading this will know: first (UNDER 9x, NOT NT!) run Walter Oney's WDMCHECK utility or rloew's DISPPE32 on the 2K/XP driver you wish to load and see which WDM functions are missing. Then you must load WDMEX and repeat the same process again to see if all functions are satisfied.
  • For years, people have wondered why all Windows drivers are dated June 21, 2006. Long time developer at Microsoft, Raymond Chen explains (much of the entire post in summary): When the system looks for a driver to use for a particular piece of hardware, it ranks them according to various criteria.
  1. // Control.cpp -- IOCTL handlers for PtoPar driver
  2. // All rights reserved
  3. #include 'stddcls.h'
  4. #include 'ioctls.h'
  5. NTSTATUS CacheControlRequest(PDEVICE_EXTENSION pdx, PIRP Irp, PIRP* pIrp);
  6. VOID OnCancelPendingIoctl(PDEVICE_OBJECT fdo, PIRP Irp);
  7. NTSTATUS OnCompletePendingIoctl(PDEVICE_OBJECT junk, PIRP Irp, PDEVICE_EXTENSION pdx);
  8. VOID CleanupControlRequests(PDEVICE_EXTENSION pdx, NTSTATUS status, PFILE_OBJECT fop);
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #pragma PAGEDCODE
  11. NTSTATUS DispatchControl(PDEVICE_OBJECT fdo, PIRP Irp)
  12. PAGED_CODE();
  13. PDEVICE_EXTENSION pdx =(PDEVICE_EXTENSION) fdo->DeviceExtension;
  14. NTSTATUS status = IoAcquireRemoveLock(&pdx->RemoveLock, Irp);
  15. return CompleteRequest(Irp, status,0);
  16. PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp);
  17. ULONG cbin = stack->Parameters.DeviceIoControl.InputBufferLength;
  18. ULONG cbout = stack->Parameters.DeviceIoControl.OutputBufferLength;
  19. ULONG code = stack->Parameters.DeviceIoControl.IoControlCode;
  20. switch(code)
  21. {// IOCTL_GET_VERSION_BUFFERED
  22. // TODO insert code here to handle this IOCTL, which uses METHOD_BUFFERED
  23. status = STATUS_INVALID_BUFFER_SIZE;
  24. }
  25. PULONG pversion =(PULONG) Irp->AssociatedIrp.SystemBuffer;
  26. info =sizeof(ULONG);
  27. }// IOCTL_GET_VERSION_BUFFERED
  28. case IOCTL_GET_VERSION_DIRECT:// code 0x801
  29. // TODO insert code here to handle this IOCTL, which uses METHOD_OUT_DIRECT
  30. status = STATUS_INVALID_BUFFER_SIZE;
  31. }
  32. PULONG pversion =(PULONG) MmGetSystemAddressForMdl(Irp->MdlAddress);
  33. info =sizeof(ULONG);
  34. }// IOCTL_GET_VERSION_DIRECT
  35. case IOCTL_GET_VERSION_NEITHER:// code 0x802
  36. // TODO insert code here to handle this IOCTL, which uses METHOD_NEITHER
  37. break;
  38. {// IOCTL_WAIT_NOTIFY
  39. KdPrint((DRIVERNAME ' .. ITESM:PIC, DispatchControl(WAIT_NOTIFY)n'));
  40. status = STATUS_INVALID_PARAMETER;
  41. //status = CacheControlRequest(pdx, Irp, &pdx->NotifyIrp);
  42. IoMarkIrpPending(Irp);
  43. IoReleaseRemoveLock(&pdx->RemoveLock, Irp);
  44. break;
  45. status = STATUS_INVALID_DEVICE_REQUEST;
  46. return status STATUS_PENDING ? status : CompleteRequest(Irp, status, info);
  47. ///////////////////////////////////////////////////////////////////////////////
  48. #pragma PAGEDCODE
  49. VOID AbortPendingIoctls(PDEVICE_EXTENSION pdx, NTSTATUS status)
  50. }// AbortPendingIoctls
  51. ///////////////////////////////////////////////////////////////////////////////
  52. #pragma LOCKEDCODE
  53. NTSTATUS CacheControlRequest(PDEVICE_EXTENSION pdx, PIRP Irp, PIRP* pIrp)
  54. return STATUS_SUCCESS;
  55. ///////////////////////////////////////////////////////////////////////////////
  56. #pragma PAGEDCODE
  57. VOID CleanupControlRequests(PDEVICE_EXTENSION pdx, NTSTATUS status, PFILE_OBJECT fop)
  58. }// CleanupControlRequests
  59. ///////////////////////////////////////////////////////////////////////////////
  60. #pragma LOCKEDCODE
  61. VOID OnCancelPendingIoctl(PDEVICE_OBJECT fdo, PIRP Irp)
  62. KIRQL oldirql = Irp->CancelIrql;
  63. PDEVICE_EXTENSION pdx =(PDEVICE_EXTENSION) fdo->DeviceExtension;
  64. // Complete the IRP
  65. Irp->IoStatus.Status= STATUS_CANCELLED;
  66. pdx->NotifyIrp=NULL;
  67. ///////////////////////////////////////////////////////////////////////////////
  68. #pragma LOCKEDCODE
  69. NTSTATUS OnCompletePendingIoctl(PDEVICE_OBJECT junk, PIRP Irp, PDEVICE_EXTENSION pdx)
  70. return STATUS_SUCCESS;
  71. ///////////////////////////////////////////////////////////////////////////////
  72. #pragma LOCKEDCODE
  73. PIRP UncacheControlRequest(PDEVICE_EXTENSION pdx, PIRP* pIrp)
  74. return(*pIrp);
  75. #pragma LOCKEDCODE // force inline functions into nonpaged code

Tbs driver download for windows 10. PIC-Brenner8 (sprut) is developed by Walter Oney Software and is used by 22 users on Drivers Informer. The most later version of this driver among our users is 1.0.0.6. Windows Driver Kit Device and Driver Technologies Buses and Ports Buses USB Design Guide System-Supplied USB Drivers WinUSB (The general architure documentation ) Reference WinUSB User-Mode Client Support Routines ( The user mode application interface ) The inc section of the DDK contains the only required inc winusb.h. Toshiba support software and drivers. Windows Driver Package - Walter Oney Software (dlsusb) Ports ( Walter Oney Software - Shareware - more info. Drivers sony croporation.

Walter Oney Software Port Devices Driver Windows 7

// Control.cpp -- IOCTL handlers for PtoPar driver // Copyright (C) 1999 by Walter Oney // All rights reserved #include 'stddcls.h' #include 'driver.h' #include 'ioctls.h' NTSTATUS CacheControlRequest(PDEVICE_EXTENSION pdx, PIRP Irp, PIRP* pIrp); VOID OnCancelPendingIoctl(PDEVICE_OBJECT fdo, PIRP Irp); NTSTATUS OnCompletePendingIoctl(PDEVICE_OBJECT junk, PIRP Irp, PDEVICE_EXTENSION pdx); VOID CleanupControlRequests(PDEVICE_EXTENSION pdx, NTSTATUS status, PFILE_OBJECT fop); /////////////////////////////////////////////////////////////////////////////// #pragma PAGEDCODE NTSTATUS DispatchControl(PDEVICE_OBJECT fdo, PIRP Irp) { // DispatchControl PAGED_CODE(); PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension; NTSTATUS status = IoAcquireRemoveLock(&pdx->RemoveLock, Irp); if (!NT_SUCCESS(status)) return CompleteRequest(Irp, status, 0); ULONG info = 0; PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp); ULONG cbin = stack->Parameters.DeviceIoControl.InputBufferLength; ULONG cbout = stack->Parameters.DeviceIoControl.OutputBufferLength; ULONG code = stack->Parameters.DeviceIoControl.IoControlCode; switch (code) { // process request case IOCTL_GET_VERSION_BUFFERED: // code 0x800 { // IOCTL_GET_VERSION_BUFFERED // TODO insert code here to handle this IOCTL, which uses METHOD_BUFFERED if (cbout < sizeof(ULONG)) { status = STATUS_INVALID_BUFFER_SIZE; break; } PULONG pversion = (PULONG) Irp->AssociatedIrp.SystemBuffer; *pversion = 0x00020001; //v2.1 info = sizeof(ULONG); break; } // IOCTL_GET_VERSION_BUFFERED case IOCTL_GET_VERSION_DIRECT: // code 0x801 { // IOCTL_GET_VERSION_DIRECT // TODO insert code here to handle this IOCTL, which uses METHOD_OUT_DIRECT if (cbout < sizeof(ULONG)) { status = STATUS_INVALID_BUFFER_SIZE; break; } PULONG pversion = (PULONG) MmGetSystemAddressForMdl(Irp->MdlAddress); *pversion = 0x00020001; //v2.1 info = sizeof(ULONG); break; } // IOCTL_GET_VERSION_DIRECT case IOCTL_GET_VERSION_NEITHER: // code 0x802 { // IOCTL_GET_VERSION_NEITHER // TODO insert code here to handle this IOCTL, which uses METHOD_NEITHER break; } // IOCTL_GET_VERSION_NEITHER case IOCTL_WAIT_NOTIFY: // code 0x803 { // IOCTL_WAIT_NOTIFY KdPrint((DRIVERNAME ' .. ITESM:PIC, DispatchControl(WAIT_NOTIFY)n')); if (cbout < sizeof(ULONG)) status = STATUS_INVALID_PARAMETER; else //status = CacheControlRequest(pdx, Irp, &pdx->NotifyIrp); pdx->NotifyIrp = Irp; IoMarkIrpPending(Irp); IoSetCancelRoutine(Irp, OnCancelPendingIoctl); IoReleaseRemoveLock(&pdx->RemoveLock, Irp); status = STATUS_PENDING; break; } // IOCTL_WAIT_NOTIFY default: status = STATUS_INVALID_DEVICE_REQUEST; break; } // process request IoReleaseRemoveLock(&pdx->RemoveLock, Irp); return status STATUS_PENDING ? status : CompleteRequest(Irp, status, info); } // DispatchControl /////////////////////////////////////////////////////////////////////////////// #pragma PAGEDCODE VOID AbortPendingIoctls(PDEVICE_EXTENSION pdx, NTSTATUS status) { // AbortPendingIoctls } // AbortPendingIoctls /////////////////////////////////////////////////////////////////////////////// #pragma LOCKEDCODE NTSTATUS CacheControlRequest(PDEVICE_EXTENSION pdx, PIRP Irp, PIRP* pIrp) { // CacheControlRequest return STATUS_SUCCESS; } // CacheControlRequest /////////////////////////////////////////////////////////////////////////////// #pragma PAGEDCODE VOID CleanupControlRequests(PDEVICE_EXTENSION pdx, NTSTATUS status, PFILE_OBJECT fop) { // CleanupControlRequests } // CleanupControlRequests /////////////////////////////////////////////////////////////////////////////// #pragma LOCKEDCODE VOID OnCancelPendingIoctl(PDEVICE_OBJECT fdo, PIRP Irp) { // OnCancelPendingIoctl KIRQL oldirql = Irp->CancelIrql; IoReleaseCancelSpinLock(DISPATCH_LEVEL); PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension; //__asm {int 3}; // Complete the IRP Irp->IoStatus.Status = STATUS_CANCELLED; IoCompleteRequest(Irp, IO_NO_INCREMENT); pdx->NotifyIrp=NULL; } // OnCancelPendingIoctl /////////////////////////////////////////////////////////////////////////////// #pragma LOCKEDCODE NTSTATUS OnCompletePendingIoctl(PDEVICE_OBJECT junk, PIRP Irp, PDEVICE_EXTENSION pdx) { // OnCompletePendingIoctl return STATUS_SUCCESS; } // OnCompletePendingIoctl /////////////////////////////////////////////////////////////////////////////// #pragma LOCKEDCODE PIRP UncacheControlRequest(PDEVICE_EXTENSION pdx, PIRP* pIrp) { // UncacheControlRequest return(*pIrp); } // UncacheControlRequest #pragma LOCKEDCODE // force inline functions into nonpaged code



broken image