ReactOS 0.4.15-dev-7958-gcd0bb1a
ntifs_ex.h
Go to the documentation of this file.
1
2// Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
3// All rights reserved
4// This file was released under the GPLv2 on June 2015.
6
7#ifndef __NTIFS_EX_H__
8#define __NTIFS_EX_H__
9
10#ifndef WIN64
11
12// _MM_PAGE_PRIORITY_ provides a method for the system to handle requests
13// intelligently in low resource conditions.
14//
15// LowPagePriority should be used when it is acceptable to the driver for the
16// mapping request to fail if the system is low on resources. An example of
17// this could be for a non-critical network connection where the driver can
18// handle the failure case when system resources are close to being depleted.
19//
20// NormalPagePriority should be used when it is acceptable to the driver for the
21// mapping request to fail if the system is very low on resources. An example
22// of this could be for a non-critical local filesystem request.
23//
24// HighPagePriority should be used when it is unacceptable to the driver for the
25// mapping request to fail unless the system is completely out of resources.
26// An example of this would be the paging file path in a driver.
27//
28
29#if 0
30typedef enum _MM_PAGE_PRIORITY {
35#endif
36
37#endif //WIN64
38
39//
40// Note: This function is not available in WDM 1.0
41//
42#if 0
50 IN ULONG BugCheckOnFailure,
52 );
53#endif
54
55// PVOID
56// MmGetSystemAddressForMdlSafe (
57// IN PMDL MDL,
58// IN MM_PAGE_PRIORITY PRIORITY
59// )
60//
61// Routine Description:
62//
63// This routine returns the mapped address of an MDL. If the
64// Mdl is not already mapped or a system address, it is mapped.
65//
66// Arguments:
67//
68// MemoryDescriptorList - Pointer to the MDL to map.
69//
70// Priority - Supplies an indication as to how important it is that this
71// request succeed under low available PTE conditions.
72//
73// Return Value:
74//
75// Returns the base address where the pages are mapped. The base address
76// has the same offset as the virtual address in the MDL.
77//
78// Unlike MmGetSystemAddressForMdl, Safe guarantees that it will always
79// return NULL on failure instead of bugchecking the system.
80//
81// This macro is not usable by WDM 1.0 drivers as 1.0 did not include
82// MmMapLockedPagesSpecifyCache. The solution for WDM 1.0 drivers is to
83// provide synchronization and set/reset the MDL_MAPPING_CAN_FAIL bit.
84//
85//--
86
87#if 0
88#define MmGetSystemAddressForMdlSafe(MDL, PRIORITY) \
89 (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \
90 MDL_SOURCE_IS_NONPAGED_POOL)) ? \
91 ((MDL)->MappedSystemVa) : \
92 (MmMapLockedPagesSpecifyCache((MDL), \
93 KernelMode, \
94 MmCached, \
95 NULL, \
96 FALSE, \
97 (PRIORITY))))
98#endif
99
100
102{
103 PVOID Addr;
104
106 Addr = Mdl->MappedSystemVa;
107 } else {
108 CSHORT PrevFlag = Mdl->MdlFlags & MDL_MAPPING_CAN_FAIL;
109
110 Mdl->MdlFlags |= MDL_MAPPING_CAN_FAIL;
112 Mdl->MdlFlags = (Mdl->MdlFlags & ~MDL_MAPPING_CAN_FAIL) | PrevFlag;
113 }
114
115 return(Addr);
116}
117
118#define FULL_SECURITY_INFORMATION (OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION | SACL_SECURITY_INFORMATION)
119
120#ifndef WIN64
121#if 0
123ULONG
124NTAPI
127);
128#endif
129
130#endif //WIN64
131
134NTAPI
137 IN PSID Group,
139);
140
143NTAPI
147 IN PACL Sacl,
149);
150
152PUCHAR
153NTAPI
155 IN PSID Sid
156);
157
158#if 0
160HANDLE
163);
164#endif
165
168NTAPI
173);
174
177NTAPI
181 IN ULONG SubAuthority0,
182 IN ULONG SubAuthority1,
183 IN ULONG SubAuthority2,
184 IN ULONG SubAuthority3,
185 IN ULONG SubAuthority4,
186 IN ULONG SubAuthority5,
187 IN ULONG SubAuthority6,
188 IN ULONG SubAuthority7,
189 OUT PSID *Sid
190);
191
194NTAPI
197 IN PVOID Sid,
199);
200
203NTAPI
206 OUT PSID *Group,
208);
209
212NTAPI
215 OUT PSID *Owner,
217);
218
221NTAPI
223 IN OUT PSID Sid,
226);
227
228#ifndef WIN64
229
230#if 0
231
232typedef struct _TOKEN_OWNER { // to
233 PSID Owner;
235
236typedef struct _TOKEN_PRIMARY_GROUP { // tpg
239
240#endif
241
242#endif //WIN64
243
244// The following macro is used to detemine if the file object is opened
245// for read only access (i.e., it is not also opened for write access or
246// delete access).
247//
248// BOOLEAN
249// IsFileObjectReadOnly (
250// IN PFILE_OBJECT FileObject
251// );
252
253#define IsFileObjectReadOnly(FO) (!((FO)->WriteAccess | (FO)->DeleteAccess))
254
255//
256#ifndef FSCTL_GET_COMPRESSION
257
258#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
259#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
260
261#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
262#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
263
264#define FSCTL_GET_HFS_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
265
266#endif //FSCTL_GET_COMPRESSION
267
268
269#if (_WIN32_WINNT >= 0x0500)
270#if 0
271#define FSCTL_READ_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS)
272#define FSCTL_WRITE_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS)
273#define FSCTL_FIND_FILES_BY_SID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
274
275#define FSCTL_DUMP_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37, METHOD_NEITHER, FILE_ANY_ACCESS)
276#define FSCTL_SET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_WRITE_DATA)
277#define FSCTL_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
278#define FSCTL_DELETE_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_WRITE_DATA)
279#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_WRITE_DATA)
280#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
281#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_WRITE_DATA)
282#define FSCTL_ENUM_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_READ_DATA)
283#define FSCTL_SECURITY_ID_CHECK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA)
284#define FSCTL_READ_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_READ_DATA)
285#define FSCTL_SET_OBJECT_ID_EXTENDED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_WRITE_DATA)
286#define FSCTL_CREATE_OR_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS)
287#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_WRITE_DATA)
288#define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA)
289#define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA)
290#define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
291#define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_BUFFERED, FILE_ANY_ACCESS)
292#define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS)
293#define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_ANY_ACCESS)
294#define FSCTL_READ_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_ANY_ACCESS)
295#define FSCTL_CREATE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_READ_DATA)
296#define FSCTL_READ_FILE_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_READ_DATA)
297#define FSCTL_WRITE_USN_CLOSE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_READ_DATA)
298#define FSCTL_EXTEND_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
299#define FSCTL_QUERY_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
300#define FSCTL_DELETE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS)
301#define FSCTL_MARK_HANDLE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
302#define FSCTL_SIS_COPYFILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS)
303#define FSCTL_SIS_LINK_FILES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
304#define FSCTL_HSM_MSG CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
305
306#define FSCTL_HSM_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
307#define FSCTL_RECALL_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS)
308
309#define FSCTL_READ_FROM_PLEX CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA)
310#define FSCTL_FILE_PREFETCH CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
311#endif
312#endif // (_WIN32_WINNT >= 0x0500)
313
314// file system flags
315#ifndef FILE_VOLUME_QUOTAS
316
317#define FILE_VOLUME_QUOTAS 0x00000020
318#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
319#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
320#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
321#define FS_LFN_APIS 0x00004000
322#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
323#define FILE_SUPPORTS_ENCRYPTION 0x00020000
324#define FILE_NAMED_STREAMS 0x00040000
325#define FILE_READ_ONLY_VOLUME 0x00080000
326
327#endif //FILE_VOLUME_QUOTAS
328
329// Output flags for the FSCTL_IS_VOLUME_DIRTY
330#define VOLUME_IS_DIRTY (0x00000001)
331#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
332
335NTAPI
344 IN ULONG InputBufferSize,
346 IN ULONG OutputBufferSize
347 );
348
351NTAPI
355 IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
356 IN PVOID UserApcContext OPTIONAL,
360 IN ULONG InputBufferSize,
362 IN ULONG OutputBufferSize
363 );
364
365
368NTAPI
372 OUT PVOID FsInformation,
375 );
376
377
378#ifndef FILE_ATTRIBUTE_SPARSE_FILE
379
380#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
381#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
382#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
383#define FILE_ATTRIBUTE_OFFLINE 0x00001000
384#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
385#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
386
387#endif //FILE_ATTRIBUTE_SPARSE_FILE
388
389#define FileFsFullSizeInformation (FS_INFORMATION_CLASS(7))
390#define FileFsObjectIdInformation (FS_INFORMATION_CLASS(8))
391#define FileFsDriverPathInformation (FS_INFORMATION_CLASS(9))
392
393#ifndef WIN64
394
395#if 0
396typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
403#endif
404
405#endif //WIN64
406
407#ifndef IRP_MN_SURPRISE_REMOVAL
408#define IRP_MN_SURPRISE_REMOVAL 0x17
409#endif //IRP_MN_SURPRISE_REMOVAL
410
411#ifndef IoCopyCurrentIrpStackLocationToNext
412
413#define IoCopyCurrentIrpStackLocationToNext( Irp ) { \
414 PIO_STACK_LOCATION irpSp; \
415 PIO_STACK_LOCATION nextIrpSp; \
416 irpSp = IoGetCurrentIrpStackLocation( (Irp) ); \
417 nextIrpSp = IoGetNextIrpStackLocation( (Irp) ); \
418 RtlCopyMemory( nextIrpSp, irpSp, FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine)); \
419 nextIrpSp->Control = 0; }
420
421#define IoSkipCurrentIrpStackLocation( Irp ) \
422 (Irp)->CurrentLocation++; \
423 (Irp)->Tail.Overlay.CurrentStackLocation++;
424
425#endif //IoCopyCurrentIrpStackLocationToNext
426
427#ifndef VPB_REMOVE_PENDING
428#define VPB_REMOVE_PENDING 0x00000008
429#endif //VPB_REMOVE_PENDING
430
431
432//
433// Volume lock/unlock notification routines, implemented in PnP.c
434//
435// These routines provide PnP volume lock notification support
436// for all filesystems.
437//
438
439#define FSRTL_VOLUME_DISMOUNT 1
440#define FSRTL_VOLUME_DISMOUNT_FAILED 2
441#define FSRTL_VOLUME_LOCK 3
442#define FSRTL_VOLUME_LOCK_FAILED 4
443#define FSRTL_VOLUME_UNLOCK 5
444#define FSRTL_VOLUME_MOUNT 6
445
446/*NTKERNELAPI
447NTSTATUS
448FsRtlNotifyVolumeEvent (
449 IN PFILE_OBJECT FileObject,
450 IN ULONG EventCode
451 );*/
452
456 );
457
458#include "Include/ntddk_ex.h"
459
460#endif //__NTIFS_EX_H__
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
#define NTSYSAPI
Definition: ntoskrnl.h:12
#define NTSTATUS
Definition: precomp.h:21
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
Definition: fltkernel.h:1330
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1231
enum _FSINFOCLASS FS_INFORMATION_CLASS
struct _FILE_FS_FULL_SIZE_INFORMATION FILE_FS_FULL_SIZE_INFORMATION
struct _FILE_FS_FULL_SIZE_INFORMATION * PFILE_FS_FULL_SIZE_INFORMATION
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
Definition: hubbusif.h:121
PVOID NTAPI MmMapLockedPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode)
Definition: mdlsup.c:818
PVOID NTAPI MmMapLockedPagesSpecifyCache(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN MEMORY_CACHING_TYPE CacheType, IN PVOID BaseAddress, IN ULONG BugCheckOnFailure, IN ULONG Priority)
Definition: mdlsup.c:660
_MM_PAGE_PRIORITY
Definition: imports.h:54
@ NormalPagePriority
Definition: imports.h:56
@ LowPagePriority
Definition: imports.h:55
@ HighPagePriority
Definition: imports.h:57
enum _MM_PAGE_PRIORITY MM_PAGE_PRIORITY
static OUT PIO_STATUS_BLOCK IoStatusBlock
Definition: pipe.c:75
_In_ NDIS_STATUS EventCode
Definition: ndis.h:4751
#define KernelMode
Definition: asm.h:34
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
Definition: iofuncs.h:727
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE ApcRoutine
Definition: iofuncs.h:726
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
Definition: rtlfuncs.h:1591
_In_opt_ PSID Group
Definition: rtlfuncs.h:1646
NTSYSAPI ULONG NTAPI RtlLengthRequiredSid(IN ULONG SubAuthorityCount)
Definition: sid.c:54
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
Definition: rtlfuncs.h:1597
_In_ PSID_IDENTIFIER_AUTHORITY _In_ UCHAR SubAuthorityCount
Definition: rtlfuncs.h:1515
_In_opt_ PSID _In_opt_ BOOLEAN GroupDefaulted
Definition: rtlfuncs.h:1648
_In_ PSID _In_ BOOLEAN AllocateDestinationString
Definition: rtlfuncs.h:1349
_Out_writes_bytes_to_opt_ BufferLength PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor
Definition: rtlfuncs.h:1120
_In_opt_ PSID _In_opt_ BOOLEAN OwnerDefaulted
Definition: rtlfuncs.h:1672
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL Sacl
Definition: rtlfuncs.h:1595
_Out_ _Inout_ POEM_STRING DestinationString
Definition: rtlfuncs.h:1909
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1133
_In_ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
Definition: rtlfuncs.h:1513
VOID(* PIO_APC_ROUTINE)(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved)
Definition: nt_native.h:877
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
NTSYSAPI NTSTATUS NTAPI ZwDeviceIoControlFile(IN HANDLE DeviceHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL, IN PVOID UserApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, OUT PVOID OutputBuffer, IN ULONG OutputBufferSize)
NTSYSAPI NTSTATUS NTAPI RtlGetGroupSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor, OUT PSID *Group, OUT PBOOLEAN GroupDefaulted)
Definition: sd.c:280
NTSYSAPI NTSTATUS NTAPI RtlAllocateAndInitializeSid(IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount, IN ULONG SubAuthority0, IN ULONG SubAuthority1, IN ULONG SubAuthority2, IN ULONG SubAuthority3, IN ULONG SubAuthority4, IN ULONG SubAuthority5, IN ULONG SubAuthority6, IN ULONG SubAuthority7, OUT PSID *Sid)
Definition: sid.c:290
NTSYSAPI NTSTATUS NTAPI RtlSetGroupSecurityDescriptor(IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID Group, IN BOOLEAN GroupDefaulted)
Definition: sd.c:410
NTSYSAPI NTSTATUS NTAPI ZwFsControlFile(IN HANDLE DeviceHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, OUT PVOID OutputBuffer, IN ULONG OutputBufferSize)
NTSYSAPI NTSTATUS NTAPI RtlConvertSidToUnicodeString(OUT PUNICODE_STRING DestinationString, IN PVOID Sid, IN BOOLEAN AllocateDestinationString)
NTSTATUS(* ptrFsRtlNotifyVolumeEvent)(IN PFILE_OBJECT FileObject, IN ULONG EventCode)
Definition: ntifs_ex.h:453
__inline PVOID MmGetSystemAddressForMdlSafer(IN PMDL Mdl)
Definition: ntifs_ex.h:101
NTSYSAPI NTSTATUS NTAPI RtlGetOwnerSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor, OUT PSID *Owner, OUT PBOOLEAN OwnerDefaulted)
Definition: sd.c:257
NTSYSAPI NTSTATUS NTAPI RtlSetSaclSecurityDescriptor(IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN BOOLEAN SaclPresent, IN PACL Sacl, IN BOOLEAN SaclDefaulted)
Definition: sd.c:342
NTSYSAPI NTSTATUS NTAPI RtlAbsoluteToSelfRelativeSD(IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor, IN OUT PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor, IN PULONG BufferLength)
Definition: sd.c:626
NTSYSAPI NTSTATUS NTAPI ZwQueryVolumeInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FsInformation, IN ULONG Length, IN FS_INFORMATION_CLASS FsInformationClass)
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid(IN PSID Sid)
Definition: sid.c:104
NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(IN OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount)
PACCESS_TOKEN NTAPI PsReferencePrimaryToken(PEPROCESS Process)
Definition: security.c:440
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
LARGE_INTEGER ActualAvailableAllocationUnits
Definition: from_kernel.h:272
LARGE_INTEGER CallerAvailableAllocationUnits
Definition: from_kernel.h:271
LARGE_INTEGER TotalAllocationUnits
Definition: from_kernel.h:270
PSID Owner
Definition: setypes.h:1028
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
#define IN
Definition: typedefs.h:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
short CSHORT
Definition: umtypes.h:127
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
Definition: wdfinterrupt.h:655
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
#define NTKERNELAPI
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wsk.h:191
* PFILE_OBJECT
Definition: iotypes.h:1998
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_Inout_ PMDL MemoryDescriptorList
Definition: mmfuncs.h:405
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
Definition: mmfuncs.h:396
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
Definition: mmfuncs.h:217
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE
#define MDL_MAPPING_CAN_FAIL
Definition: mmtypes.h:31
#define MDL_SOURCE_IS_NONPAGED_POOL
Definition: mmtypes.h:20
#define MDL_MAPPED_TO_SYSTEM_VA
Definition: mmtypes.h:18
_Out_ PBOOLEAN SaclPresent
Definition: rtlfuncs.h:2413
_Out_ PBOOLEAN _Out_ PACL _Out_ PBOOLEAN SaclDefaulted
Definition: rtlfuncs.h:2415
struct _TOKEN_PRIMARY_GROUP TOKEN_PRIMARY_GROUP
* PSID_IDENTIFIER_AUTHORITY
Definition: setypes.h:464
struct _TOKEN_OWNER TOKEN_OWNER
unsigned char UCHAR
Definition: xmlstorage.h:181