亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filemon.c

?? 文件監視FileMon 一個常用的監視軟件
?? C
?? 第 1 頁 / 共 4 頁
字號:
            FilemonConvertPath( CONVERT_STANDARD, Drive, origir, CodePage, fullpathname );

        } else {

            sprintf( fullpathname, "%c:", Drive+'A'-1);
        }
        TIME_DIFF();
        log = FALSE;
        switch( origir->ir_flags ) {
        case CREATE_DIR:
            sprintf(data, "CREATE");
            if( FilterDef.logwrites ) log = TRUE;
            break;
        case DELETE_DIR:
            sprintf(data,"DELETE");
            if( FilterDef.logwrites ) log = TRUE;
            break;
        case CHECK_DIR:
            sprintf(data,"CHECK");
            if( FilterDef.logreads ) log = TRUE;
            break;
        default:
            sprintf(data,"QUERY");
            if( FilterDef.logreads ) log = TRUE;
            break;
        }
        if( log ) {
            LogRecord( timelo, datetimelo, datetimehi, "%s\tDirectory\t%s\t%s\t%s", 
                       processname, 
                       fullpathname,
                       data, ErrorString( retval ));
        }
        break;

    case IFSFN_SEEK:
        FilemonGetFullPath( origir->ir_fh, fullpathname, Drive, ResType, CodePage, origir );
        if( FilterDef.logreads) {

            TIME_DIFF();
            sprintf(data, "%s Offset: %ld / New offset: %ld",
                    origir->ir_flags == FILE_BEGIN ? "Beginning" : "End",
                    origir->ir_pos, origir->ir_pos );        
            LogRecord( timelo, datetimelo, datetimehi, "%s\tSeek\t%s\t%s\t%s", 
                       processname, fullpathname,
                       data, ErrorString( retval ));
        }
        break;

    case IFSFN_COMMIT:
        FilemonGetFullPath( origir->ir_fh, fullpathname, Drive, ResType, CodePage, origir );
        if( FilterDef.logwrites) {

            TIME_DIFF();
            sprintf(data, "%s", origir->ir_options == FILE_COMMIT_ASYNC ? 
                    "ASYNC" : "NOACCESSUPDATE" );
            LogRecord( timelo, datetimelo, datetimehi, "%s\tCommit\t%s\t%s\t%s", 
                       processname, fullpathname,
                       data, ErrorString( retval ));
        }
        break;

    case IFSFN_FILELOCKS:
        FilemonGetFullPath( origir->ir_fh, fullpathname, Drive, ResType, CodePage, origir );
        if( FilterDef.logreads) {

            TIME_DIFF();
            sprintf(data, "Offset: %ld Length:%ld", origir->ir_pos, origir->ir_locklen );
            LogRecord( timelo, datetimelo, datetimehi, "%s\t%s\t%s\t%s\t%s", 
                       processname, origir->ir_flags == LOCK_REGION ? "Lock" : "Unlock",
                       fullpathname,
                       data, ErrorString( retval ));
        }
        break;

    case IFSFN_FINDOPEN:
        if( FilterDef.logreads) {	

            FilemonConvertPath( CONVERT_FINDOPEN, Drive, origir, CodePage, fullpathname );
            TIME_DIFF();
            if( !retval ) {

                finddata = (_WIN32_FIND_DATA *) origir->ir_data;
                UniToBCS( data, finddata->cFileName, wstrlen(finddata->cFileName), MAXPATHLEN-1, BCS_WANSI, &result );
                data[ result.ddLower ] = 0;
            }
            LogRecord( timelo, datetimelo, datetimehi, "%s\tFindOpen\t%s\t%s\t%s", 
                       processname, fullpathname,
                       data, ErrorString( retval ));
        }
        FilemonLogHash( Drive, pir->ir_fh, fullpathname );
        break;

    case IFSFN_FINDNEXT:
        FilemonGetFullPath( origir->ir_fh, fullpathname, Drive, ResType, CodePage, origir );
        if( FilterDef.logreads) {	

            TIME_DIFF();
            if( !retval ) {
                finddata = (_WIN32_FIND_DATA *) origir->ir_data;
                UniToBCS( data, finddata->cFileName, wstrlen(finddata->cFileName), MAXPATHLEN-1, BCS_WANSI, &result );
                data[ result.ddLower ] = 0;
            }

            LogRecord( timelo, datetimelo, datetimehi, "%s\tFindNext\t%s\t%s\t%s", 
                       processname, fullpathname,
                       data, ErrorString( retval ));
        }
        break;

    case IFSFN_FINDCLOSE:
        FilemonGetFullPath( origir->ir_fh, fullpathname, Drive, ResType, CodePage, origir );
        if( FilterDef.logreads) {	

            TIME_DIFF();
            LogRecord( timelo, datetimelo, datetimehi, "%s\tFindClose\t%s\t\t%s", 
                       processname, fullpathname,
                       ErrorString( retval ));
        }
        FilemonFreeHashEntry( Drive, origir->ir_fh );
        break;

    case IFSFN_FILEATTRIB:
        if( FilterDef.logreads) {    

            FilemonConvertPath( CONVERT_STANDARD, Drive, origir, CodePage, fullpathname );
            TIME_DIFF();
            switch(origir->ir_flags ) {
            case GET_ATTRIBUTES:
                sprintf(data,"GetAttributes");
                break;
            case SET_ATTRIBUTES:
                sprintf(data, "SetAttributes" );
                break;
            case GET_ATTRIB_COMP_FILESIZE:
                sprintf(data, "GET_ATTRIB_COMP_FILESIZE" );
                break;
            case SET_ATTRIB_MODIFY_DATETIME:
                sprintf(data, "SET_ATTRIB_MODIFY_DATETIME");
                break;
            case SET_ATTRIB_LAST_ACCESS_DATETIME:
                sprintf(data, "SET_ATTRIB_LAST_ACCESS_DATETIME");
                break;
            case GET_ATTRIB_LAST_ACCESS_DATETIME:
                sprintf(data, "GET_ATTRIB_LAST_ACCESS_DATETIME");
                break;
            case SET_ATTRIB_CREATION_DATETIME:
                sprintf(data, "SET_ATTRIB_CREATION_DATETIME");
                break;
            case GET_ATTRIB_CREATION_DATETIME:
                sprintf(data, "GET_ATTRIB_CREATION_DATETIME");
                break;
            }
            LogRecord( timelo, datetimelo, datetimehi, "%s\tAttributes\t%s\t%s\t%s", 
                       processname, fullpathname,
                       data, ErrorString( retval ));
        }
        break;

    case IFSFN_FILETIMES:
        FilemonGetFullPath( origir->ir_fh, fullpathname, Drive, ResType, CodePage, origir );
        if( FilterDef.logreads) {	

            TIME_DIFF();
            switch( origir->ir_flags ) {
            case GET_MODIFY_DATETIME:
                sprintf(data, "Get Modify");
                break;
            case SET_MODIFY_DATETIME:
                sprintf(data, "Set Modify");
                break;
            case GET_LAST_ACCESS_DATETIME:
                sprintf(data, "Get Access");
                break;
            case SET_LAST_ACCESS_DATETIME:
                sprintf(data, "Set Access");
                break;
            case GET_CREATION_DATETIME:
                sprintf(data, "Get Creation");
                break;
            case SET_CREATION_DATETIME:
                sprintf(data, "Set Creation");
                break;
            }
            LogRecord( timelo, datetimelo, datetimehi, "%s\tAttributes\t%s\t%s\t%s", 
                       processname, fullpathname,
                       data, ErrorString( retval ));
        }
        break;

    case IFSFN_FLUSH:
        if( FilterDef.logwrites) {

            TIME_DIFF();
            LogRecord( timelo, datetimelo, datetimehi, "%s\tFlushVolume\t\t\t%s",
                       processname, ErrorString( retval ));
        }
        break;

    case IFSFN_DELETE:
        if( FilterDef.logwrites) {    

            FilemonConvertPath( CONVERT_STANDARD, Drive, origir, CodePage, fullpathname );
            TIME_DIFF();
            LogRecord( timelo, datetimelo, datetimehi, "%s\tDelete\t%s\t\t%s", 
                       processname, fullpathname, ErrorString( retval ));
        }
        FilemonFreeHashEntry( Drive, origir->ir_fh );
        break;

    case IFSFN_SEARCH:
        if( FilterDef.logreads ) {

            if( origir->ir_flags == SEARCH_FIRST ) 
                FilemonConvertPath( CONVERT_STANDARD, Drive, origir, CodePage, fullpathname );
            else
                sprintf(fullpathname, "SearchNext" );
            TIME_DIFF();
            if( !retval ) {
                j = 0;
                if( origir->ir_attr & FILE_ATTRIBUTE_LABEL ) {
                    sprintf(data, "VolumeLabel: " );
                    j = strlen( data );
                }
                search = (struct srch_entry *) origir->ir_data;
                for( i = 0; i < 13; i++ ) 
                    if( search->se_name[i] != ' ' ) data[j++] = search->se_name[i];
                data[j] = 0;
            }
            LogRecord( timelo, datetimelo, datetimehi, "%s\tSearch\t%s\t%s\t%s", 
                       processname, fullpathname, data, ErrorString( retval ));    
        }
        break;
    
    case IFSFN_GETDISKINFO:

        if( FilterDef.logreads ) {

            TIME_DIFF();
            if( !retval ) sprintf(data, "Free Space");
            drivestring[0] = Drive+'A'-1;
            drivestring[1] = ':';
            drivestring[2] = 0;
            LogRecord( timelo, datetimelo, datetimehi, "%s\tGetDiskInfo\t%s\t%s\t%s",
                       processname, drivestring, data, ErrorString( retval ));
        }
        break;

    case IFSFN_RENAME:
        if( FilterDef.logwrites) {          

            FilemonConvertPath( CONVERT_RENAME_SOURCE, Drive, origir, CodePage, fullpathname );
            TIME_DIFF();
            LogRecord( timelo, datetimelo, datetimehi, "%s\tRename\t%s\t%s\t%s",
                       processname, fullpathname,
                       FilemonConvertPath( CONVERT_RENAME_TARGET, Drive, origir, CodePage, data ),
                       ErrorString( retval ));		 
        }
        break;
    case IFSFN_IOCTL16DRIVE:
        if( FilterDef.logreads || FilterDef.logwrites) {

            TIME_DIFF();
            sprintf(data, "Subfunction: %02Xh", origir->ir_flags );
            drivestring[0] = Drive+'A'-1;
            drivestring[1] = ':';
            drivestring[2] = 0;
            LogRecord( timelo, datetimelo, datetimehi, "%s\tIoctl\t%s\t%s\t%s",
                       processname, drivestring, data, ErrorString( retval ));
        }
        break;
    }
    dprintf("==>%d\n", fn );
    return retval;
}
#pragma optimize("", on)

