青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

??????? 04、注冊FsFilter回調(diào)例程:

??????? FsFilter通知回調(diào)例程在下層文件系統(tǒng)執(zhí)行某些操作之前或之后調(diào)用。如果需要獲取更多有關(guān)于FsFilter回調(diào)例程相關(guān)信息,可參見FsRtlRegisterFileSystemFilterCallbacks例程
??????? 為了注冊FsFilter的通知回調(diào)例程必須分配并初始化FS_FILTER_CALLBACKS結(jié)構(gòu)體,然后向該結(jié)構(gòu)體中促出FsFilter回調(diào)例 程,并將存儲有Callbacks parameter到FsRtlRegisterFileSystemFilterCallbacks中。
??????? 例如:FileSpy驅(qū)動范例按如下方式注冊FsFilter回調(diào)。

fsFilterCallbacks.SizeOfFsFilterCallbacks = sizeof(FS_FILTER_CALLBACKS);
fsFilterCallbacks.PreAcquireForSectionSynchronization = SpyPreFsFilterOperation;
fsFilterCallbacks.PostAcquireForSectionSynchronization = SpyPostFsFilterOperation;
fsFilterCallbacks.PreReleaseForSectionSynchronization = SpyPreFsFilterOperation;
fsFilterCallbacks.PostReleaseForSectionSynchronization = SpyPostFsFilterOperation;
fsFilterCallbacks.PreAcquireForCcFlush = SpyPreFsFilterOperation;
fsFilterCallbacks.PostAcquireForCcFlush = SpyPostFsFilterOperation;
fsFilterCallbacks.PreReleaseForCcFlush = SpyPreFsFilterOperation;
fsFilterCallbacks.PostReleaseForCcFlush = SpyPostFsFilterOperation;
fsFilterCallbacks.PreAcquireForModifiedPageWriter = SpyPreFsFilterOperation;
fsFilterCallbacks.PostAcquireForModifiedPageWriter = SpyPostFsFilterOperation;
fsFilterCallbacks.PreReleaseForModifiedPageWriter = SpyPreFsFilterOperation;
fsFilterCallbacks.PostReleaseForModifiedPageWriter = SpyPostFsFilterOperation;

status = FsRtlRegisterFileSystemFilterCallbacks(DriverObject, &fsFilterCallbacks);

MSDN的詳細解釋

Windows Driver Kit: Installable File System Drivers
FsRtlRegisterFileSystemFilterCallbacks

File system filter drivers call the FsRtlRegisterFileSystemFilterCallbacks routine to register notification callback routines to be invoked when the underlying file system performs certain operations.

文件系統(tǒng)過濾驅(qū)動調(diào)用 FsRtlRegisterFileSystemFilterCallbacks 函數(shù)注冊需通知回調(diào)函數(shù),這些回調(diào)函數(shù)將在文件系統(tǒng)的相關(guān)操作之前被調(diào)用

				
						
NTSTATUS

??FsRtlRegisterFileSystemFilterCallbacks(
????IN?PDRIVER_OBJECT??FilterDriverObject,
????IN?PFS_FILTER_CALLBACKS??Callbacks
????);?

Parameters

FilterDriverObject
Pointer to the driver object for the filter driver.
Callbacks
Pointer to a structure that contains the entry points of caller-supplied notification callback routines.

This structure is defined as follows.

Note: All of the callback entry points are optional and can be NULL.

typedef?struct?_FS_FILTER_CALLBACKS?{
????ULONG?SizeOfFsFilterCallbacks;
????ULONG?Reserved;
????PFS_FILTER_CALLBACK?PreAcquireForSectionSynchronization;
????PFS_FILTER_COMPLETION_CALLBACK?PostAcquireForSectionSynchronization;
????PFS_FILTER_CALLBACK?PreReleaseForSectionSynchronization;
????PFS_FILTER_COMPLETION_CALLBACK?PostReleaseForSectionSynchronization;
????PFS_FILTER_CALLBACK?PreAcquireForCcFlush;
????PFS_FILTER_COMPLETION_CALLBACK?PostAcquireForCcFlush;
????PFS_FILTER_CALLBACK?PreReleaseForCcFlush;
????PFS_FILTER_COMPLETION_CALLBACK?PostReleaseForCcFlush;
????PFS_FILTER_CALLBACK?PreAcquireForModifiedPageWriter;
????PFS_FILTER_COMPLETION_CALLBACK?PostAcquireForModifiedPageWriter;
????PFS_FILTER_CALLBACK?PreReleaseForModifiedPageWriter;
????PFS_FILTER_COMPLETION_CALLBACK?PostReleaseForModifiedPageWriter;
}?FS_FILTER_CALLBACKS,?*PFS_FILTER_CALLBACKS;

The filter callback routine and its parameters are defined as follows:

