xref: /reactos/drivers/crypto/ksecdd/ksecdd.c (revision b36d9bd9)
1 /*
2  * PROJECT:         ReactOS Drivers
3  * COPYRIGHT:       See COPYING in the top level directory
4  * PURPOSE:         Kernel Security Support Provider Interface Driver
5  *
6  * PROGRAMMERS:     Timo Kreuzer (timo.kreuzer@reactos.org)
7  */
8 
9 /* INCLUDES *******************************************************************/
10 
11 #include "ksecdd.h"
12 
13 #define NDEBUG
14 #include <debug.h>
15 
16 /* GLOBALS ********************************************************************/
17 
18 PDEVICE_OBJECT KsecDeviceObject;
19 
20 
21 /* FUNCTIONS ******************************************************************/
22 
23 NTSTATUS
24 NTAPI
25 DriverEntry(
26     _In_ PDRIVER_OBJECT DriverObject,
27     _In_ PUNICODE_STRING RegistryPath)
28 {
29     UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\KsecDD");
30     NTSTATUS Status;
31 
32     /* Create the KsecDD device */
33     Status = IoCreateDevice(DriverObject,
34                             0,
35                             &DeviceName,
36                             FILE_DEVICE_KSEC,
37                             0x100u,
38                             FALSE,
39                             &KsecDeviceObject);
40     if (!NT_SUCCESS(Status))
41     {
42         DPRINT1("Failed to create KsecDD device: 0x%lx\n", Status);
43         return Status;
44     }
45 
46     /* Set up dispatch table */
47     DriverObject->MajorFunction[IRP_MJ_CREATE] = KsecDdDispatch;
48     DriverObject->MajorFunction[IRP_MJ_CLOSE] = KsecDdDispatch;
49     DriverObject->MajorFunction[IRP_MJ_READ] = KsecDdDispatch;
50     DriverObject->MajorFunction[IRP_MJ_WRITE] = KsecDdDispatch;
51     DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = KsecDdDispatch;
52     DriverObject->MajorFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = KsecDdDispatch;
53     DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = KsecDdDispatch;
54 
55     /* Initialize */
56     KsecInitializeEncryptionSupport();
57 
58     return STATUS_SUCCESS;
59 }
60