WRK源码,可直接用VS打开


windows驱动编程的参考,里面是WRK的源码,可直接用VS打开,编程中有不懂的可以直接看
资源截图
代码片段和文件信息
/*++

Copyright (c) Microsoft Corporation. All rights reserved. 

You may only use this code if you agree to the terms of the Windows Research Kernel Source Code License agreement (see License.txt).
If you do not agree to the terms do not use the code.


Module Name:

    cachedat.c

Abstract:

    This module implements the Memory Management based cache management
    routines for the common Cache subsystem.

--*/

#include “cc.h“

//
//  Global SharedCacheMap lists and resource to synchronize access to it.
//
//

// extern KSPIN_LOCK CcMasterSpinLock;
LIST_ENTRY CcCleanSharedCacheMapList;
SHARED_CACHE_MAP_LIST_CURSOR CcDirtySharedCacheMapList;
SHARED_CACHE_MAP_LIST_CURSOR CcLazyWriterCursor;

//
//  Worker thread structures:
//
//      A spinlock to synchronize all three lists.
//      A count of the number of worker threads Cc will use
//      A count of the number of worker threads Cc in use
//      A listhead for preinitialized executive work items for Cc use.
//      A listhead for an express queue of WORK_QUEUE_ENTRYs
//      A listhead for a regular queue of WORK_QUEUE_ENTRYs
//      A listhead for a post-tick queue of WORK_QUEUE_ENTRYs
//
//      A flag indicating if we are throttling the queue to a single thread
//

// extern KSPIN_LOCK CcWorkQueueSpinLock;
ULONG CcNumberWorkerThreads = 0;
ULONG CcNumberActiveWorkerThreads = 0;
LIST_ENTRY CcIdleWorkerThreadList;
LIST_ENTRY CcExpressWorkQueue;
LIST_ENTRY CcRegularWorkQueue;
LIST_ENTRY CcPostTickWorkQueue;

BOOLEAN CcQueueThrottle = FALSE;

//
//  Store the current idle delay and target time to clean all.  We must calculate
//  the idle delay in terms of clock ticks for the lazy writer timeout.
//

ULONG CcIdleDelayTick;
LARGE_INTEGER CcNoDelay;
LARGE_INTEGER CcFirstDelay = {(ULONG)-(3*LAZY_WRITER_IDLE_DELAY) -1};
LARGE_INTEGER CcIdleDelay = {(ULONG)-LAZY_WRITER_IDLE_DELAY -1};
LARGE_INTEGER CcCollisionDelay = {(ULONG)-LAZY_WRITER_COLLISION_DELAY -1};
LARGE_INTEGER CcTargetCleanDelay = {(ULONG)-(LONG)(LAZY_WRITER_IDLE_DELAY * (LAZY_WRITER_MAX_AGE_TARGET + 1)) -1};

//
//  Spinlock for controlling access to Vacb and related global structures
//  and a counter indicating how many Vcbs are active.
//

// extern KSPIN_LOCK CcVacbSpinLock;
ULONG_PTR CcNumberVacbs;

//
//  Pointer to the global Vacb vector.
//

PVACB CcVacbs;
PVACB CcBeyondVacbs;
LIST_ENTRY CcVacbLru;
LIST_ENTRY CcVacbFreeList;
ULONG CcMaxVacbLevelsSeen = 1;
ULONG CcVacbLevelEntries = 0;
PVACB *CcVacbLevelFreeList = NULL;
ULONG CcVacbLevelWithBcbsEntries = 0;
PVACB *CcVacbLevelWithBcbsFreeList = NULL;

//
//  Deferred write list and respective Thresholds
//

extern ALIGNED_SPINLOCK CcDeferredWriteSpinLock;
LIST_ENTRY CcDeferredWrites;
ULONG CcDirtyPageThreshold;
ULONG CcDirtyPageTarget;
ULONG CcPagesYetToWrite;
ULONG CcPagesWrittenLastTime = 0;
ULONG CcDirtyPagesLastScan = 0;
ULONG CcAvailablePagesThreshold = 100;
ULONG Cc

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-14 12:01  wrk-v1.2
     目录           0  2013-10-12 11:51  wrk-v1.2amd64
     目录           0  2013-10-09 19:19  wrk-v1.2ase
     目录           0  2013-10-09 19:19  wrk-v1.2aseinc
     文件        3477  2007-01-25 03:54  wrk-v1.2aseinc
tdlltrc.h
     目录           0  2013-10-09 19:19  wrk-v1.2ase
tos
     目录           0  2013-10-12 11:07  wrk-v1.2ase
tosuild
     目录           0  2018-10-24 11:47  wrk-v1.2ase
tosuildamd64
     文件       69364  2013-10-12 11:02  wrk-v1.2ase
tosuildamd64WindowsResearchKernel.log
     目录           0  2013-10-12 11:11  wrk-v1.2ase
tosuildexe
     文件       44540  2013-10-12 11:11  wrk-v1.2ase
tosuildexewrkx86.def
     文件     2253824  2013-10-12 11:11  wrk-v1.2ase
tosuildexewrkx86.exe
     文件      260412  2013-10-12 11:11  wrk-v1.2ase
tosuildexewrkx86.exp
     文件      396104  2013-10-12 11:11  wrk-v1.2ase
tosuildexewrkx86.lib
     文件     1011937  2013-10-12 11:11  wrk-v1.2ase
tosuildexewrkx86.map
     文件     7080960  2013-10-12 11:11  wrk-v1.2ase
tosuildexewrkx86.pdb
     文件        2526  2007-01-25 03:11  wrk-v1.2ase
tosuildmakefile
     文件        2670  2007-01-25 03:11  wrk-v1.2ase
tosuildmakefile.build
     目录           0  2013-10-12 11:02  wrk-v1.2ase
tosuildobjamd64
     文件      237656  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64cache.lib
     文件     1073264  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64config.lib
     文件       68884  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64dbgk.lib
     文件      610100  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64ex.lib
     文件      336770  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64fsrtl.lib
     文件       54994  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64fstub.lib
     文件       35920  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64init.lib
     文件       23842  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64io.lib
     文件      575780  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64iomgr.lib
     文件      813222  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64ke.lib
     文件      153594  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64lpc.lib
     文件     1728896  2013-10-12 11:01  wrk-v1.2ase
tosuildobjamd64mm.lib
............此处省略1861个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)