1 #define _WIN32_WINNT 0x0500
6 #define DRIVER_NAME L"TestDriver"
8 #define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
9 #define STATUS_PRIVILEGE_NOT_HELD ((NTSTATUS)0xC0000061L)
11 typedef LONG NTSTATUS
;
16 BOOL
RegisterDriver(LPCWSTR lpDriverName
, LPCWSTR lpPathName
);
17 BOOL
StartDriver(LPCWSTR lpDriverName
);
18 BOOL
StopDriver(LPCWSTR lpDriverName
);
19 BOOL
UnregisterDriver(LPCWSTR lpDriverName
);
24 BOOL
ConvertPath(LPCWSTR lpPath
, LPWSTR lpDevice
);
25 BOOL
LoadVia_SystemLoadGdiDriverInformation(LPWSTR lpDriverPath
);
26 BOOL
LoadVia_SystemExtendServiceTableInformation(LPWSTR lpDriverPath
);
27 BOOL
NtStartDriver(LPCWSTR lpService
);
28 BOOL
NtStopDriver(LPCWSTR lpService
);
34 #define SystemLoadGdiDriverInformation 26
35 #define SystemExtendServiceTableInformation 38
36 NTSYSAPI NTSTATUS NTAPI
37 NtSetSystemInformation(IN INT SystemInformationClass
,
38 IN PVOID SystemInformation
,
39 IN ULONG SystemInformationLength
);
41 NtUnloadDriver(IN PUNICODE_STRING DriverServiceName
);
43 typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
45 UNICODE_STRING DriverName
;
49 PIMAGE_EXPORT_DIRECTORY ExportSectionPointer
;
51 } SYSTEM_GDI_DRIVER_INFORMATION
, *PSYSTEM_GDI_DRIVER_INFORMATION
;
53 typedef enum _OBJECT_INFORMATION_CLASS
{
54 ObjectBasicInformation
,
55 ObjectNameInformation
,
56 ObjectTypeInformation
,
57 ObjectAllTypesInformation
,
58 ObjectHandleInformation
61 NTSTATUS
NtQueryObject(IN HANDLE Handle
,
62 IN OBJECT_INFO_CLASS ObjectInformationClass
,
63 OUT PVOID ObjectInformation
,
64 IN ULONG ObjectInformationLength
,
65 OUT PULONG ReturnLength
);
68 typedef struct _OBJECT_NAME_INFORMATION
{
70 } OBJECT_NAME_INFORMATION
, *POBJECT_NAME_INFORMATION
;