windows内核缓存代码解析

来源:互联网 发布:怎么看淘宝客开没开通 编辑:程序博客网 时间:2024/06/04 20:28
VOIDCcInitializeVacbs(){    SIZE_T VacbBytes;    PVACB NextVacb;//根据全局信息 计算缓存  即除以256KB // 初始化缓存信息参数 挂入队列 等待使用  CcNumberVacbs = (MmSizeOfSystemCacheInPages >> (VACB_OFFSET_SHIFT - PAGE_SHIFT)) - 2;VacbBytes = CcNumberVacbs * sizeof(VACB);    CcVacbs = (PVACB) ExAllocatePoolWithTag( NonPagedPool, VacbBytes, 'aVcC' );    if (CcVacbs != NULL) {        CcBeyondVacbs = (PVACB)((PCHAR)CcVacbs + VacbBytes);        RtlZeroMemory( CcVacbs, VacbBytes );        InitializeListHead( &CcVacbLru );        InitializeListHead( &CcVacbFreeList );        for (NextVacb = CcVacbs; NextVacb < CcBeyondVacbs; NextVacb++) {            InsertTailList( &CcVacbFreeList, &NextVacb->LruList );        }   }}