CDI Port Devices Driver

Added file: Realtek USB 2.0/3.0 CR RTS51XX Drivers v.10.0.6 Added file: Rivet Killer Performance Driver Suite v.2.3.1523 Added file: Handheld Barcode. Intel® Network Adapter Driver for PCIe. 40 Gigabit Ethernet Network Connections under Linux. This download record includes the i40e Linux. base driver version 2.14.13 for the 700 series devices. SOFTWARE & DRIVERS. Search for your product to get started. References Displays. Network Video Solutions. Back × Select your device.

Dec 21, 2020 • Filed to: USB Recovery • Proven solutions

Have you ever had difficulty connecting your devices to your computer using a Prolific USB to Serial adapter? If yes you are lucky to find this page, it will give you all the information need to fix an unresponsive Serial driver adapter. You may have noticed a yellow exclamation mark hovering over or beside the USB to Serial Driver when searching your Device Manager and if you have we can all agree that it signifies a prevailing problem.

  1. Contribute to mamedev/mame development by creating an account on GitHub.
  2. On Windows 10, a device driver is an essential piece of code, which allows the system to interact with a specific hardware (such as graphics card, storage driver, network adapter, Bluetooth, etc.

Overview of the Error

If you are not able to connect your device to your PC using a USB to Serial adapter it may be that

  • The USB driver is outdated
  • The USB Driver is missing
  • Or even a corrupted driver

While you can't be so sure what the exact problem is there are solutions you can adopt to fix the issue once and for all. Read on to find quick fixes to resolve the problem.

1# Fix Prolific USB to Serial Driver not Working

Solution: Roll your Prolific USB to Serial Driver back to an older version

Updating your drivers often work wonders for your system because it makes sure that it runs on the latest features that guarantee maximum functionality. Unfortunately updating your drivers can cause this kind of error especially if your latest update does not work too well with your hardware. Once you upgrade your PC to the latest Windows version your Prolific USB to Serial Driver also updates to the latest driver software and if the driver is not compatible with your Hardware issues may arise. To correct the error, you will have to download the driver again by following these steps.

  • Right-click on your PC Start button and open Device Manager
  • Double click LPT and COM ports then locate the Prolific USB to Serial Driver and right-click it so you can select Update Driver
  • For driver software click My computer
  • From My computer select 'Let me pick from a list of drivers available'
  • Choose an older version from the list then click Next
  • The driver you selected will be installed automatically
  • Once it has been downloaded reconnect the driver to see if it works.
CDI Port Devices Driver

2# Fix Prolific USB to Serial Driver 'Coder 10'

Driver issues reveal themselves in so many ways or through messages such as

Driver
  • This device will not start (Code 10)
  • There is no driver installed in this device
  • The driver was not successfully installed

A code 10 error may arise because the chip you are using is not an original one. If you are using a fake, the manufacturer has a way of disabling it due to copy write infringement and the copy write takes effect once you download a recent update. To protect your PC from getting this code, you will have to make sure that your Windows 10 never updates a driver without approval. Updates come in the form of 64 bit and 32-bit drivers. Below we will show you how to work your way around the problem.

Window 64 bit Fix

To fix Windows 64 bit OS including Prolific USB to Serial Adapter, follow through these steps.

  • Download 'PL2303_64bit_Installer.exe and Save
  • Remove every USB to Serial adapter from your PC and double click the 'PL2303_64bit_installer.exe
  • Follow the prompt by plugging in one USB to Serial adapter the click on Continue
  • Reboot your PC to get Windows up and running

If you have followed these process through and you still see the same error go to your device manager

  • Open the control panel and navigate to Device Manager
  • From your control panel navigate to the System category and click the Hardware tab
  • Scroll to the LPT/COM port and double click Prolific USB to Serial Comm Port
  • Click Drivers in the Properties section
  • The Driver you choose should read '3.3.2.102 with an appropriate date attached
  • If the date is wrong then it means the wrong driver was installed
  • Unplug the Serial adapter and run the steps again to install the correct driver

Window 32-bit

For Windows 32-bit OS systems follow these steps

  • You will have to download the 'PL-2303_Driver_Installer.exe and save from Microsoft download link
  • Run the program and eradicate the driver if you can
  • Run the installer once more to install a correct driver

To Troubleshoot for error if your device still does not work

  • Go to Control panel, enter System to access your Device Manager
  • Scroll down to the LPT/ COM port then double click Prolific USB to Serial Comm Port
  • Click Driver in the Windows Properties section
  • The driver must be numbered as '2.0.2.8' and dates accordingly

If the driver was not installed, remove the Serial adapter then run 'PL2303_Driver_Installer.exe' again. Follow directions in Device Manager to download the correct driver

The three solutions listed in this article have proven to be quite helpful in fixing a Prolific USB to Serial driver not working on Windows 10. They may appear confusing at first but if you follow each step in detail you can resolve the issue.

Video Tutorial on How to Fix USB Device Not Recognized

USB Solution

Recover USB Drive
Format USB Drive
Fix/Repair USB Drive
Know USB Drive
< Windows Programming

Cdi Port Devices Drivers

Types of Drivers[edit]

Windows device drivers generally come in 2 flavors: Virtual Device Drivers (VXD) and Windows Driver Model (WDM). VxD style drivers are older, and are less compatible, while WDM drivers are supposed to be fully code-compatible all the way back to Windows 98.

Driver History[edit]

In the old days of DOS, the computer was free land where anything goes. To that end, developers wrote their own hardware drivers, conforming to no specific specification or interface, using real-mode assembly code. With the advent of Windows 3.0, the operating system began to take a more hands-on approach to application management, by creating and maintaining a variety of virtual machines, to execute different programs in different processor contexts. Drivers could no longer exist as non-conformist real-mode DOS drivers, but instead had to mitigate access between multiple programs, running more or less in parallel with each other. Windows 3.0 changed the 'real devices' into managed resources known as 'virtual devices', and replaced the real-mode drivers with new virtual device drivers (VDD).

The Windows NT product line existed as a separate entity from the 'regular' windows brand. These two operating systems were completely different in almost every imaginable way, except perhaps that the shells looked similar. Windows NT was a fully-managed operating system, and unauthorized resource accesses were blocked by the NT kernel. This meant that in Windows NT, device drivers needed to interface with the computer through specific methods, while standard windows drivers (Windows 3.0, 3.1, 3.11, 95, 98, Me) could access hardware directly, without any sort of management. The drivers for both systems at this point, were generally written in assembly language, as well.

CDI Port Devices Driver

Realizing that the market was split between Windows and Windows NT, Microsoft saw a need to introduce a single driver model, so that device drivers could be portable between Windows and Windows NT. In addition, Microsoft knew that drivers had to be writable in a higher-level language, like C, in order to be code-compatible for different hardware systems. To meet these needs, Microsoft created the Windows Driver Model (WDM). WDM drivers are compiled using the DDK, they are written in C, and they follow exacting specifications that ensure they can be executed on any windows system. This book will attempt to focus on WDM drivers, but will include notes on writing DOS TSR drivers, and VDDs as well.

Driver Issues[edit]

Device Drivers operate in kernel mode so writing, testing, and debugging drivers can be a tricky task. Drivers should always be well tested before they are installed.

Since device drivers do not operate in user mode, the user mode libraries (kernel32.dll, user32.dll, wingdi.dll, msvcrt.dll) are not available to a device driver. Instead, a device driver must link directly to ntoskrnl.exe and hal.dll which provide Native API and executive services.

Writing a Driver[edit]

CDI Port Devices driver

Device drivers are typically written in C, using the Driver Development Kit (DDK). There are functional and object-oriented ways to program drivers, depending on the language chosen to write in. It is generally not possible to program a driver in Visual Basic or other high-level languages.

Because drivers operate in kernel mode, there are no restrictions on the actions that a driver may take. A driver may read and write to protected areas of memory, it may access I/O ports directly, and can generally do all sorts of very powerful things. This power makes drivers exceptionally capable of crashing an otherwise stable system.

The Windows platform DDK comes with header files, library files, and a command-line compiler that can be used to write device drivers in C or C++. There is no graphical interface to the DDK compiler.

Device Driver Stack[edit]

Windows implements device drivers in a highly-modular fashion, and it is important that we discuss some vocabulary before we continue the discussion of driver programming any further. The drivers necessary for any particular device are arranged in a driver stack, and are connected together internally by a singly-linked list, that starts at the bottom of the stack (the root driver), and terminates at the highest level driver. Each driver must contain at least 2 modules, a root driver, and a function driver. This combination, with some optional additions, constitute the whole of what people generally call a complete 'device driver'. Function Drivers will be the most common type of driver to be written, and will be of a primary focus in this wikibook.

Microsoft realized that certain classes of devices all behave similarly, and it would be a gigantic waste of time for every hardware manufacturer to have to write the entire driver code from scratch. To this end, Windows allows for a type of driver known as a class driver. Class drivers are themselves not complete function drivers, but class drivers can be dynamically linked to a regular function driver, and can simplify the development process quite a bit. It is possible to write your own class driver, but 3rd party programmers generally don't worry about it. In general, Microsoft will supply the class drivers, and driver developers will tap into those class drivers. This ensures that class drivers are fully Microsoft tested and certified, and that they are very versatile.

Another classification of driver is the filter driver. There are two general types of filter driver, an upper filter driver, and a lower filter driver. Upper filter drivers exist in the stack above the function driver, and--as their name implies--they filter the incoming I/O requests. Lower filter drivers are placed in the stack between the function driver and the root driver. Filter drivers are generally implemented as bug fixes, or as quick hack extensions for preexisting drivers.

Here is a general diagram of a driver stack:

Buses and Physical Devices[edit]

For simplification, let us use the term 'bus' to refer to any place on your computer where information can travel from one place to another. This is a very broad definition, and rightfully so: the term 'bus' needs to account for everything from USB, Serial ports, PCI cards, Video outputs, etc. Each bus is controlled by its own root driver. There is a USB root driver, a PCI root driver, and so on.

Let's now consider a mythical construct known as the root bus, a structure that all other buses connect into. A root bus object doesn't actually physically exist in your computer, but it is handy to think about it. Plus, the root bus has its own driver. The root bus driver object is responsible for keeping track of the devices connected on any bus in your entire computer, and ensuring that the data gets to where it is all going.

PnP[edit]

Plug-n-Play (PnP) is a technology that allows for the hardware on the computer to be changed dynamically, and the PnP software will automatically detect changes, and allocate important system resources. PnP gets its own root driver, that communicates closely with the Root bus driver, to keep track of the devices in your system.

Device Namespace, and Named Devices[edit]

'Arbitrary Context'[edit]

Drivers execute in the context of whatever thread was running when windows accessed the driver. To this end, we say that drivers execute in an 'arbitrary context'. Therefore, it is not good practice for a driver programmer to make any assumptions about the state of the processor at the entry point to a driver. There are a few issues that arise with this, so we will discuss them here.

Floating Point Arithmetic[edit]

Drivers that want to use MMX or floating point arithmetic may find they are in for some undue difficulty. Because a driver may be entered in any context, at any time, the floating point unit may contain partial results and unhandled exceptions from the user mode program that was interrupted to call the driver. It is not enough to simply save the context and then to restore it, because any unhandled exceptions may become 'unhandleable', and raise a system error or a bug check. There are only certain times when Microsoft recommends using floating point arithmetic, and we will discuss them later.

External Links[edit]

  • Understanding the Windows Driver Model - An introduction to the basic concepts needed for WDM programming
  • WDM I/O Concepts - Understanding the I/O concepts needed for WDM programming
  • Kernel-Mode Driver Framework 1.11 - the .ISO download includes the Driver Development Kit (DDK)
Devices
Retrieved from 'https://en.wikibooks.org/w/index.php?title=Windows_Programming/Device_Driver_Introduction&oldid=3744218'