master
 1/**
 2 * This file has no copyright assigned and is placed in the Public Domain.
 3 * This file is part of the mingw-w64 runtime package.
 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 5 */
 6
 7#ifndef _WDMSEC_H_
 8#define _WDMSEC_H_
 9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14extern const UNICODE_STRING SDDL_DEVOBJ_KERNEL_ONLY;
15#define SDDL_DEVOBJ_INF_SUPPLIED SDDL_DEVOBJ_KERNEL_ONLY
16
17extern const UNICODE_STRING SDDL_DEVOBJ_SYS_ALL;
18extern const UNICODE_STRING SDDL_DEVOBJ_SYS_ALL_ADM_ALL;
19extern const UNICODE_STRING SDDL_DEVOBJ_SYS_ALL_ADM_RX;
20extern const UNICODE_STRING SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R;
21extern const UNICODE_STRING SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R;
22extern const UNICODE_STRING SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RW_RES_R;
23extern const UNICODE_STRING SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX;
24
25#undef IoCreateDeviceSecure
26#define IoCreateDeviceSecure WdmlibIoCreateDeviceSecure
27
28NTSTATUS
29WdmlibIoCreateDeviceSecure(
30  PDRIVER_OBJECT DriverObject,
31  ULONG DeviceExtensionSize,
32  PUNICODE_STRING DeviceName,
33  DEVICE_TYPE DeviceType,
34  ULONG DeviceCharacteristics,
35  BOOLEAN Exclusive,
36  PCUNICODE_STRING DefaultSDDLString,
37  LPCGUID DeviceClassGuid,
38  PDEVICE_OBJECT *DeviceObject
39);
40
41#undef RtlInitUnicodeStringEx
42#define RtlInitUnicodeStringEx WdmlibRtlInitUnicodeStringEx
43
44NTSTATUS
45WdmlibRtlInitUnicodeStringEx(
46  PUNICODE_STRING DestinationString,
47  PCWSTR SourceString
48);
49
50#undef IoValidateDeviceIoControlAccess
51#define IoValidateDeviceIoControlAccess WdmlibIoValidateDeviceIoControlAccess
52
53NTSTATUS
54WdmlibIoValidateDeviceIoControlAccess(
55  PIRP Irp,
56  ULONG RequiredAccess
57);
58
59#ifdef __cplusplus
60}
61#endif
62
63#endif /* _WDMSEC_H_ */