ReactOS 0.4.15-dev-7918-g2a2556c
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 */
196#if DBG
197 BOOLEAN Trace; /* enable extra trace output for this cache map and it's VACBs */
198#endif
200
201#define READAHEAD_DISABLED 0x1
202#define WRITEBEHIND_DISABLED 0x2
203#define SHARED_CACHE_MAP_IN_CREATION 0x4
204#define SHARED_CACHE_MAP_IN_LAZYWRITE 0x8
205
206typedef struct _ROS_VACB
207{
208 /* Base address of the region where the view's data is mapped. */
210 /* Are the contents of the view newer than those on disk. */
212 /* Page out in progress */
215 /* Entry in the list of VACBs for this shared cache map. */
217 /* Entry in the list of VACBs which are dirty. */
219 /* Entry in the list of VACBs. */
221 /* Offset in the file which this view maps. */
223 /* Number of references. */
225 /* Pointer to the shared cache map for the file which this view maps data for. */
227 /* Pointer to the next VACB in a chain. */
229
230typedef struct _INTERNAL_BCB
231{
232 /* Lock */
237 CSHORT RefCount; /* (At offset 0x34 on WinNT4) */
240
241typedef struct _LAZY_WRITER
242{
250
251typedef struct _WORK_QUEUE_ENTRY
252{
254 union
255 {
256 struct
257 {
260 struct
261 {
262 SHARED_CACHE_MAP *SharedCacheMap;
264 struct
265 {
268 struct
269 {
270 unsigned long Reason;
273 unsigned char Function;
275
277{
283
285
286#define NODE_TYPE_DEFERRED_WRITE 0x02FC
287#define NODE_TYPE_PRIVATE_MAP 0x02FE
288#define NODE_TYPE_SHARED_MAP 0x02FF
289
290CODE_SEG("INIT")
291VOID
292NTAPI
294 VOID
295);
296
297VOID
298NTAPI
302);
303
304VOID
305NTAPI
310);
311
314 _In_ PROS_VACB Vacb,
316);
317
320 PROS_SHARED_CACHE_MAP SharedCacheMap,
322 PROS_VACB *Vacb
323);
324
327 _In_ PROS_VACB Vacb,
329 _In_ BOOLEAN NoRead,
332);
333
334CODE_SEG("INIT")
335VOID
336NTAPI
338
339VOID
340NTAPI
342
343CODE_SEG("INIT")
346
349 PROS_SHARED_CACHE_MAP SharedCacheMap,
351);
352
353VOID
354NTAPI
356
357VOID
359 PROS_VACB Vacb);
360
361VOID
363 PROS_VACB Vacb,
364 BOOLEAN LockViews);
365
371 BOOLEAN CalledFromLazy
372);
373
374VOID
376
377VOID
379
382 PROS_SHARED_CACHE_MAP SharedCacheMap,
383 PROS_VACB Vacb,
384 BOOLEAN Dirty,
385 BOOLEAN Mapped
386);
387
390 PROS_SHARED_CACHE_MAP SharedCacheMap,
392 PROS_VACB *Vacb
393);
394
399 BOOLEAN PinAccess,
400 PCACHE_MANAGER_CALLBACKS CallBacks,
401 PVOID LazyWriterContext
402);
403
407);
408
409VOID
410NTAPI
412
413VOID
414NTAPI
416
417VOID
418NTAPI
420 PKDPC Dpc,
424
425VOID
427
428VOID
430
431VOID
435
436VOID
439
442 IN PROS_VACB Vacb);
443
451{
452 if (Offset1 + Length1 <= Offset2)
453 return FALSE;
454 if (Offset2 + Length2 <= Offset1)
455 return FALSE;
456 return TRUE;
457}
458
465{
467}
468
469#define CcBugCheck(A, B, C) KeBugCheckEx(CACHE_MANAGER, BugCheckFileId | ((ULONG)(__LINE__)), A, B, C)
470
471#if DBG
472#define CcRosVacbIncRefCount(vacb) CcRosVacbIncRefCount_(vacb,__FILE__,__LINE__)
473#define CcRosVacbDecRefCount(vacb) CcRosVacbDecRefCount_(vacb,__FILE__,__LINE__)
474#define CcRosVacbGetRefCount(vacb) CcRosVacbGetRefCount_(vacb,__FILE__,__LINE__)
475
476ULONG
477CcRosVacbIncRefCount_(
478 PROS_VACB vacb,
479 PCSTR file,
480 INT line);
481
482ULONG
483CcRosVacbDecRefCount_(
484 PROS_VACB vacb,
485 PCSTR file,
486 INT line);
487
488ULONG
489CcRosVacbGetRefCount_(
490 PROS_VACB vacb,
491 PCSTR file,
492 INT line);
493
494#else
495#define CcRosVacbIncRefCount(vacb) InterlockedIncrement((PLONG)&(vacb)->ReferenceCount)
497ULONG
499 PROS_VACB vacb)
500{
501 ULONG Refs;
502
504 if (Refs == 0)
505 {
507 }
508 return Refs;
509}
510#define CcRosVacbGetRefCount(vacb) InterlockedCompareExchange((PLONG)&(vacb)->ReferenceCount, 0, 0)
511#endif
512
515 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:649
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:1260
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:574
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:461
NTSTATUS CcRosRequestVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, PROS_VACB *Vacb)
Definition: view.c:1008
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:910
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:606
VOID CcPerformReadAhead(IN PFILE_OBJECT FileObject)
Definition: copy.c:130
NTSTATUS CcRosReleaseFileCache(PFILE_OBJECT FileObject)
Definition: view.c:1204
ULONG CcDataPages
Definition: copy.c:43
VOID NTAPI CcInitView(VOID)
Definition: view.c:1449
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:446
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:957
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:720
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:498
ULONG CcTotalDirtyPages
Definition: view.c:56
_WORK_QUEUE_FUNCTIONS
Definition: cc.h:277
@ SetDone
Definition: cc.h:281
@ LazyScan
Definition: cc.h:280
@ WriteBehind
Definition: cc.h:279
@ ReadAhead
Definition: cc.h:278
VOID CcRosUnmarkDirtyVacb(PROS_VACB Vacb, BOOLEAN LockViews)
Definition: view.c:685
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:236
ERESOURCE Lock
Definition: cc.h:233
CSHORT RefCount
Definition: cc.h:237
LIST_ENTRY BcbEntry
Definition: cc.h:238
PROS_VACB Vacb
Definition: cc.h:235
PUBLIC_BCB PFCB
Definition: cc.h:234
Definition: ketypes.h:699
BOOLEAN OtherWork
Definition: cc.h:247
BOOLEAN PendingTeardown
Definition: cc.h:248
KDPC ScanDpc
Definition: cc.h:244
LIST_ENTRY WorkQueue
Definition: cc.h:243
KTIMER ScanTimer
Definition: cc.h:245
BOOLEAN ScanActive
Definition: cc.h:246
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
Definition: cc.h:207
ULONG MappedCount
Definition: cc.h:214
LIST_ENTRY CacheMapVacbListEntry
Definition: cc.h:216
BOOLEAN Dirty
Definition: cc.h:211
PROS_SHARED_CACHE_MAP SharedCacheMap
Definition: cc.h:226
LARGE_INTEGER FileOffset
Definition: cc.h:222
PVOID BaseAddress
Definition: cc.h:209
volatile ULONG ReferenceCount
Definition: cc.h:224
BOOLEAN PageOut
Definition: cc.h:213
LIST_ENTRY DirtyVacbListEntry
Definition: cc.h:218
LIST_ENTRY VacbLruListEntry
Definition: cc.h:220
Definition: cc.h:252
unsigned long Reason
Definition: cc.h:270
struct _WORK_QUEUE_ENTRY::@1741::@1742 Read
union _WORK_QUEUE_ENTRY::@1741 Parameters
struct _WORK_QUEUE_ENTRY::@1741::@1743 Write
struct _WORK_QUEUE_ENTRY::@1741::@1745 Notification
KEVENT * Event
Definition: cc.h:266
LIST_ENTRY WorkQueueLinks
Definition: cc.h:253
FILE_OBJECT * FileObject
Definition: cc.h:258
unsigned char Function
Definition: cc.h:273
SHARED_CACHE_MAP * SharedCacheMap
Definition: cc.h:262
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:323
__wchar_t WCHAR
Definition: xmlstorage.h:180