ReactOS 0.4.16-dev-197-g92996da
cc.h
Go to the documentation of this file.
1#pragma once
2
3//
4// Define this if you want debugging support
5//
6#define _CC_DEBUG_ 0x00
7
8//
9// These define the Debug Masks Supported
10//
11#define CC_API_DEBUG 0x01
12
13//
14// Debug/Tracing support
15//
16#if _CC_DEBUG_
17#ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
18#define CCTRACE(x, ...) \
19 { \
20 DbgPrintEx("%s [%.16s] - ", \
21 __FUNCTION__, \
22 PsGetCurrentProcess()->ImageFileName); \
23 DbgPrintEx(__VA_ARGS__); \
24 }
25#else
26#define CCTRACE(x, ...) \
27 if (x & CcRosTraceLevel) \
28 { \
29 DbgPrint("%s [%.16s] - ", \
30 __FUNCTION__, \
31 PsGetCurrentProcess()->ImageFileName); \
32 DbgPrint(__VA_ARGS__); \
33 }
34#endif
35#else
36#define CCTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
37#endif
38
39//
40// Global Cc Data
41//
55
56//
57// Counters
58//
61extern ULONG CcMapDataWait;
63extern ULONG CcPinReadWait;
66extern ULONG CcDataPages;
67extern ULONG CcDataFlushes;
68
69typedef struct _PF_SCENARIO_ID
70{
74
75typedef struct _PF_LOG_ENTRY
76{
79 union
80 {
83 };
85
86typedef struct _PFSN_LOG_ENTRIES
87{
93
94typedef struct _PF_SECTION_INFO
95{
101
102typedef struct _PF_TRACE_HEADER
103{
108 ULONG ScenarioType; // PF_SCENARIO_TYPE
119
120typedef struct _PFSN_TRACE_DUMP
121{
125
126typedef struct _PFSN_TRACE_HEADER
127{
131 ULONG ScenarioType; // PF_SCENARIO_TYPE
157
159{
169
171{
191
192 /* ROS specific */
197#if DBG
198 BOOLEAN Trace; /* enable extra trace output for this cache map and it's VACBs */
199#endif
201
202#define READAHEAD_DISABLED 0x1
203#define WRITEBEHIND_DISABLED 0x2
204#define SHARED_CACHE_MAP_IN_CREATION 0x4
205#define SHARED_CACHE_MAP_IN_LAZYWRITE 0x8
206
207typedef struct _ROS_VACB
208{
209 /* Base address of the region where the view's data is mapped. */
211 /* Are the contents of the view newer than those on disk. */
213 /* Page out in progress */
216 /* Entry in the list of VACBs for this shared cache map. */
218 /* Entry in the list of VACBs which are dirty. */
220 /* Entry in the list of VACBs. */
222 /* Offset in the file which this view maps. */
224 /* Number of references. */
226 /* Pointer to the shared cache map for the file which this view maps data for. */
228 /* Pointer to the next VACB in a chain. */
230
231typedef struct _INTERNAL_BCB
232{
233 /* Lock */
238 CSHORT RefCount; /* (At offset 0x34 on WinNT4) */
241
242typedef struct _LAZY_WRITER
243{
251
252typedef struct _WORK_QUEUE_ENTRY
253{
255 union
256 {
257 struct
258 {
261 struct
262 {
263 SHARED_CACHE_MAP *SharedCacheMap;
265 struct
266 {
269 struct
270 {
271 unsigned long Reason;
274 unsigned char Function;
276
278{
284
286
287#define NODE_TYPE_DEFERRED_WRITE 0x02FC
288#define NODE_TYPE_PRIVATE_MAP 0x02FE
289#define NODE_TYPE_SHARED_MAP 0x02FF
290
291CODE_SEG("INIT")
292VOID
293NTAPI
295 VOID
296);
297
298VOID
299NTAPI
303);
304
305VOID
306NTAPI
311);
312
315 _In_ PROS_VACB Vacb,
317);
318
321 PROS_SHARED_CACHE_MAP SharedCacheMap,
323 PROS_VACB *Vacb
324);
325
328 _In_ PROS_VACB Vacb,
330 _In_ BOOLEAN NoRead,
333);
334
335CODE_SEG("INIT")
336VOID
337NTAPI
339
340VOID
341NTAPI
343
344CODE_SEG("INIT")
347
350 PROS_SHARED_CACHE_MAP SharedCacheMap,
352);
353
354VOID
355NTAPI
357
358VOID
360 PROS_VACB Vacb);
361
362VOID
364 PROS_VACB Vacb,
365 BOOLEAN LockViews);
366
372 BOOLEAN CalledFromLazy
373);
374
375VOID
377
378VOID
380
383 PROS_SHARED_CACHE_MAP SharedCacheMap,
384 PROS_VACB Vacb,
385 BOOLEAN Dirty,
386 BOOLEAN Mapped
387);
388
391 PROS_SHARED_CACHE_MAP SharedCacheMap,
393 PROS_VACB *Vacb
394);
395
400 BOOLEAN PinAccess,
401 PCACHE_MANAGER_CALLBACKS CallBacks,
402 PVOID LazyWriterContext
403);
404
408);
409
410VOID
411NTAPI
413
414VOID
415NTAPI
417
418VOID
419NTAPI
421 PKDPC Dpc,
425
426VOID
428
429VOID
431
432VOID
436
437VOID
440
443 IN PROS_VACB Vacb);
444
452{
453 if (Offset1 + Length1 <= Offset2)
454 return FALSE;
455 if (Offset2 + Length2 <= Offset1)
456 return FALSE;
457 return TRUE;
458}
459
466{
468}
469
470#define CcBugCheck(A, B, C) KeBugCheckEx(CACHE_MANAGER, BugCheckFileId | ((ULONG)(__LINE__)), A, B, C)
471
472#if DBG
473#define CcRosVacbIncRefCount(vacb) CcRosVacbIncRefCount_(vacb,__FILE__,__LINE__)
474#define CcRosVacbDecRefCount(vacb) CcRosVacbDecRefCount_(vacb,__FILE__,__LINE__)
475#define CcRosVacbGetRefCount(vacb) CcRosVacbGetRefCount_(vacb,__FILE__,__LINE__)
476
477ULONG
478CcRosVacbIncRefCount_(
479 PROS_VACB vacb,
480 PCSTR file,
481 INT line);
482
483ULONG
484CcRosVacbDecRefCount_(
485 PROS_VACB vacb,
486 PCSTR file,
487 INT line);
488
489ULONG
490CcRosVacbGetRefCount_(
491 PROS_VACB vacb,
492 PCSTR file,
493 INT line);
494
495#else
496#define CcRosVacbIncRefCount(vacb) InterlockedIncrement((PLONG)&(vacb)->ReferenceCount)
498ULONG
500 PROS_VACB vacb)
501{
502 ULONG Refs;
503
505 if (Refs == 0)
506 {
508 }
509 return Refs;
510}
511#define CcRosVacbGetRefCount(vacb) InterlockedCompareExchange((PLONG)&(vacb)->ReferenceCount, 0, 0)
512#endif
513
516 VOID);
#define CODE_SEG(...)
static CC_FILE_SIZES FileSizes
INT Offset2
Definition: FsRtlDissect.c:14
INT Offset1
Definition: FsRtlDissect.c:13
INT Length2
Definition: FsRtlDissect.c:16
INT Length1
Definition: FsRtlDissect.c:15
unsigned char BOOLEAN
#define InterlockedDecrement
Definition: armddk.h:52
LONG NTSTATUS
Definition: precomp.h:26
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:160
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define Trace(x)
Definition: inflate.c:42
return Iosb
Definition: create.c:4402
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
ULONG ERESOURCE
Definition: env_spec_w32.h:594
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:49
#define _Out_opt_
Definition: ms_sal.h:346
#define _In_
Definition: ms_sal.h:308
int Count
Definition: noreturn.cpp:7
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
@ FILE_OBJECT
Definition: ntobjenum.h:17
ULONG CcMapDataWait
Definition: pin.c:28
struct _PFSN_TRACE_DUMP * PPFSN_TRACE_DUMP
struct _PF_LOG_ENTRY * PPF_LOG_ENTRY
VOID NTAPI CcShutdownLazyWriter(VOID)
struct _ROS_VACB ROS_VACB
struct _PF_LOG_ENTRY PF_LOG_ENTRY
VOID NTAPI CcShutdownSystem(VOID)
Definition: cachesub.c:299
VOID NTAPI CcWorkerThread(PVOID Parameter)
struct _PF_SECTION_INFO PF_SECTION_INFO
NPAGED_LOOKASIDE_LIST CcTwilightLookasideList
Definition: lazywrite.c:38
NTSTATUS CcRosInternalFreeVacb(IN PROS_VACB Vacb)
struct _PF_SCENARIO_ID PF_SCENARIO_ID
VOID CcPostDeferredWrites(VOID)
Definition: copy.c:73
VOID NTAPI CcMdlReadComplete2(IN PFILE_OBJECT FileObject, IN PMDL MemoryDescriptorList)
Definition: mdlsup.c:83
struct _LAZY_WRITER * PLAZY_WRITER
VOID CcRosMarkDirtyVacb(PROS_VACB Vacb)
Definition: view.c:666
struct _ROS_SHARED_CACHE_MAP ROS_SHARED_CACHE_MAP
struct _LAZY_WRITER LAZY_WRITER
NTSTATUS CcRosInitializeFileCache(PFILE_OBJECT FileObject, PCC_FILE_SIZES FileSizes, BOOLEAN PinAccess, PCACHE_MANAGER_CALLBACKS CallBacks, PVOID LazyWriterContext)
Definition: view.c:1286
BOOLEAN CcInitializeCacheManager(VOID)
Definition: fssup.c:83
KSPIN_LOCK CcDeferredWriteSpinLock
Definition: view.c:58
ULONG CcMapDataNoWait
Definition: pin.c:29
NTSTATUS CcRosReleaseVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, PROS_VACB Vacb, BOOLEAN Dirty, BOOLEAN Mapped)
Definition: view.c:591
struct _PFSN_TRACE_HEADER PFSN_TRACE_HEADER
VOID CcScheduleLazyWriteScan(BOOLEAN NoDelay)
ULONG CcLazyWritePages
Definition: lazywrite.c:20
struct _PFSN_PREFETCHER_GLOBALS PFSN_PREFETCHER_GLOBALS
VOID NTAPI CcInitCacheZeroPage(VOID)
Definition: copy.c:56
struct _INTERNAL_BCB * PINTERNAL_BCB
struct _PF_SECTION_INFO * PPF_SECTION_INFO
NTSTATUS CcRosFlushVacb(_In_ PROS_VACB Vacb, _Out_opt_ PIO_STATUS_BLOCK Iosb)
Definition: view.c:162
VOID NTAPI CcMdlWriteComplete2(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain)
Definition: mdlsup.c:111
ULONG CcPinReadWait
Definition: pin.c:30
enum _WORK_QUEUE_FUNCTIONS WORK_QUEUE_FUNCTIONS
FORCEINLINE BOOLEAN IsPointInRange(_In_ LONGLONG Offset1, _In_ LONGLONG Length1, _In_ LONGLONG Point)
Definition: cc.h:462
NTSTATUS CcRosRequestVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, PROS_VACB *Vacb)
Definition: view.c:1029
LIST_ENTRY CcDeferredWrites
Definition: view.c:57
LIST_ENTRY CcRegularWorkQueue
Definition: lazywrite.c:40
VOID CcPostWorkQueue(IN PWORK_QUEUE_ENTRY WorkItem, IN PLIST_ENTRY WorkQueue)
Definition: lazywrite.c:53
struct _PF_TRACE_HEADER PF_TRACE_HEADER
LARGE_INTEGER CcIdleDelay
Definition: lazywrite.c:46
BOOLEAN CcRosEnsureVacbResident(_In_ PROS_VACB Vacb, _In_ BOOLEAN Wait, _In_ BOOLEAN NoRead, _In_ ULONG Offset, _In_ ULONG Length)
Definition: view.c:931
enum _WORK_QUEUE_FUNCTIONS * PWORK_QUEUE_FUNCTIONS
LIST_ENTRY CcExpressWorkQueue
Definition: lazywrite.c:39
PROS_VACB CcRosLookupVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset)
Definition: view.c:623
VOID CcPerformReadAhead(IN PFILE_OBJECT FileObject)
Definition: copy.c:130
NTSTATUS CcRosReleaseFileCache(PFILE_OBJECT FileObject)
Definition: view.c:1230
ULONG CcDataPages
Definition: copy.c:43
VOID NTAPI CcInitView(VOID)
Definition: view.c:1476
LIST_ENTRY DirtyVacbListHead
Definition: view.c:41
VOID CcRosDereferenceCache(PFILE_OBJECT FileObject)
LIST_ENTRY CcPostTickWorkQueue
Definition: lazywrite.c:42
FORCEINLINE BOOLEAN DoRangesIntersect(_In_ LONGLONG Offset1, _In_ LONGLONG Length1, _In_ LONGLONG Offset2, _In_ LONGLONG Length2)
Definition: cc.h:447
LIST_ENTRY CcIdleWorkerThreadList
Definition: lazywrite.c:41
ULONG CcDataFlushes
Definition: copy.c:44
struct _PF_TRACE_HEADER * PPF_TRACE_HEADER
NTSTATUS CcRosGetVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, PROS_VACB *Vacb)
Definition: view.c:978
VOID NTAPI CcScanDpc(PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
ULONG CcRosTraceLevel
Definition: copy.c:31
struct _PFSN_LOG_ENTRIES PFSN_LOG_ENTRIES
BOOLEAN CcRosFreeOneUnusedVacb(VOID)
Definition: view.c:737
ULONG CcNumberWorkerThreads
Definition: lazywrite.c:48
LAZY_WRITER LazyWriter
Definition: lazywrite.c:37
VOID CcRosReferenceCache(PFILE_OBJECT FileObject)
struct _ROS_SHARED_CACHE_MAP * PROS_SHARED_CACHE_MAP
ULONG CcLazyWriteIos
Definition: lazywrite.c:21
ULONG CcPinMappedDataCount
Definition: pin.c:32
struct _PF_SCENARIO_ID * PPF_SCENARIO_ID
ULONG CcDirtyPageThreshold
Definition: view.c:55
struct _INTERNAL_BCB INTERNAL_BCB
struct _PFSN_TRACE_HEADER * PPFSN_TRACE_HEADER
struct _PFSN_PREFETCHER_GLOBALS * PPFSN_PREFETCHER_GLOBALS
struct _ROS_VACB * PROS_VACB
FORCEINLINE ULONG CcRosVacbDecRefCount(PROS_VACB vacb)
Definition: cc.h:499
ULONG CcTotalDirtyPages
Definition: view.c:56
_WORK_QUEUE_FUNCTIONS
Definition: cc.h:278
@ SetDone
Definition: cc.h:282
@ LazyScan
Definition: cc.h:281
@ WriteBehind
Definition: cc.h:280
@ ReadAhead
Definition: cc.h:279
VOID CcRosUnmarkDirtyVacb(PROS_VACB Vacb, BOOLEAN LockViews)
Definition: view.c:702
struct _PFSN_LOG_ENTRIES * PPFSN_LOG_ENTRIES
ULONG CcPinReadNoWait
Definition: pin.c:31
NTSTATUS CcRosFlushDirtyPages(ULONG Target, PULONG Count, BOOLEAN Wait, BOOLEAN CalledFromLazy)
Definition: view.c:308
struct _PFSN_TRACE_DUMP PFSN_TRACE_DUMP
VOID NTAPI CcPfInitializePrefetcher(VOID)
Definition: fssup.c:114
struct _WORK_QUEUE_ENTRY WORK_QUEUE_ENTRY
struct _WORK_QUEUE_ENTRY * PWORK_QUEUE_ENTRY
long LONG
Definition: pedump.c:60
ULONG PinCount
Definition: cc.h:237
ERESOURCE Lock
Definition: cc.h:234
CSHORT RefCount
Definition: cc.h:238
LIST_ENTRY BcbEntry
Definition: cc.h:239
PROS_VACB Vacb
Definition: cc.h:236
PUBLIC_BCB PFCB
Definition: cc.h:235
Definition: ketypes.h:699
BOOLEAN OtherWork
Definition: cc.h:248
BOOLEAN PendingTeardown
Definition: cc.h:249
KDPC ScanDpc
Definition: cc.h:245
LIST_ENTRY WorkQueue
Definition: cc.h:244
KTIMER ScanTimer
Definition: cc.h:246
BOOLEAN ScanActive
Definition: cc.h:247
Definition: typedefs.h:120
PF_LOG_ENTRY Entries[ANYSIZE_ARRAY]
Definition: cc.h:91
LONG MaxEntries
Definition: cc.h:90
LONG NumEntries
Definition: cc.h:89
LIST_ENTRY TraceBuffersLink
Definition: cc.h:88
PPFSN_TRACE_HEADER SystemWideTrace
Definition: cc.h:162
LIST_ENTRY ActiveTraces
Definition: cc.h:160
PKEVENT CompletedTracesEvent
Definition: cc.h:166
LIST_ENTRY CompletedTraces
Definition: cc.h:163
FAST_MUTEX CompletedTracesLock
Definition: cc.h:164
LONG NumCompletedTraces
Definition: cc.h:165
KSPIN_LOCK ActiveTracesLock
Definition: cc.h:161
LIST_ENTRY CompletedTracesLink
Definition: cc.h:122
PF_TRACE_HEADER Trace
Definition: cc.h:123
KTIMER TraceTimer
Definition: cc.h:138
ULONG NumTraceBuffers
Definition: cc.h:136
LARGE_INTEGER TraceTimerPeriod
Definition: cc.h:139
ULONG FaultsPerPeriod[10]
Definition: cc.h:142
PEPROCESS Process
Definition: cc.h:147
ULONG NumEventEntryIdxs
Definition: cc.h:133
LONG LastNumFaults
Definition: cc.h:143
PPF_SECTION_INFO SectionInfo
Definition: cc.h:154
ULONG ScenarioType
Definition: cc.h:131
EX_RUNDOWN_REF RefCount
Definition: cc.h:148
LIST_ENTRY ActiveTracesLink
Definition: cc.h:129
ULONG EventEntryIdxs[8]
Definition: cc.h:132
LARGE_INTEGER LaunchTime
Definition: cc.h:153
LONG NumFaults
Definition: cc.h:145
KDPC TraceTimerDpc
Definition: cc.h:140
WORK_QUEUE_ITEM EndTraceWorkItem
Definition: cc.h:149
PF_SCENARIO_ID ScenarioId
Definition: cc.h:130
LONG EndTraceCalled
Definition: cc.h:150
LONG CurPeriod
Definition: cc.h:144
PPFSN_LOG_ENTRIES CurrentTraceBuffer
Definition: cc.h:134
NTSTATUS TraceDumpStatus
Definition: cc.h:152
ULONG SectionInfoCount
Definition: cc.h:155
PPFSN_TRACE_DUMP TraceDump
Definition: cc.h:151
KSPIN_LOCK TraceTimerSpinLock
Definition: cc.h:141
ULONG Magic
Definition: cc.h:128
LONG MaxFaults
Definition: cc.h:146
LIST_ENTRY TraceBuffersList
Definition: cc.h:135
KSPIN_LOCK TraceBufferSpinLock
Definition: cc.h:137
Definition: cc.h:76
ULONG Type
Definition: cc.h:78
ULONG FileKey
Definition: cc.h:81
ULONG FileOffset
Definition: cc.h:77
ULONG FileSequenceNumber
Definition: cc.h:82
ULONG HashId
Definition: cc.h:72
WCHAR ScenName[30]
Definition: cc.h:71
ULONG FileIdLow
Definition: cc.h:98
ULONG FileSequenceNumber
Definition: cc.h:97
ULONG FileKey
Definition: cc.h:96
ULONG FileIdHigh
Definition: cc.h:99
LARGE_INTEGER LaunchTime
Definition: cc.h:116
ULONG FaultsPerPeriod[10]
Definition: cc.h:115
ULONG NumEntries
Definition: cc.h:112
ULONG MagicNumber
Definition: cc.h:105
ULONG Version
Definition: cc.h:104
ULONG EventEntryIdxs[8]
Definition: cc.h:109
ULONG Size
Definition: cc.h:106
ULONG NumSections
Definition: cc.h:114
ULONG NumEventEntryIdxs
Definition: cc.h:110
PF_SCENARIO_ID ScenarioId
Definition: cc.h:107
ULONG TraceBufferOffset
Definition: cc.h:111
ULONG ScenarioType
Definition: cc.h:108
ULONG SectionInfoOffset
Definition: cc.h:113
LIST_ENTRY CacheMapVacbListHead
Definition: cc.h:193
LARGE_INTEGER FileSize
Definition: cc.h:175
PRIVATE_CACHE_MAP PrivateCacheMap
Definition: cc.h:190
KSPIN_LOCK CacheMapLock
Definition: cc.h:195
PKEVENT CreateEvent
Definition: cc.h:184
LARGE_INTEGER ValidDataLength
Definition: cc.h:178
PCACHE_MANAGER_CALLBACKS Callbacks
Definition: cc.h:185
LIST_ENTRY SharedCacheMapLinks
Definition: cc.h:181
CSHORT NodeTypeCode
Definition: cc.h:172
ULONG DirtyPageThreshold
Definition: cc.h:188
ULONG OpenCount
Definition: cc.h:174
PVOID LazyWriteContext
Definition: cc.h:186
ULONG DirtyPages
Definition: cc.h:180
KSPIN_LOCK BcbSpinLock
Definition: cc.h:189
LIST_ENTRY PrivateList
Definition: cc.h:187
LARGE_INTEGER SectionSize
Definition: cc.h:177
CSHORT NodeByteSize
Definition: cc.h:173
BOOLEAN PinAccess
Definition: cc.h:194
LIST_ENTRY BcbList
Definition: cc.h:176
PFILE_OBJECT FileObject
Definition: cc.h:179
KGUARDED_MUTEX FlushCacheLock
Definition: cc.h:196
Definition: cc.h:208
ULONG MappedCount
Definition: cc.h:215
LIST_ENTRY CacheMapVacbListEntry
Definition: cc.h:217
BOOLEAN Dirty
Definition: cc.h:212
PROS_SHARED_CACHE_MAP SharedCacheMap
Definition: cc.h:227
LARGE_INTEGER FileOffset
Definition: cc.h:223
PVOID BaseAddress
Definition: cc.h:210
volatile ULONG ReferenceCount
Definition: cc.h:225
BOOLEAN PageOut
Definition: cc.h:214
LIST_ENTRY DirtyVacbListEntry
Definition: cc.h:219
LIST_ENTRY VacbLruListEntry
Definition: cc.h:221
Definition: cc.h:253
unsigned long Reason
Definition: cc.h:271
struct _WORK_QUEUE_ENTRY::@1745::@1747 Write
union _WORK_QUEUE_ENTRY::@1745 Parameters
struct _WORK_QUEUE_ENTRY::@1745::@1746 Read
KEVENT * Event
Definition: cc.h:267
struct _WORK_QUEUE_ENTRY::@1745::@1749 Notification
LIST_ENTRY WorkQueueLinks
Definition: cc.h:254
FILE_OBJECT * FileObject
Definition: cc.h:259
unsigned char Function
Definition: cc.h:274
SHARED_CACHE_MAP * SharedCacheMap
Definition: cc.h:263
Definition: fci.c:127
Definition: parser.c:49
uint32_t * PULONG
Definition: typedefs.h:59
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
int64_t LONGLONG
Definition: typedefs.h:68
#define NTAPI
Definition: typedefs.h:36
int32_t INT
Definition: typedefs.h:58
const char * PCSTR
Definition: typedefs.h:52
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
short CSHORT
Definition: umtypes.h:127
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
#define FORCEINLINE
Definition: wdftypes.h:67
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
Definition: wdfworkitem.h:115
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
LIST_ENTRY WorkQueue
Definition: workqueue.c:16
PUBLIC_BCB
Definition: cctypes.h:12
FAST_MUTEX
Definition: extypes.h:17
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
* PFILE_OBJECT
Definition: iotypes.h:1998
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:688
_In_opt_ PVOID DeferredContext
Definition: ketypes.h:687
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:689
_Inout_ PMDL MemoryDescriptorList
Definition: mmfuncs.h:405
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:336
__wchar_t WCHAR
Definition: xmlstorage.h:180