typedef
NTSTATUS?(*PFS_FILTER_CALLBACK)?(
??????????????IN?PFS_FILTER_CALLBACK_DATA?Data,
??????????????OUT?PVOID?*CompletionContext
??????????????);

ParameterMeaning
DataPointer to the callback data structure for this operation.? 指向這個操作的回調(diào)數(shù)據(jù)結(jié)構(gòu)
CompletionContextContext information to be passed to the filter completion callback routine. Set to NULL if no context information is to be passed or if there is no corresponding filter completion callback routine.??傳給過濾器完成回調(diào)函數(shù)的上下文信息

The filter completion callback routine and its parameters are defined as follows:

typedef
VOID?(*PFS_FILTER_COMPLETION_CALLBACK)?(
??????????IN?PFS_FILTER_CALLBACK_DATA?Data,
??????????IN?NTSTATUS?OperationStatus,
??????????IN?PVOID?CompletionContext
??????????);

ParameterMeaning
DataPointer to the callback data structure for this operation.
OperationStatusStatus of the operation. If the file system successfully performed the operation, this parameter is set to STATUS_SUCCESS. Otherwise, it is set to an appropriate error status value.
CompletionContextContext information that was set in the filter callback routine. This is set to NULL if no information is passed or if there is no corresponding filter callback routine.

The callback data structure and its members are defined as follows:

typedef?struct?_FS_FILTER_CALLBACK_DATA?{
????ULONG?SizeOfFsFilterCallbackData;
????UCHAR?Operation;
????UCHAR?Reserved;
????struct?_DEVICE_OBJECT?*DeviceObject;
????struct?_FILE_OBJECT?*FileObject;
????FS_FILTER_PARAMETERS?Parameters;
}?FS_FILTER_CALLBACK_DATA,?*PFS_FILTER_CALLBACK_DATA;

MemberMeaning
SizeOfFsFilterCallbackDataSize of the callback data structure.
OperationFile system operation for which the callback routine is to be invoked. This operation can be of the following: FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION
FS_FILTER_RELEASE_FOR_SECTION_SYNCHRONIZATION
FS_FILTER_ACQUIRE_FOR_MOD_WRITE
FS_FILTER_RELEASE_FOR_MOD_WRITE
FS_FILTER_ACQUIRE_FOR_CC_FLUSH
FS_FILTER_RELEASE_FOR_CC_FLUSH
ReservedReserved for system use.
DeviceObjectDevice object for this operation.
FileObjectFile object for this operation.
ParametersUnion containing any operation-specific parameters.

The filter parameter union is defined as follows:

typedef?union?_FS_FILTER_PARAMETERS?{
????struct?{
????????PLARGE_INTEGER?EndingOffset;
????????PERESOURCE?*ResourceToRelease;
????}?AcquireForModifiedPageWriter;
????struct?{
????????PERESOURCE?ResourceToRelease;
????}?ReleaseForModifiedPageWriter;
????struct?{
????????FS_FILTER_SECTION_SYNC_TYPE?SyncType;
????????ULONG?PageProtection;
????}?AcquireForSectionSynchronization;
????struct?{
????????PVOID?Argument1;
????????PVOID?Argument2;
????????PVOID?Argument3;
????????PVOID?Argument4;
????????PVOID?Argument5;
????}?Others;
}?FS_FILTER_PARAMETERS,?*PFS_FILTER_PARAMETERS;

ParameterMeaning
EndingOffsetOffset of the last byte being written plus one.
ResourceToReleaseResource to be released.
SyncTypeType of synchronization requested for the section: SyncTypeCreateSection if a section is being created, SyncTypeOther otherwise.
PageProtectionType of page protection requested for the section. Must be zero if SyncType is SyncTypeOther. Otherwise, one of the following flags, possibly ORed with PAGE_NOCACHE:
PAGE_READONLY
PAGE_READWRITE
PAGE_WRITECOPY
PAGE_EXECUTE
Argument1Reserved for future use.
Argument2Reserved for future use.
Argument3Reserved for future use.
Argument4Reserved for future use.
Argument5Reserved for future use.

Return Value

FsRtlRegisterFileSystemFilterCallbacks can return one of the following status values:

STATUS_SUCCESS
The callback routines were successfully registered.
STATUS_INSUFFICIENT_RESOURCES
FsRtlRegisterFileSystemFilterCallbacks encountered a pool allocation failure when allocating memory to store the callback information.
STATUS_INVALID_PARAMETER
One of the parameters is invalid.

Comments

FsRtlRegisterFileSystemFilterCallbacks should only be called by file system filter drivers, and only from the filter's DriverEntry routine.

FsRtlRegisterFileSystemFilterCallbacks registers the notification callback routines that were specified in the Callbacks parameter to be invoked when requests for certain file operations are sent to the underlying file system.

