90573e380a1c69128666646f6e27f0c9cb9e5fdd
[reactos.git] / reactos / drivers / dd / serial / serial.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: Serial driver
4 * FILE: drivers/dd/serial/serial.c
5 * PURPOSE: Serial driver loading/unloading
6 *
7 * PROGRAMMERS: Hervé Poussineau (hpoussin@reactos.com)
8 */
9
10 //#define NDEBUG
11 #include "serial.h"
12
13 static VOID STDCALL
14 DriverUnload(IN PDRIVER_OBJECT DriverObject)
15 {
16 // nothing to do here yet
17 }
18
19 /*
20 * Standard DriverEntry method.
21 */
22 NTSTATUS STDCALL
23 DriverEntry(
24 IN PDRIVER_OBJECT DriverObject,
25 IN PUNICODE_STRING RegPath)
26 {
27 ULONG i;
28
29 DriverObject->DriverUnload = DriverUnload;
30 DriverObject->DriverExtension->AddDevice = SerialAddDevice;
31
32 for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
33 DriverObject->MajorFunction[i] = ForwardIrpAndForget;
34 DriverObject->MajorFunction[IRP_MJ_CREATE] = SerialCreate;
35 DriverObject->MajorFunction[IRP_MJ_CLOSE] = SerialClose;
36 DriverObject->MajorFunction[IRP_MJ_CLEANUP] = SerialCleanup;
37 DriverObject->MajorFunction[IRP_MJ_READ] = SerialRead;
38 DriverObject->MajorFunction[IRP_MJ_WRITE] = SerialWrite;
39 DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = SerialDeviceControl;
40 DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = SerialQueryInformation;
41 DriverObject->MajorFunction[IRP_MJ_PNP] = SerialPnp;
42 DriverObject->MajorFunction[IRP_MJ_POWER] = SerialPower;
43
44 return STATUS_SUCCESS;
45 }