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
135 lines
8.2 KiB
#include <windows.h>
|
|
|
|
#include <ntverp.h>
|
|
|
|
#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.
|