//----------------------------------------------------------------------
//
// OnSysDynamicDeviceInit
//
// Dynamic init. Install a file system filter hook.
//
//----------------------------------------------------------------------
BOOL 
OnSysDynamicDeviceInit(
    VOID
    )
{
    int i;
    MEMHANDLE hLog;

    //
    // Initialize the locks.
    //
    LogMutex = Create_Semaphore(1);
    HashMutex  = Create_Semaphore(1);
    FilterMutex  = Create_Semaphore(1);

    // 
    // Zero hash table.
    //
    for(i = 0; i < NUMHASH; i++ ) HashTable[i] = NULL;

    //
    // Allocate the initial output buffer.
    //
    PageAllocate(LOGBUFPAGES, PG_SYS, 0, 0, 0, 0, NULL, PAGELOCKED, 
                 (PMEMHANDLE) &hLog, (PVOID) &Log );
    Log->Handle = hLog;
    Log->Len = 0;
    Log->Next = NULL;
    NumLog = 1;

    //
    // Hook IFS functions.
    //
    PrevIFSHookProc = IFSMgr_InstallFileSystemApiHook(FilemonHookProc);
    return TRUE;
}

//----------------------------------------------------------------------
//
// OnSysDynamicDeviceExit
//
// Dynamic exit. Unhook everything.
//
//----------------------------------------------------------------------
BOOL 
OnSysDynamicDeviceExit(
    VOID
    )
{
    //
    // Unhook IFS functions.
    //
    IFSMgr_RemoveFileSystemApiHook(FilemonHookProc);

    //
    // Free all memory.
    //
    FilemonHashCleanup();
    FilemonFreeLog();
    FilemonFreeFilters();
    return TRUE;
}

