Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
8.2 KiB

  1. #include <windows.h>
  2. #include <ntverp.h>
  3. #define VER_FILETYPE VFT_DRV
  4. #define VER_FILESUBTYPE VFT2_DRV_SYSTEM
  5. #define VER_FILEDESCRIPTION_STR "Cyclades-Z Port Driver"
  6. #define VER_INTERNALNAME_STR "cyzport.sys"
  7. #define VER_ORIGINALFILENAME_STR "cyzport.sys"
  8. #define VER_LEGALCOPYRIGHT_YEARS "1997-2001"
  9. #define VER_LEGALCOPYRIGHT_STR "Copyright (C) Cyclades Corp. " VER_LEGALCOPYRIGHT_YEARS
  10. #define VER_FILEVERSION 1,0,19,0
  11. #define VER_FILEVERSION_STR "1.0.19.0"
  12. #include "common.ver"
  13. #include "cyzlog.rc"
  14. // History
  15. //
  16. // 1.0.19.0 10/22/01 Fix from Win2k SP2 applied: CyzPowerDispatch doesn't
  17. // call PoStartNextPowerIrp and CyzCompleteRequest when
  18. // CyzIRPPrologue returns STATUS_PENDING.
  19. // 1.0.18.0 07/05/01 Applying changes from DDK RC1: Do not complete Irp when
  20. // CyzIRPPrologue returns STATUS_PENDING. (CyyIRPPrologue
  21. // returns STATUS_PENDING when device is in Stopped state.)
  22. // Removal of DbgBreakPoint in CyzLogInit to prevent
  23. // breakpoints in low resource simulation with checked
  24. // builds.
  25. // Following changes in serial were not applied: use of
  26. // SetDeviceIsOpened instead of updating DeviceIsOpened
  27. // flag directly; no power down after Start up or when
  28. // closing port if EnablePowerManagement is set in the
  29. // Registry.
  30. // 1.0.17.0 07/02/01 No need to send Power Irp to power up the device during
  31. // IRP_MN_START_DEVICE.
  32. // 1.0.16.0 05/31/01 Check if PowerState is PowerDeviceD0 in CyzTxStart.
  33. // CyzHandleModemUpdate was not resetting TXHolding when
  34. // modem flow control was reset.
  35. // 1.0.15.0 05/04/01 More fixes for Driver Verifier: IoMarkIrpPending required
  36. // when STATUS_PENDING returned. CyzSystemPowerComplete
  37. // completing Irp when PoRequestPowerIrp fails.
  38. // IoMarkIrpPending called when Irp->PendingReturned set
  39. // in the IoCompletion routine of Device Power Irp.
  40. // 1.0.14.0 04/27/01 _WIN64 code removed. Set busNumber to 0xFFFFFFFF
  41. // when call to get DevicePropertyBusNumber fails;
  42. // device name will use static currentInstance whenever
  43. // busNumber is 0xFFFFFFFF.
  44. // 1.0.13.0 04/25/01 Delete #defines for VER_COMPANYNAME_STR,
  45. // VER_PRODUCTNAME_STR, VER_PRODUCTVERSION and
  46. // VER_PRODUCTVERSION_STR to fix compilation
  47. // warnings.
  48. // 1.0.12.0 04/18/01 Device name for _WIN64 will use static currentInstance
  49. // number. This is because cyclad-z cannot retrieve
  50. // the PCI slot number in 64-bit system.
  51. // 1.0.11.0 04/16/01 Fix for Driver Verifier: IoMarkIrpPending required
  52. // when STATUS_PENDING returned.
  53. // 1.0.10.0 04/02/01 Just version change.
  54. // 1.0.9.0 03/20/01 RtlAppendUnicodeToString was failing with
  55. // STATUS_BUFFER_TOO_SMALL when updating
  56. // SymbolicLinkName in CyzUndoExternalNaming.
  57. // CyzReadSymName is used now.
  58. // Device name changed from \Device\Cyzport?Pci? to
  59. // \Device\Pci?Cyzport?.
  60. // 1.0.8.0 03/14/01 Changes for serial from DDK 2416 (Whistler pre-Beta2)
  61. // to DDK 2446 (Whistler pre-Beta2) applied.
  62. // 1.0.7.0 03/12/01 Changes for serial from DDK 2195 (Windows 2000) to
  63. // DDK 2416 (Whistler pre-Beta2) applied.
  64. // 1.0.6.0 03/12/01 Just version change.
  65. // 1.0.5.0 03/02/01 cyzpnp.c: Device name is no longer using static instance
  66. // number that is incremented every time the driver
  67. // is loaded; instead it is using a fixed name based
  68. // on the PCI slot and port number. This change fixed
  69. // the Rename-Disable-Enable problem.
  70. // 1.0.4.0 02/26/01 Device SET_POWER is no longer waiting for kernel event
  71. // during power up; it is setting an IoCompletion routine.
  72. // System SET_POWER changed to return STATUS_PENDING, set an
  73. // IoCompletion routine, and request Device power Irp in the
  74. // IoCompletion routine. The power management has the
  75. // same changes as in Y 1.0.7.0.
  76. // 1.0.3.0 02/23/01 Fix for Hyperterminal not working after Standby or
  77. // Hibernation: CyzDisableHw is not longer called during
  78. // power down. CyzDisableHw would send C_CM_IOCTL and
  79. // C_CM_RESET to the firmware, and this would reset the
  80. // modem output signals. The DCD change event in the other
  81. // Hyperterminal session would cause the Read Irp to be
  82. // cancelled, and no other Read Irp would be sent to the
  83. // driver.
  84. // CyzReset called during power up only if port is opened.
  85. // 1.0.2.0 01/29/01 Check for invalid get and put read from PtZfIntQueue in
  86. // CyzPollingDpc.
  87. // 01/25/01 Driver built with Whistler DDK 2416.
  88. // 64-bit Compilation error fixed in cyzinit.c.
  89. // 1.0.1.0 12/06/00 Driver built with Whistler DDK (Beta1).
  90. // Fix for Hibernation: CyzSetPowerD3 no longer paged code due
  91. // to IRQL raise by spin lock.
  92. // 1.0.0.16 11/20/00 Check if Extension->PtZfIntQueue is valid before accessing it.
  93. // 1.0.0.15 11/10/00 Fix deadlock during Open: CyzMarkOpen was trying to acquire
  94. // PollingLock inside PollLock, while the CyzPollingDcp was acquiring
  95. // PollLock inside PollingLock. Replace CyzDisableHwAndTimer
  96. // by CyzDisableHw and CyzTryToDisableTimer. Change CyzReleaseResources
  97. // to protect CyzCleanLists with PollingLock instead of PollLock.
  98. // 1.0.0.14 11/02/00 MmMapIoSpace mapping only memory used by single port
  99. // instead of mapping whole 1MB board memory.
  100. // 1.0.0.13 - None.
  101. // 1.0.0.12 10/11/00 Fix Rename-Disable-Enable problem: SymbolicLinkName
  102. // was being changed by the Property Page, but driver
  103. // was trying to delete the original name.
  104. // 1.0.0.11 10/09/00 Added support to interrupt mode when POLL is not defined
  105. // during compilation time (in the sources file).
  106. // 1.0.0.10 09/22/00 Change cyzportp.h and cyzpoll.c to support 64bit environment.
  107. // Add #if _WIN64 code in cyzpoll.c.
  108. // 1.0.0.9 - None.
  109. // 1.0.0.8 08/15/00 Fix CYZ_INCOMPATIBLE_FIRMWARE log to have required version as a
  110. // parameter instead of hardcoding to 3.2.3.
  111. // 08/10/00 Do not read PPPaware from the Registry, we are removing support
  112. // to PPPaware.
  113. // Do not set/reset DTR/RTS when FIRMWARE_HANDSHAKE defined.
  114. // Add #ifndef FIRMWARE_HANDSHAKE in cyzpoll.c.
  115. // 1.0.0.7 08/08/00 Read WriteComplete flag from the Registry. The user can now configure
  116. // the driver to complete Write immediatly or after fw buffer is
  117. // empty. The default is complete immediatly.
  118. // 1.0.0.6 08/04/00 Read PPPaware flag from the Registry. The PPPaware mode will be
  119. // enabled by default, to fix WsStress UDP/SPX test error.
  120. // Check if firmware version is at least 3.2.3.
  121. // 1.0.0.5 07/21/00 Changes from cyyport from 1.0.0.12 to 1.0.0.27 were applied.
  122. // KeInitilizeSpinLock was not being called for pDispatch->PollingLock.
  123. // #if 0 removed from pragma alloc_text in cyzmodem.c.
  124. // CyzCreateOpen changed from PAGESER to PAGESRP0.
  125. // Minor change: Delete functions that refer to CD1400 from cyzport.h.
  126. // 1.0.0.2 02/29/00 Fix IRP_MN_REMOVE_DEVICE to detach cyzport from stack only
  127. // after calling lower drivers. CyzRemoveDevObj() had to be
  128. // changed for this.
  129. // 1.0.0.1 02/28/00 Comment change.