Callback routines are currently defined for the following operations:

Operation Notification Callback Routine and Callback Completion Routine
The memory manager acquires a file exclusively before creating a memory-mapped section for a portion of the file.

Note: For this operation, SyncType is set to SyncTypeCreateSection.

PreAcquireForSectionSynchronization
PostAcquireForSectionSynchronization
The memory manager releases a file after creating a memory-mapped section for a portion of the file. PreReleaseForSectionSynchronization
PostReleaseForSectionSynchronization
A kernel component (such as the cache manager) acquires a file exclusively before temporarily disabling section creation for a portion of the file.

Note: For this operation, SyncType is set to SyncTypeOther.

PreAcquireForSectionSynchronization
PostAcquireForSectionSynchronization

Note: PreAcquireForSectionSynchronization should always return a success status code (such as STATUS_SUCCESS) for this operation. Returning any other type of status code causes the system to ASSERT on a checked build. (On free builds, the status code is ignored.)

A kernel component (such as the cache manager) releases a file after temporarily disabling section creation for a portion of the file. PreReleaseForSectionSynchronization
PostReleaseForSectionSynchronization
The cache manager acquires a file exclusively before flushing a portion of the file from the cache. PreAcquireForCcFlush
PostAcquireForCcFlush
The cache manager releases a file after flushing a portion of the file from the cache. PreReleaseForCcFlush
PostReleaseForCcFlush
The modified page writer acquires a file exclusively before writing a portion of the file to disk. PreAcquireForModifiedPageWriter
PostAcquireForModifiedPageWriter
The modified page writer releases a file after writing a portion of the file to disk. PreReleaseForModifiedPageWriter
PostReleaseForModifiedPageWriter

The filter notification callback routine is invoked before the operation request is passed to lower-level filter drivers and the underlying file system. In the callback routine, the filter driver should perform any needed processing and immediately return STATUS_SUCCESS. If a filter driver's callback routine returns a status value other than STATUS_SUCCESS, this causes the operation request to fail. Repeated failure of certain requests, such as locking requests, can halt system progress. Thus, filter drivers should fail such a request only when absolutely necessary. When failing these requests, the filter driver should return an error status value that describes the error as completely and accurately as possible.

Note??A filter driver's notification callback routine cannot fail a request to release a file system resource. If a filter driver returns a status value other than STATUS_SUCCESS from any of the following notification callback routines, the status value is ignored.

  • PreReleaseForSectionSynchronization
  • PreReleaseForCcFlush
  • PreReleaseForModifiedPageWriter

The filter completion callback routine is invoked after the operation request is passed to lower-level filter drivers and the underlying file system. In the completion callback routine, the filter driver must perform any needed processing and immediately return.

The callback routines defined by FsRtlRegisterFileSystemFilterCallbacks supersede the following fast I/O callback routines, which are obsolete and should not be used by file system filter drivers:

  • AcquireForCcFlush
  • AcquireFileForNtCreateSection
  • AcquireForModWrite
  • ReleaseForCcFlush
  • ReleaseFileForNtCreateSection
  • ReleaseForModWrite

Requirements

Versions: This routine is available on Update Rollup for Windows 2000 Service Pack 4 (SP4) and on Microsoft Windows XP and later.

IRQL:?Any level

