summaryrefslogtreecommitdiff
path: root/serial/VirtualSerial2/README.md
blob: e42b8bdc63605c3a25f582ab6dd96e7f40b30632 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
topic: sample
urlFragment: virtual-serial-driver-sample-v2
description: Demonstrates UMDF version 2 serial drivers and includes a simple virtual serial driver (ComPort) and a controller-less modem driver (FakeModem).
languages:
- cpp
products:
- windows
---

<!---
    name: Virtual serial driver sample (UMDF version 2)
    platform: UMDF2
    language: cpp
    category: Serial
    description: Demonstrates UMDF version 2 serial drivers and includes a simple virtual serial driver (ComPort) and a controller-less modem driver (FakeModem).
    samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617965
--->

# Virtual serial driver sample

This sample demonstrates these two serial drivers:

- A simple virtual serial driver (ComPort)
- A controller-less modem driver (FakeModem).This driver supports sending and receiving AT commands using the ReadFile and WriteFile calls or via a TAPI interface using an application such as, HyperTerminal.

This sample driver is a minimal driver meant to demonstrate the usage of the User-Mode Driver Framework. It is not intended for use in a production environment.

For more information, see [Serial Controller and Device Drivers](http://msdn.microsoft.com/en-us/library/windows/hardware/ff546939) in the WDK documentation.

## Code tour

### comsup.cpp & comsup.h

- COM Support code - specifically base classes which provide implementations for the standard COM interfaces **IUnknown** and **IClassFactory** which are used throughout the sample.
- The implementation of **IClassFactory** is designed to create instances of the CMyDriver class. If you should change the name of your base driver class, you would also need to modify this file.

### dllsup.cpp

- DLL Support code - provides the DLL's entry point as well as the single required export (**DllGetClassObject**).
- These depend on comsup.cpp to perform the necessary class creation.

### exports.def

- This file lists the functions that the driver DLL exports.

### internal.h

- This is the main header file for the sample driver.

### driver.cpp & driver.h

- Definition and implementation of the driver callback class (CMyDriver) for the sample. This includes **DriverEntry** and events on the framework driver object.

### device.cpp & driver.h

- Definition and implementation of the device callback class (CMyDriver) for the sample. This includes events on the framework device object.

### queue.cpp & queue.h

- Definition and implementation of the base queue callback class (CMyQueue). This includes events on the framework I/O queue object.

### VirtualSerial.rc /FakeModem.rc

- This file defines resource information for the sample driver.

### VirtualSerial.inf / FakeModem.inf

- INF file that contains installation information for this driver.