//----------------------------------------------------------------------
//
// OnW32Deviceiocontrol
//
// Interface with the GUI.
//
//----------------------------------------------------------------------
DWORD 
OnW32Deviceiocontrol(
    PIOCTLPARAMS p
    )
{
    PLOG_BUF      old;

    switch( p->dioc_IOCtlCode ) {
    case 0:
        return ERROR_SUCCESS;

    case IOCTL_FILEMON_ZEROSTATS:

        Wait_Semaphore( LogMutex, BLOCK_SVC_INTS );
        while ( Log->Next )  {
 
            //
            // Release the next entry.
            //
            old = Log->Next;
            Log->Next = old->Next;
            Signal_Semaphore( LogMutex );
            PageFree( old->Handle, 0 );
            Wait_Semaphore( LogMutex, BLOCK_SVC_INTS );
            NumLog--;
        }
        Log->Len = 0;
        Signal_Semaphore( LogMutex );
        Sequence = 0;
        return ERROR_SUCCESS;

    case IOCTL_FILEMON_GETSTATS:

        //
        // Copy buffer into user space.
        Wait_Semaphore( LogMutex, BLOCK_SVC_INTS );
        if ( LOGBUFSIZE > p->dioc_cbOutBuf ) {

            //
            // Buffer is too small. Return error.
            //
            Signal_Semaphore( LogMutex );
            return ERROR_INSUFFICIENT_BUFFER;

        } else if ( Log->Len  ||  Log->Next ) {

            //
            // Switch to a new buffer.
            //
            FilemonNewLog();

            //
            // Fetch the oldest buffer to give to caller.
            //
            old = FilemonOldestLog();
            Signal_Semaphore( LogMutex );

            //
            // Copy it into the caller's buffer.
            //
            memcpy( p->dioc_OutBuf, old->Data, old->Len );

            //
            // Return length of copied info.
            //
            *p->dioc_bytesret = old->Len;

            //   
            // Deallocate the buffer.
            //
            PageFree( old->Handle, 0 );

        } else {

            //
            // There is no unread data.
            //
            Signal_Semaphore( LogMutex );
            *p->dioc_bytesret = 0;
        }
        return ERROR_SUCCESS;

    case IOCTL_FILEMON_STOPFILTER:

        FilterOn = FALSE;
        return ERROR_SUCCESS;

    case IOCTL_FILEMON_STARTFILTER:

        FilterOn = TRUE;
        return ERROR_SUCCESS;

    case IOCTL_FILEMON_SETFILTER:

        FilterDef = * (PFILTER) p->dioc_InBuf;
        FilemonUpdateFilters();
        return ERROR_SUCCESS;

    default:
        return ERROR_INVALID_FUNCTION;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品久久久久影院一蜜桃| 欧美丝袜自拍制服另类| 91免费视频网| 精品国产一区二区三区av性色| 亚洲欧洲成人精品av97| 久久国产精品色婷婷| 欧美亚洲国产bt| 国产精品灌醉下药二区| 国产一区二区在线视频| 欧美精品粉嫩高潮一区二区| 亚洲伦理在线免费看| 丁香桃色午夜亚洲一区二区三区| 欧美一级在线视频| 亚洲成人免费观看| 在线中文字幕不卡| 亚洲欧美怡红院| 丰满岳乱妇一区二区三区| 欧美mv日韩mv国产| 日韩影院在线观看| 欧美三区在线观看| 亚洲综合久久久| 91麻豆高清视频| 亚洲欧美在线高清| 99热精品国产| 欧美国产日韩a欧美在线观看| 乱中年女人伦av一区二区| 欧美日韩精品一区二区三区四区 | 亚洲成av人片在www色猫咪| 成人激情免费电影网址| 久久蜜桃av一区二区天堂 | 亚洲伊人伊色伊影伊综合网| 成人av资源在线| 国产精品国产精品国产专区不蜜| 成人激情免费网站| 亚洲欧美激情插| 欧美午夜片在线观看| 伊人婷婷欧美激情| 欧美日韩一二三| 麻豆精品国产91久久久久久| 欧美精品一区二区三区高清aⅴ | 蜜桃精品视频在线| 日韩精品中文字幕一区| 国产精品一区二区在线播放 | 国产色91在线| eeuss鲁片一区二区三区在线看| 国产精品国产三级国产aⅴ入口| 91偷拍与自偷拍精品| 一区二区日韩av| 在线成人av影院| 国产在线一区二区综合免费视频| 久久综合久久鬼色| 99在线精品视频| 亚洲午夜精品网| 精品久久久三级丝袜| 成人黄色在线视频| 亚洲va国产va欧美va观看| 欧美mv日韩mv国产| 99久久综合国产精品| 亚洲一区在线观看视频| 日韩区在线观看| 成人免费的视频| 日日夜夜免费精品| 久久婷婷国产综合国色天香| 91色乱码一区二区三区| 蜜桃视频在线观看一区| 中文字幕在线不卡一区二区三区 | 视频一区中文字幕国产| 国产亚洲综合在线| 欧美日韩一级二级三级| 国产精品夜夜嗨| 亚洲国产综合色| 国产精品天干天干在线综合| 6080日韩午夜伦伦午夜伦| 国产成人在线影院| 日韩精品欧美精品| 国产精品国产a| 精品99999| 欧美系列日韩一区| 99久久精品国产导航| 久久99国产精品尤物| 一区二区三区四区不卡视频| 精品国产一区二区三区av性色| 一本到三区不卡视频| 国产一区二区在线视频| 午夜亚洲福利老司机| 中文字幕欧美一| 国产欧美日韩久久| 精品少妇一区二区三区在线播放 | 欧美性受xxxx黑人xyx性爽| 国产一区二区在线观看视频| 亚洲一区中文日韩| 亚洲欧美怡红院| 久久久久久久精| 欧美日韩视频在线第一区| 99久久精品费精品国产一区二区| 国产老女人精品毛片久久| 日韩国产精品久久| 一级特黄大欧美久久久| 亚洲欧美日韩国产综合| 国产精品天天摸av网| 久久精品欧美一区二区三区麻豆| 日韩午夜激情免费电影| 7777女厕盗摄久久久| 欧美精品自拍偷拍动漫精品| 日本国产一区二区| 成人性视频免费网站| 懂色av中文字幕一区二区三区| 国产中文字幕精品| 国产一区二区主播在线| 国产一区二区三区香蕉| 蜜臀av在线播放一区二区三区 | 中文字幕视频一区| 国产精品乱人伦| 中文字幕在线观看一区二区| 国产精品嫩草久久久久| 日本一区二区电影| 中文字幕一区二区在线观看| 国产精品白丝在线| 亚洲柠檬福利资源导航| 尤物在线观看一区| 亚洲国产一区二区视频| 亚洲大片在线观看| 另类小说欧美激情| 国产成人8x视频一区二区| 国产大陆精品国产| av电影天堂一区二区在线观看| 91农村精品一区二区在线| 在线观看不卡一区| 91精品国产综合久久久久久久 | 日韩一二三区不卡| 日韩精品一区二区三区蜜臀 | 成人午夜又粗又硬又大| www.久久久久久久久| 色噜噜狠狠成人中文综合| 精品视频一区二区不卡| 日韩午夜在线观看| 中文一区二区完整视频在线观看| 国产精品不卡在线| 午夜不卡av免费| 韩国成人福利片在线播放| 99久久婷婷国产综合精品| 欧美日韩大陆一区二区| 欧美精品一区二区蜜臀亚洲| 国产精品看片你懂得| 亚洲高清三级视频| 国产在线看一区| www.成人网.com| 欧美色综合久久| 久久精品视频在线免费观看| 亚洲欧美偷拍卡通变态| 蜜桃一区二区三区在线| 94色蜜桃网一区二区三区| 欧美视频一区二区三区四区| 精品毛片乱码1区2区3区| 亚洲三级久久久| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产成人在线影院| 欧美日韩另类一区| 国产视频视频一区| 日韩高清不卡一区二区三区| 成人av动漫网站| 精品久久久网站| 亚洲成人动漫在线免费观看| 国产成人综合在线| 欧美一区二区三区思思人| 亚洲欧美偷拍卡通变态| 精品一区二区三区免费| 欧美日韩二区三区| 亚洲狠狠丁香婷婷综合久久久| 精品一区二区三区久久久| 欧美性大战久久久久久久蜜臀| 国产日韩欧美精品电影三级在线| 五月天一区二区三区| 91同城在线观看| 国产精品女同一区二区三区| 九色|91porny| 欧美精品aⅴ在线视频| 亚洲少妇最新在线视频| 成人福利视频网站| 久久先锋资源网| 麻豆视频观看网址久久| 欧美网站大全在线观看| 综合中文字幕亚洲| 99在线视频精品| 国产精品久久久久久久久免费相片| 美国毛片一区二区| 制服丝袜中文字幕亚洲| 亚洲综合色丁香婷婷六月图片| 91蜜桃视频在线| 国产精品毛片久久久久久| 国产成人高清视频| 国产三级一区二区三区| 国产综合色精品一区二区三区| 日韩欧美一二三| 久久99精品国产麻豆婷婷洗澡| 欧美一级夜夜爽| 精品一区二区三区久久久| 精品国产免费视频| 国模套图日韩精品一区二区| 精品国产第一区二区三区观看体验|