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

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

?? filemon.c

?? 監視文件
?? C
?? 第 1 頁 / 共 5 頁
字號:
//======================================================================
// 
// Filemon.c
//
// Sysinternals - www.sysinternals.com
// Copyright (C) 1996-2001 Mark Russinovich and Bryce Cogswell
//
// Passthrough file system filter device driver.
//
// Notes: The reason that we use NonPagedPool even though the driver
// only accesses allocated buffer at PASSIVE_LEVEL, is that touching
// a paged pool buffer can generate a page fault, and if the paging
// file is on a drive that filemon is monitoring filemon would be
// reentered to handle the page fault. We want to avoid that and so
// we only use nonpaged pool.
//
//======================================================================
#include "ntddk.h"
#include "stdarg.h"
#include "stdio.h"
#include "..\exe\ioctlcmd.h"
#include "filemon.h"


//----------------------------------------------------------------------
//           F O R W A R D   D E C L A R A T I O N S 
//---------------------------------------------------------------------- 

//
// These are prototypes for Filemon's Fast I/O hooks. The originals 
// prototypes can be found in NTDDK.H
// 
BOOLEAN  
FilemonFastIoCheckifPossible( 
    IN PFILE_OBJECT FileObject, 
    IN PLARGE_INTEGER FileOffset, 
    IN ULONG Length, 
    IN BOOLEAN Wait, 
    IN ULONG LockKey, 
    IN BOOLEAN CheckForReadOperation,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoRead( 
    IN PFILE_OBJECT FileObject, 
    IN PLARGE_INTEGER FileOffset, 
    IN ULONG Length, 
    IN BOOLEAN Wait, 
    IN ULONG LockKey, 
    OUT PVOID Buffer,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoWrite( 
    IN PFILE_OBJECT FileObject, 
    IN PLARGE_INTEGER FileOffset,                             
    IN ULONG Length, 
    IN BOOLEAN Wait, 
    IN ULONG LockKey, 
    IN PVOID Buffer,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoQueryBasicInfo( 
    IN PFILE_OBJECT FileObject, 
    IN BOOLEAN Wait, 
    OUT PFILE_BASIC_INFORMATION Buffer,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoQueryStandardInfo( 
    IN PFILE_OBJECT FileObject, 
    IN BOOLEAN Wait, 
    OUT PFILE_STANDARD_INFORMATION Buffer,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoLock( 
    IN PFILE_OBJECT FileObject, 
    IN PLARGE_INTEGER FileOffset,
    IN PLARGE_INTEGER Length, 
    PEPROCESS ProcessId, 
    ULONG Key,
    BOOLEAN FailImmediately, 
    BOOLEAN ExclusiveLock,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject
    );
BOOLEAN  
FilemonFastIoUnlockSingle( 
    IN PFILE_OBJECT FileObject, 
    IN PLARGE_INTEGER FileOffset,
    IN PLARGE_INTEGER Length, 
    PEPROCESS ProcessId, 
    ULONG Key,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoUnlockAll( 
    IN PFILE_OBJECT FileObject, 
    PEPROCESS ProcessId,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoUnlockAllByKey( 
    IN PFILE_OBJECT FileObject, 
    PEPROCESS ProcessId, ULONG Key,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoDeviceControl( 
    IN PFILE_OBJECT FileObject, 
    IN BOOLEAN Wait,
    IN PVOID InputBuffer, 
    IN ULONG InputBufferLength, 
    OUT PVOID OutbufBuffer, 
    IN ULONG OutputBufferLength, 
    IN ULONG IoControlCode,
    OUT PIO_STATUS_BLOCK IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
VOID     
FilemonFastIoAcquireFile( 
    PFILE_OBJECT FileObject 
    );
VOID     
FilemonFastIoReleaseFile(
    PFILE_OBJECT FileObject 
    );
VOID     
FilemonFastIoDetachDevice( 
    PDEVICE_OBJECT SourceDevice, 
    PDEVICE_OBJECT TargetDevice 
    );

//
// These are new NT 4.0 Fast I/O calls
//
BOOLEAN  
FilemonFastIoQueryNetworkOpenInfo(
    IN PFILE_OBJECT FileObject,
    IN BOOLEAN Wait, 
    OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer,
    OUT struct _IO_STATUS_BLOCK *IoStatus, 
    IN PDEVICE_OBJECT DeviceObject 
    );
NTSTATUS 
FilemonFastIoAcquireForModWrite( 
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER EndingOffset, 
    OUT struct _ERESOURCE **ResourceToRelease,
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoMdlRead( 
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset, 
    IN ULONG Length,
    IN ULONG LockKey, 
    OUT PMDL *MdlChain, 
    OUT PIO_STATUS_BLOCK IoStatus,
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoMdlReadComplete( 
    IN PFILE_OBJECT FileObject,
    IN PMDL MdlChain, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoPrepareMdlWrite( 
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset, 
    IN ULONG Length, 
    IN ULONG LockKey,
    OUT PMDL *MdlChain, 
    OUT PIO_STATUS_BLOCK IoStatus,
    IN PDEVICE_OBJECT DeviceObject
    );
BOOLEAN  
FilemonFastIoMdlWriteComplete( 
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset, 
    IN PMDL MdlChain,
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoReadCompressed( 
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset, 
    IN ULONG Length,
    IN ULONG LockKey, 
    OUT PVOID Buffer, 
    OUT PMDL *MdlChain,
    OUT PIO_STATUS_BLOCK IoStatus,
    OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
    IN ULONG CompressedDataInfoLength, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoWriteCompressed( 
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset, 
    IN ULONG Length,
    IN ULONG LockKey, 
    IN PVOID Buffer, 
    OUT PMDL *MdlChain,
    OUT PIO_STATUS_BLOCK IoStatus,
    IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
    IN ULONG CompressedDataInfoLength, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoMdlReadCompleteCompressed( 
    IN PFILE_OBJECT FileObject,
    IN PMDL MdlChain, 
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN  
FilemonFastIoMdlWriteCompleteCompressed( 
    IN PFILE_OBJECT FileObject,
    IN PLARGE_INTEGER FileOffset, 
    IN PMDL MdlChain,
    IN PDEVICE_OBJECT DeviceObject 
    );
BOOLEAN 
FilemonFastIoQueryOpen( 
    IN struct _IRP *Irp,
    OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation,
    IN PDEVICE_OBJECT DeviceObject 
    );
NTSTATUS 
FilemonFastIoReleaseForModWrite( 
    IN PFILE_OBJECT FileObject,
    IN struct _ERESOURCE *ResourceToRelease, 
    IN PDEVICE_OBJECT DeviceObject 
    );
NTSTATUS
FilemonFastIoAcquireForCcFlush( 
    IN PFILE_OBJECT FileObject,
    IN PDEVICE_OBJECT DeviceObject 
    );
NTSTATUS
FilemonFastIoReleaseForCcFlush( 
    IN PFILE_OBJECT FileObject,
    IN PDEVICE_OBJECT DeviceObject 
    );

BOOLEAN
ApplyFilters( 
    PCHAR Text
    );

//
// Unload routine (debug builds only)
//
VOID
FilemonUnload( 
    IN PDRIVER_OBJECT DriverObject 
    );

//----------------------------------------------------------------------
//                       G L O B A L S
//---------------------------------------------------------------------- 

//
// This is our Driver Object
//
PDRIVER_OBJECT      FilemonDriver;

//
// Indicates if the GUI wants activity to be logged
//
BOOLEAN             FilterOn = FALSE;

//
// Global filter (sent to us by the GUI)
//
FILTER              FilterDef;

//
// This lock protects access to the filter array
//
ERESOURCE           FilterResource;

//
// Array of process and path filters 
//
ULONG               NumIncludeFilters = 0;
PCHAR               IncludeFilters[MAXFILTERS];
ULONG               NumExcludeFilters = 0;
PCHAR               ExcludeFilters[MAXFILTERS];

//
// Once a load is initiated, this flag prevents the processing of
// further IRPs. This is required because an unload can only take
// place if there are any IRP's for which an IoCompletion has
// been registered that has not actually completed.
//
BOOLEAN             UnloadInProgress = FALSE;

//
// This is the offset into a KPEB of the current process name. This is determined
// dynamically by scanning the process block belonging to the GUI for the name
// of the system process, in who's context we execute in DriverEntry
//
ULONG               ProcessNameOffset;

//
// This variable keeps track of the outstanding IRPs (ones for which
// a completion routine has been registered, but that have not yet
// passed through the completion routine), which is used in 
// the unload determination logic. The CountMutex protects data
// races on updating the count.
//
#if DBG
ULONG               OutstandingIRPCount = 0;
#endif // DBG
KSPIN_LOCK          CountMutex;

//
// Table of our hook devices for each drive letter. This makes it
// easy to look up the device object that was created to hook a 
// particular drive.
//
PDEVICE_OBJECT      DriveHookDevices[26];

//
// Current bitmask of hooked drives
//
ULONG               CurrentDriveSet = 0;

//
// The special file system hook devices
//
PDEVICE_OBJECT      NamedPipeHookDevice = NULL;
PDEVICE_OBJECT      MailSlotHookDevice = NULL;

//
// Hash table for keeping names around. This is necessary because 
// at any time the name information in the fileobjects that we
// see can be deallocated and reused. If we want to print accurate
// names, we need to keep them around ourselves. 
//
PHASH_ENTRY	        HashTable[NUMHASH];

//
// Reader/Writer lock to protect hash table.
//
ERESOURCE	        HashResource;

//
// The current output buffer
//
PLOG_BUF            CurrentLog = NULL;

//
// Each IRP is given a sequence number. This allows the return status
// of an IRP, which is obtained in the completion routine, to be 
// associated with the IRPs parameters that were extracted in the Dispatch
// routine.
//
ULONG               Sequence = 0;

//
// This mutex protects the output buffer
//
FAST_MUTEX          LogMutex;

//
// Filemon keeps track of the number of distinct output buffers that
// have been allocated, but not yet uploaded to the GUI, and caps
// the amount of memory (which is in non-paged pool) it takes at
// 1MB.
//
ULONG               NumLog = 0;
ULONG               MaxLog = (1024*1024)/LOGBUFSIZE;

//
// Full path name lookaside for dispatch entry
//
NPAGED_LOOKASIDE_LIST  FullPathLookaside;

//
// We use this string for a path name when we're out of resources
//
CHAR InsufficientResources[] = "<INSUFFICIENT MEMORY>";

//
// These are the text representations of the classes of IRP_MJ_SET/GET_INFORMATION
// calls
//
CHAR *FileInformation[] = {
    "",
    "FileDirectoryInformation",
    "FileFullDirectoryInformation",
    "FileBothDirectoryInformation",
    "FileBasicInformation",
    "FileStandardInformation",
    "FileInternalInformation",
    "FileEaInformation",
    "FileAccessInformation",
    "FileNameInformation",
    "FileRenameInformation",
    "FileLinkInformation",
    "FileNamesInformation",
    "FileDispositionInformation",
    "FilePositionInformation",
    "FileFullEaInformation",
    "FileModeInformation",
    "FileAlignmentInformation",
    "FileAllInformation",
    "FileAllocationInformation",
    "FileEndOfFileInformation",
    "FileAlternateNameInformation",
    "FileStreamInformation",
    "FilePipeInformation",
    "FilePipeLocalInformation",
    "FilePipeRemoteInformation",
    "FileMailslotQueryInformation",
    "FileMailslotSetInformation",
    "FileCompressionInformation",
    "FileCopyOnWriteInformation",
    "FileCompletionInformation",
    "FileMoveClusterInformation",
    "FileOleClassIdInformation",
    "FileOleStateBitsInformation",
    "FileNetworkOpenInformation",
    "FileObjectIdInformation",
    "FileOleAllInformation",
    "FileOleDirectoryInformation",
    "FileContentIndexInformation",
    "FileInheritContentIndexInformation",
    "FileOleInformation",
    "FileMaximumInformation",
};


//
// These are textual representations of the IRP_MJ_SET/GET_VOLUME_INFORMATION
// classes
//
CHAR *VolumeInformation[] = {
    "",
    "FileFsVolumeInformation",
    "FileFsLabelInformation",
    "FileFsSizeInformation",
    "FileFsDeviceInformation",
    "FileFsAttributeInformation",
    "FileFsQuotaQueryInformation",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女区一区| 日韩中文欧美在线| 成人性生交大片免费| 国产亚洲精品中文字幕| 国产a精品视频| 欧美国产综合色视频| 成人午夜av影视| 亚洲免费观看高清完整| 欧美视频一区二区在线观看| 首页国产欧美日韩丝袜| 久久久精品国产免费观看同学| 国产成人综合亚洲网站| 中文字幕制服丝袜成人av| 色国产综合视频| 亚洲国产精品一区二区www在线| 92精品国产成人观看免费| 欧美四级电影在线观看| 亚洲一二三四在线观看| 色综合网色综合| 成人免费一区二区三区在线观看| 在线免费精品视频| 一区二区在线观看视频| 色哟哟亚洲精品| 国产香蕉久久精品综合网| 激情综合五月天| 日韩欧美一级二级三级久久久| 一区在线播放视频| 99精品国产99久久久久久白柏| 欧美午夜视频网站| 亚洲成人资源在线| 欧美日韩高清不卡| 日韩av网站免费在线| 欧美日韩精品一区二区| 亚洲国产精品影院| 欧美综合久久久| 国产激情一区二区三区四区 | 亚洲精品ww久久久久久p站| eeuss鲁一区二区三区| 亚洲欧美综合在线精品| 在线欧美日韩国产| 亚洲国产日韩在线一区模特| 久久av老司机精品网站导航| 亚洲特黄一级片| 日本丶国产丶欧美色综合| 亚洲线精品一区二区三区| 在线播放欧美女士性生活| 日韩电影一二三区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 三级一区在线视频先锋 | 日韩欧美国产午夜精品| 经典三级在线一区| 久久精品在线免费观看| 成人一区在线看| 日韩欧美国产一区二区在线播放| 91污在线观看| 亚洲高清一区二区三区| 日韩欧美国产一区二区三区| 国产一区二区免费在线| 国产精品乱码一区二三区小蝌蚪| 视频一区视频二区中文字幕| 亚洲人成在线观看一区二区| 欧美在线视频你懂得| 亚洲国产精品一区二区尤物区| 日韩精品一区二区三区三区免费 | 中文字幕在线一区免费| 免费观看30秒视频久久| 亚洲国产精品传媒在线观看| 欧美日韩中文一区| 色哟哟一区二区在线观看| 蜜桃精品视频在线| 亚洲欧美激情视频在线观看一区二区三区 | 午夜精品久久久久影视| 精品国产成人系列| 91美女视频网站| 久久超碰97中文字幕| 日韩免费视频一区二区| 91网站在线观看视频| 九色porny丨国产精品| 亚洲精品国产一区二区精华液 | 日韩电影在线观看一区| 欧美一区二区三区四区高清| 久久精品国产一区二区三| 亚洲夂夂婷婷色拍ww47| 国产精品无遮挡| 欧美高清视频www夜色资源网| 精品一区二区免费在线观看| 亚洲黄色性网站| 欧美日韩大陆在线| 亚洲电影在线免费观看| 国产日韩欧美激情| 日韩福利视频网| 成人av在线观| 亚洲成人av中文| 精品国产免费久久| 91在线观看高清| 日韩中文欧美在线| 国产日韩欧美精品综合| 精品一区二区三区在线观看国产| 91国偷自产一区二区三区观看 | 亚洲va在线va天堂| 1区2区3区精品视频| 久久综合国产精品| 日韩一区二区不卡| 欧美日韩高清不卡| 色欲综合视频天天天| 亚洲成人1区2区| 国产一区在线观看视频| 日韩激情在线观看| 亚洲一区二区三区四区五区中文 | 国产欧美一区二区精品久导航 | 亚洲国产成人av网| 亚洲精品日韩专区silk| 久久久久久久久一| 精品国产免费一区二区三区香蕉| 制服丝袜一区二区三区| 51精品秘密在线观看| 在线亚洲高清视频| 91年精品国产| 日韩中文字幕av电影| 午夜精品久久久久| 亚洲妇女屁股眼交7| 成人欧美一区二区三区视频网页| 国产调教视频一区| 成人国产一区二区三区精品| 欧美日韩精品一二三区| 51精品久久久久久久蜜臀| 91精品在线麻豆| 7777精品伊人久久久大香线蕉的 | 久久福利视频一区二区| 精品在线视频一区| 人人精品人人爱| 色婷婷综合久久久中文字幕| 欧美日韩夫妻久久| 欧美变态tickle挠乳网站| 久久久久久99精品| 中文字幕一区二| 日韩精品高清不卡| 国产成人av电影在线| 91免费观看国产| 欧美日韩精品一区二区三区蜜桃 | 国产精品天天看| 18欧美乱大交hd1984| 亚洲欧洲美洲综合色网| 亚洲国产精品自拍| 狠狠狠色丁香婷婷综合激情| 国产成人免费视频网站高清观看视频 | 免费观看在线色综合| 国产精品影视在线观看| 不卡区在线中文字幕| 国产一区二区在线视频| 亚洲愉拍自拍另类高清精品| 人人精品人人爱| 首页国产欧美日韩丝袜| 欧美亚洲综合一区| 久久综合色婷婷| 亚洲视频中文字幕| 日本不卡123| 日韩高清在线不卡| 欧美在线观看一区| 风间由美一区二区av101| 555夜色666亚洲国产免| www久久精品| 石原莉奈一区二区三区在线观看| 国产福利一区二区三区视频在线| 国产老妇另类xxxxx| 日韩欧美亚洲一区二区| 亚洲综合色区另类av| 成人黄色国产精品网站大全在线免费观看 | 日韩免费看的电影| 欧美中文字幕一区二区三区| 中文字幕中文乱码欧美一区二区| 夜夜揉揉日日人人青青一国产精品| 国产精品影视在线观看| 麻豆精品新av中文字幕| 欧美喷潮久久久xxxxx| 亚洲欧美日韩中文字幕一区二区三区 | 日韩va亚洲va欧美va久久| 精品一区二区三区免费播放| 99久久婷婷国产综合精品| 欧美国产精品一区二区三区| 乱一区二区av| 亚洲色大成网站www久久九九| 亚洲国产日韩在线一区模特| 亚洲国产成人91porn| 亚洲一区二区三区四区在线 | 免费国产亚洲视频| 欧美三级韩国三级日本一级| 国产精品久久网站| 一区在线观看视频| 欧美夫妻性生活| 日韩精品一二区| 亚洲婷婷综合色高清在线| 在线这里只有精品| 奇米影视7777精品一区二区| 亚洲精品中文在线影院| 欧美性大战久久久久久久蜜臀| 午夜电影一区二区三区| 不卡的av网站| 日产欧产美韩系列久久99| 2023国产一二三区日本精品2022|