#include #include #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Cyclades-Z Port Driver" #define VER_INTERNALNAME_STR "cyzport.sys" #define VER_ORIGINALFILENAME_STR "cyzport.sys" #define VER_LEGALCOPYRIGHT_YEARS "1997-2001" #define VER_LEGALCOPYRIGHT_STR "Copyright (C) Cyclades Corp. " VER_LEGALCOPYRIGHT_YEARS #define VER_FILEVERSION 1,0,19,0 #define VER_FILEVERSION_STR "1.0.19.0" #include "common.ver" #include "cyzlog.rc" // History // // 1.0.19.0 10/22/01 Fix from Win2k SP2 applied: CyzPowerDispatch doesn't // call PoStartNextPowerIrp and CyzCompleteRequest when // CyzIRPPrologue returns STATUS_PENDING. // 1.0.18.0 07/05/01 Applying changes from DDK RC1: Do not complete Irp when // CyzIRPPrologue returns STATUS_PENDING. (CyyIRPPrologue // returns STATUS_PENDING when device is in Stopped state.) // Removal of DbgBreakPoint in CyzLogInit to prevent // breakpoints in low resource simulation with checked // builds. // Following changes in serial were not applied: use of // SetDeviceIsOpened instead of updating DeviceIsOpened // flag directly; no power down after Start up or when // closing port if EnablePowerManagement is set in the // Registry. // 1.0.17.0 07/02/01 No need to send Power Irp to power up the device during // IRP_MN_START_DEVICE. // 1.0.16.0 05/31/01 Check if PowerState is PowerDeviceD0 in CyzTxStart. // CyzHandleModemUpdate was not resetting TXHolding when // modem flow control was reset. // 1.0.15.0 05/04/01 More fixes for Driver Verifier: IoMarkIrpPending required // when STATUS_PENDING returned. CyzSystemPowerComplete // completing Irp when PoRequestPowerIrp fails. // IoMarkIrpPending called when Irp->PendingReturned set // in the IoCompletion routine of Device Power Irp. // 1.0.14.0 04/27/01 _WIN64 code removed. Set busNumber to 0xFFFFFFFF // when call to get DevicePropertyBusNumber fails; // device name will use static currentInstance whenever // busNumber is 0xFFFFFFFF. // 1.0.13.0 04/25/01 Delete #defines for VER_COMPANYNAME_STR, // VER_PRODUCTNAME_STR, VER_PRODUCTVERSION and // VER_PRODUCTVERSION_STR to fix compilation // warnings. // 1.0.12.0 04/18/01 Device name for _WIN64 will use static currentInstance // number. This is because cyclad-z cannot retrieve // the PCI slot number in 64-bit system. // 1.0.11.0 04/16/01 Fix for Driver Verifier: IoMarkIrpPending required // when STATUS_PENDING returned. // 1.0.10.0 04/02/01 Just version change. // 1.0.9.0 03/20/01 RtlAppendUnicodeToString was failing with // STATUS_BUFFER_TOO_SMALL when updating // SymbolicLinkName in CyzUndoExternalNaming. // CyzReadSymName is used now. // Device name changed from \Device\Cyzport?Pci? to // \Device\Pci?Cyzport?. // 1.0.8.0 03/14/01 Changes for serial from DDK 2416 (Whistler pre-Beta2) // to DDK 2446 (Whistler pre-Beta2) applied. // 1.0.7.0 03/12/01 Changes for serial from DDK 2195 (Windows 2000) to // DDK 2416 (Whistler pre-Beta2) applied. // 1.0.6.0 03/12/01 Just version change. // 1.0.5.0 03/02/01 cyzpnp.c: Device name is no longer using static instance // number that is incremented every time the driver // is loaded; instead it is using a fixed name based // on the PCI slot and port number. This change fixed // the Rename-Disable-Enable problem. // 1.0.4.0 02/26/01 Device SET_POWER is no longer waiting for kernel event // during power up; it is setting an IoCompletion routine. // System SET_POWER changed to return STATUS_PENDING, set an // IoCompletion routine, and request Device power Irp in the // IoCompletion routine. The power management has the // same changes as in Y 1.0.7.0. // 1.0.3.0 02/23/01 Fix for Hyperterminal not working after Standby or // Hibernation: CyzDisableHw is not longer called during // power down. CyzDisableHw would send C_CM_IOCTL and // C_CM_RESET to the firmware, and this would reset the // modem output signals. The DCD change event in the other // Hyperterminal session would cause the Read Irp to be // cancelled, and no other Read Irp would be sent to the // driver. // CyzReset called during power up only if port is opened. // 1.0.2.0 01/29/01 Check for invalid get and put read from PtZfIntQueue in // CyzPollingDpc. // 01/25/01 Driver built with Whistler DDK 2416. // 64-bit Compilation error fixed in cyzinit.c. // 1.0.1.0 12/06/00 Driver built with Whistler DDK (Beta1). // Fix for Hibernation: CyzSetPowerD3 no longer paged code due // to IRQL raise by spin lock. // 1.0.0.16 11/20/00 Check if Extension->PtZfIntQueue is valid before accessing it. // 1.0.0.15 11/10/00 Fix deadlock during Open: CyzMarkOpen was trying to acquire // PollingLock inside PollLock, while the CyzPollingDcp was acquiring // PollLock inside PollingLock. Replace CyzDisableHwAndTimer // by CyzDisableHw and CyzTryToDisableTimer. Change CyzReleaseResources // to protect CyzCleanLists with PollingLock instead of PollLock. // 1.0.0.14 11/02/00 MmMapIoSpace mapping only memory used by single port // instead of mapping whole 1MB board memory. // 1.0.0.13 - None. // 1.0.0.12 10/11/00 Fix Rename-Disable-Enable problem: SymbolicLinkName // was being changed by the Property Page, but driver // was trying to delete the original name. // 1.0.0.11 10/09/00 Added support to interrupt mode when POLL is not defined // during compilation time (in the sources file). // 1.0.0.10 09/22/00 Change cyzportp.h and cyzpoll.c to support 64bit environment. // Add #if _WIN64 code in cyzpoll.c. // 1.0.0.9 - None. // 1.0.0.8 08/15/00 Fix CYZ_INCOMPATIBLE_FIRMWARE log to have required version as a // parameter instead of hardcoding to 3.2.3. // 08/10/00 Do not read PPPaware from the Registry, we are removing support // to PPPaware. // Do not set/reset DTR/RTS when FIRMWARE_HANDSHAKE defined. // Add #ifndef FIRMWARE_HANDSHAKE in cyzpoll.c. // 1.0.0.7 08/08/00 Read WriteComplete flag from the Registry. The user can now configure // the driver to complete Write immediatly or after fw buffer is // empty. The default is complete immediatly. // 1.0.0.6 08/04/00 Read PPPaware flag from the Registry. The PPPaware mode will be // enabled by default, to fix WsStress UDP/SPX test error. // Check if firmware version is at least 3.2.3. // 1.0.0.5 07/21/00 Changes from cyyport from 1.0.0.12 to 1.0.0.27 were applied. // KeInitilizeSpinLock was not being called for pDispatch->PollingLock. // #if 0 removed from pragma alloc_text in cyzmodem.c. // CyzCreateOpen changed from PAGESER to PAGESRP0. // Minor change: Delete functions that refer to CD1400 from cyzport.h. // 1.0.0.2 02/29/00 Fix IRP_MN_REMOVE_DEVICE to detach cyzport from stack only // after calling lower drivers. CyzRemoveDevObj() had to be // changed for this. // 1.0.0.1 02/28/00 Comment change.