Headers: Declared in Ntifs.h. Include Ntifs.h.

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一级免费视频| 亚洲免费中文字幕| 欧美日韩国产91| 欧美激情第二页| 欧美日韩在线播放| 国产精品日韩在线播放| 国产午夜精品一区二区三区视频 | 欧美成人午夜视频| 欧美日本国产精品| 国产精品久久夜| 黄色精品免费| 99av国产精品欲麻豆| 亚洲欧美电影在线观看| 久久久久久久一区二区三区| 欧美成人影音| 亚洲婷婷在线| 狼人天天伊人久久| 国产精品久久久久久久久久久久久| 国产日韩欧美不卡| 日韩视频免费观看高清完整版| 亚洲在线日韩| 欧美激情精品久久久久久黑人 | 99视频精品在线| 久久精品一区二区| 欧美日韩亚洲一区在线观看| 国产午夜精品福利| 亚洲少妇最新在线视频| 蜜桃久久av一区| 亚洲女人av| 欧美日本中文字幕| 一区久久精品| 欧美影院视频| 一本久久综合亚洲鲁鲁五月天| 久久久国产视频91| 国产精品拍天天在线| 一区二区久久久久久| 麻豆精品在线视频| 亚洲性线免费观看视频成熟| 免费不卡在线观看| 黄色成人精品网站| 久久久蜜桃精品| 亚洲一区免费| 国产精品高清网站| 中文国产一区| 99国产精品久久久久老师| 欧美风情在线观看| 91久久在线| 欧美大片一区二区| 久久亚裔精品欧美| **性色生活片久久毛片| 久久亚洲一区二区| 亚洲精品视频二区| 最新日韩在线| 欧美成人精品在线| 国产日韩精品入口| 久久亚洲视频| 最新日韩中文字幕| 欧美xxx在线观看| 久久久久久久999精品视频| 国产精品午夜av在线| 亚洲一区美女视频在线观看免费| 亚洲乱码国产乱码精品精| 欧美激情第二页| 日韩午夜电影| 亚洲黄色免费网站| 欧美风情在线观看| 中文国产一区| 亚洲已满18点击进入久久| 国产精品任我爽爆在线播放| 亚洲欧美成人精品| 亚洲欧美www| 国产专区精品视频| 欧美成人精品激情在线观看| 欧美1级日本1级| 夜夜嗨av色综合久久久综合网| 亚洲乱码国产乱码精品精 | 久久av一区二区| 在线不卡中文字幕| 亚洲国产乱码最新视频| 欧美日韩免费区域视频在线观看| 一区二区日韩| 亚洲影视综合| 亚洲国产二区| 亚洲网站在线| 在线看国产日韩| 一本一本久久| 在线观看亚洲a| 亚洲视频免费观看| 在线观看日韩www视频免费| 最新国产の精品合集bt伙计| 国产精品美女www爽爽爽| 六月婷婷一区| 国产精品久久久久久久久婷婷| 久久只精品国产| 欧美视频亚洲视频| 欧美国产高潮xxxx1819| 国产精品欧美一区二区三区奶水| 欧美成人精品在线观看| 国产精品久久久久久av下载红粉 | 99精品视频一区| 合欧美一区二区三区| 99精品视频免费观看| 在线精品国产成人综合| 一区二区三区国产精华| 亚洲第一福利视频| 亚洲男人的天堂在线| 日韩一二在线观看| 欧美在线免费| 久久狠狠亚洲综合| 欧美另类在线观看| 久久在线91| 国产精品一区二区三区免费观看| 久色成人在线| 国产麻豆精品视频| 日韩午夜激情| 亚洲激情小视频| 久久精品道一区二区三区| 亚洲综合不卡| 欧美日韩国产天堂| 亚洲国产精品va在看黑人| 国产亚洲激情在线| 亚洲一卡久久| 亚洲一区尤物| 欧美日韩一本到| 亚洲日韩成人| 亚洲精品中文字| 欧美国产一区在线| 亚洲国产一区二区三区高清| 伊人久久噜噜噜躁狠狠躁| 性欧美激情精品| 久久国产精彩视频| 国产日韩综合一区二区性色av| 亚洲免费高清| 中日韩视频在线观看| 欧美精品一区在线观看| 欧美高清视频| 亚洲精选国产| 欧美美女bb生活片| 亚洲美女av黄| 午夜视频一区二区| 国产在线精品自拍| 另类综合日韩欧美亚洲| 欧美国产精品劲爆| 日韩一级二级三级| 欧美三日本三级三级在线播放| 亚洲精品在线一区二区| 亚洲深爱激情| 国产欧美一区视频| 久久超碰97人人做人人爱| 久久综合九九| 亚洲精品一二三区| 欧美日韩一区二区三区视频| 中文国产成人精品久久一| 欧美一区日韩一区| 亚洲第一福利社区| 欧美日韩亚洲综合一区| 性色av一区二区三区在线观看| 久久综合给合| 一区二区av在线| 国产人成一区二区三区影院| 久久免费精品日本久久中文字幕| 亚洲第一区色| 午夜精品久久久久久久久久久久| 国产欧美一区二区精品仙草咪| 久久久久久一区二区| 最新亚洲激情| 久久国产精品久久精品国产| 精品成人免费| 国产精品超碰97尤物18| 久久不见久久见免费视频1| 亚洲国产婷婷香蕉久久久久久99| 正在播放欧美一区| 狠狠网亚洲精品| 欧美色图首页| 免费中文日韩| 亚洲亚洲精品三区日韩精品在线视频 | 欧美激情四色| 欧美一级黄色网| 亚洲国产精品久久人人爱蜜臀 | 欧美精品一区三区在线观看| 亚洲视频大全| 欧美大片一区二区| 午夜精品影院在线观看| 亚洲激情第一页| 国产一区二区三区奇米久涩| 欧美另类极品videosbest最新版本| 亚洲欧美激情一区二区| 亚洲激情成人网| 免费成人美女女| 亚洲欧美日韩在线不卡| 亚洲国产精品日韩| 很黄很黄激情成人| 国产精品久久久久久影院8一贰佰| 久久香蕉国产线看观看网| 午夜激情一区| 亚洲香蕉在线观看| 宅男噜噜噜66一区二区| 亚洲精品中文字| 亚洲理伦电影| 亚洲乱码日产精品bd|