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

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

?? filemon.c

?? 文件監視FileMon 一個常用的監視軟件
?? 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一区二区三区免费野_久草精品视频
欧美成人欧美edvon| jizzjizzjizz欧美| 欧美日韩国产免费一区二区| 成人欧美一区二区三区小说 | 99免费精品视频| 欧美激情一区二区三区全黄| 美女mm1313爽爽久久久蜜臀| 欧美一区二区三区的| 日韩国产在线观看一区| 欧美老人xxxx18| 午夜精品免费在线| 91麻豆精品91久久久久久清纯 | 美女脱光内衣内裤视频久久网站 | 成人av午夜影院| 国产精品护士白丝一区av| 成人激情开心网| 亚洲欧洲国产日韩| 欧美午夜视频网站| 日韩成人一区二区三区在线观看| 欧美精品v日韩精品v韩国精品v| 亚洲成年人影院| 欧美一区二区三区在线观看视频| 日韩精品1区2区3区| 日韩精品中文字幕在线不卡尤物| 日本成人在线电影网| 精品国产青草久久久久福利| 国模无码大尺度一区二区三区| 国产偷国产偷亚洲高清人白洁| www.亚洲人| 亚洲电影第三页| 精品国产乱子伦一区| 国产剧情av麻豆香蕉精品| 国产精品免费久久| 在线免费亚洲电影| 久久精品国内一区二区三区| 欧美一区二区三区四区五区 | 亚洲成在线观看| 精品精品欲导航| 成人夜色视频网站在线观看| 一区二区三区影院| 日韩一区二区三区视频| 成人免费三级在线| 日韩精品成人一区二区三区| 欧美一级在线免费| 成人免费视频免费观看| 亚洲福利视频导航| 久久这里都是精品| 91蜜桃网址入口| 久久电影网站中文字幕| 国产精品久久久久久一区二区三区| 欧美在线观看禁18| 麻豆精品在线播放| 日韩久久一区二区| 精品国产伦一区二区三区免费| 91亚洲国产成人精品一区二区三| 日本在线不卡视频| 亚洲三级免费观看| 久久人人爽人人爽| 91蜜桃在线免费视频| 激情六月婷婷久久| 一区二区高清免费观看影视大全| 久久影院视频免费| 4438x亚洲最大成人网| 99精品视频一区二区三区| 麻豆精品新av中文字幕| 亚洲精品乱码久久久久久久久 | 欧美体内she精高潮| 91在线观看一区二区| 国产98色在线|日韩| 九色porny丨国产精品| 日本亚洲三级在线| 日韩精品一二三区| 午夜精品久久久久久久| 一区二区三区加勒比av| 亚洲美女在线国产| 一区二区高清在线| 亚洲国产精品久久久久秋霞影院 | 国内精品自线一区二区三区视频| 婷婷丁香久久五月婷婷| 一区二区理论电影在线观看| 一区二区三区免费在线观看| 一区二区三区四区视频精品免费| 亚洲伦在线观看| 亚洲一区二区三区精品在线| 亚洲成人资源在线| 奇米精品一区二区三区四区| 久久精品国产免费看久久精品| 久久se这里有精品| 国产毛片精品一区| 成人av网站大全| 在线视频观看一区| 69堂国产成人免费视频| 日韩精品一区二区在线观看| 久久综合九色欧美综合狠狠 | 亚洲欧美日韩人成在线播放| 亚洲美女偷拍久久| 日本大胆欧美人术艺术动态| 激情五月婷婷综合| 成人国产视频在线观看| 色综合久久88色综合天天6| 欧美日韩视频在线一区二区| 欧美一区二区三区啪啪| 欧美va在线播放| 国产精品色呦呦| 亚洲最大色网站| 久久国产尿小便嘘嘘尿| 国产成人av电影在线播放| 色94色欧美sute亚洲线路一ni | 日韩一区二区免费电影| 国产喂奶挤奶一区二区三区| 亚洲另类在线制服丝袜| 日韩电影免费在线| 成人亚洲一区二区一| 欧美狂野另类xxxxoooo| 久久综合色天天久久综合图片| 国产精品久久三区| 日韩av网站在线观看| 北岛玲一区二区三区四区| 欧美精品日韩一区| 国产精品国模大尺度视频| 免费看精品久久片| 99国产精品99久久久久久| 欧美一区2区视频在线观看| 日韩美女视频19| 久久国产精品露脸对白| 日本韩国一区二区三区| 久久综合狠狠综合久久综合88| 夜夜精品视频一区二区| 国产成人av电影| 欧美精品在线一区二区三区| 国产精品色哟哟| 麻豆精品视频在线| 91久久精品一区二区| 日韩一级黄色大片| 亚洲亚洲精品在线观看| 成人午夜电影小说| 精品欧美一区二区在线观看| 亚洲综合一区二区三区| 成人精品免费看| 26uuu亚洲综合色欧美 | 久久国产精品免费| 欧美视频一区二区三区| 国产精品色哟哟| 国产一区二区在线影院| 日韩欧美一区二区在线视频| 亚洲乱码国产乱码精品精可以看| 国产**成人网毛片九色| 91麻豆精品91久久久久久清纯 | 波多野结衣欧美| 欧美大片顶级少妇| 日韩av电影免费观看高清完整版在线观看 | 69久久99精品久久久久婷婷| 中文字幕一区av| 成人久久18免费网站麻豆| 精品久久久久久久久久久院品网 | 亚洲综合视频网| 丰满亚洲少妇av| 久久精品亚洲麻豆av一区二区 | 国产精品一区二区在线观看网站| 欧美在线三级电影| 亚洲激情av在线| av电影在线观看一区| 国产成人在线看| 91浏览器打开| 日本伊人午夜精品| 欧美精品在线观看一区二区| 亚洲亚洲精品在线观看| 欧美在线观看视频一区二区| 亚洲精品福利视频网站| 欧美调教femdomvk| 午夜精品久久久久久久99水蜜桃 | 国产综合色产在线精品| 精品国产一区a| 国产精品综合二区| 久久九九久久九九| zzijzzij亚洲日本少妇熟睡| 最新中文字幕一区二区三区| 色综合久久天天| 亚洲韩国一区二区三区| 在线电影一区二区三区| 久久激五月天综合精品| 久久久久久久久久久久久夜| 丁香婷婷综合五月| 自拍偷拍国产精品| 欧美日韩精品一区二区三区| 日韩成人午夜精品| 久久精品亚洲麻豆av一区二区| 成人三级在线视频| 亚洲免费在线播放| 91精品国产色综合久久不卡电影| 久久99精品国产.久久久久| 2020国产成人综合网| www.欧美色图| 亚洲一区二区三区四区五区中文| 欧美精品18+| 国产在线播放一区二区三区| 亚洲人成影院在线观看| 欧美色中文字幕| 精品影视av免费| 亚洲欧美日韩在线|