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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? passthrough.c

?? 文件系統(tǒng)過濾驅(qū)動(dòng)程序的框架
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*++

Copyright (c) 1999 - 2002  Microsoft Corporation

Module Name:

    passThrough.c

Abstract:

    This is the main module of the passThrough miniFilter driver.
    This filter hooks all IO operations for both pre and post operation
    callbacks.  The filter passes through the operations.

Environment:

    Kernel mode

--*/

#include <fltKernel.h>

PFLT_FILTER gFilterHandle;
ULONG_PTR OperationStatusCtx = 1;

#define PTDBG_TRACE_ROUTINES            0x00000001
#define PTDBG_TRACE_OPERATION_STATUS    0x00000002

ULONG gTraceFlags = 0;


#define PT_DBG_PRINT( _dbgLevel, _string )          \
    (FlagOn(gTraceFlags,(_dbgLevel)) ?              \
        DbgPrint _string :                          \
        ((void)0))

/*************************************************************************
    Prototypes
*************************************************************************/

NTSTATUS
DriverEntry (
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    );

NTSTATUS
PtInstanceSetup (
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN FLT_INSTANCE_SETUP_FLAGS Flags,
    IN DEVICE_TYPE VolumeDeviceType,
    IN FLT_FILESYSTEM_TYPE VolumeFilesystemType
    );

VOID
PtInstanceTeardownStart (
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN FLT_INSTANCE_TEARDOWN_FLAGS Flags
    );

VOID
PtInstanceTeardownComplete (
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN FLT_INSTANCE_TEARDOWN_FLAGS Flags
    );

NTSTATUS
PtUnload (
    FLT_FILTER_UNLOAD_FLAGS Flags
    );

NTSTATUS
PtInstanceQueryTeardown (
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
    );

FLT_PREOP_CALLBACK_STATUS
PtPreOperationPassThrough (
    IN OUT PFLT_CALLBACK_DATA Data,
    IN PCFLT_RELATED_OBJECTS FltObjects,
    OUT PVOID *CompletionContext
    );

VOID
PtOperationStatusCallback (
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN PFLT_IO_PARAMETER_BLOCK ParameterSnapshot,
    IN NTSTATUS OperationStatus,
    IN PVOID RequesterContext
    );

FLT_POSTOP_CALLBACK_STATUS
PtPostOperationPassThrough (
    IN OUT PFLT_CALLBACK_DATA Data,
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN PVOID CompletionContext,
    IN FLT_POST_OPERATION_FLAGS Flags
    );

FLT_PREOP_CALLBACK_STATUS
PtPreOperationNoPostOperationPassThrough (
    IN OUT PFLT_CALLBACK_DATA Data,
    IN PCFLT_RELATED_OBJECTS FltObjects,
    OUT PVOID *CompletionContext
    );

BOOLEAN
PtDoRequestOperationStatus(
    IN PFLT_CALLBACK_DATA Data
    );

//
//  Assign text sections for each routine.
//

#ifdef ALLOC_PRAGMA
#pragma alloc_text(INIT, DriverEntry)
#pragma alloc_text(PAGE, PtUnload)
#pragma alloc_text(PAGE, PtInstanceQueryTeardown)
#pragma alloc_text(PAGE, PtInstanceSetup)
#pragma alloc_text(PAGE, PtInstanceTeardownStart)
#pragma alloc_text(PAGE, PtInstanceTeardownComplete)
#endif

//
//  operation registration
//

CONST FLT_OPERATION_REGISTRATION Callbacks[] = {
    { IRP_MJ_CREATE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_CREATE_NAMED_PIPE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_CLOSE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_READ,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_WRITE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_QUERY_INFORMATION,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_SET_INFORMATION,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_QUERY_EA,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_SET_EA,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_FLUSH_BUFFERS,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_QUERY_VOLUME_INFORMATION,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_SET_VOLUME_INFORMATION,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_DIRECTORY_CONTROL,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_FILE_SYSTEM_CONTROL,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_DEVICE_CONTROL,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_INTERNAL_DEVICE_CONTROL,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_SHUTDOWN,
      0,
      PtPreOperationNoPostOperationPassThrough,
      NULL },                               //post operations not supported

    { IRP_MJ_LOCK_CONTROL,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_CLEANUP,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_CREATE_MAILSLOT,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_QUERY_SECURITY,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_SET_SECURITY,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_QUERY_QUOTA,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_SET_QUOTA,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_PNP,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_ACQUIRE_FOR_MOD_WRITE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_RELEASE_FOR_MOD_WRITE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_ACQUIRE_FOR_CC_FLUSH,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_RELEASE_FOR_CC_FLUSH,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_NOTIFY_STREAM_FILE_OBJECT,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_NETWORK_QUERY_OPEN,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_MDL_READ,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_MDL_READ_COMPLETE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_PREPARE_MDL_WRITE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_MDL_WRITE_COMPLETE,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_VOLUME_MOUNT,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_VOLUME_DISMOUNT,
      0,
      PtPreOperationPassThrough,
      PtPostOperationPassThrough },

    { IRP_MJ_OPERATION_END }
};

//
//  This defines what we want to filter with FltMgr
//

CONST FLT_REGISTRATION FilterRegistration = {

    sizeof( FLT_REGISTRATION ),         //  Size
    FLT_REGISTRATION_VERSION,           //  Version
    0,                                  //  Flags

    NULL,                               //  Context
    Callbacks,                          //  Operation callbacks

    PtUnload,                           //  MiniFilterUnload

    PtInstanceSetup,                    //  InstanceSetup
    PtInstanceQueryTeardown,            //  InstanceQueryTeardown
    PtInstanceTeardownStart,            //  InstanceTeardownStart
    PtInstanceTeardownComplete,         //  InstanceTeardownComplete

    NULL,                               //  GenerateFileName
    NULL,                               //  GenerateDestinationFileName
    NULL                                //  NormalizeNameComponent

};



NTSTATUS
PtInstanceSetup (
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN FLT_INSTANCE_SETUP_FLAGS Flags,
    IN DEVICE_TYPE VolumeDeviceType,
    IN FLT_FILESYSTEM_TYPE VolumeFilesystemType
    )
/*++

Routine Description:

    This routine is called whenever a new instance is created on a volume. This
    gives us a chance to decide if we need to attach to this volume or not.

    If this routine is not defined in the registration structure, automatic
    instances are alwasys created.

Arguments:

    FltObjects - Pointer to the FLT_RELATED_OBJECTS data structure containing
        opaque handles to this filter, instance and its associated volume.

    Flags - Flags describing the reason for this attach request.

Return Value:

    STATUS_SUCCESS - attach
    STATUS_FLT_DO_NOT_ATTACH - do not attach

--*/
{
    UNREFERENCED_PARAMETER( FltObjects );
    UNREFERENCED_PARAMETER( Flags );
    UNREFERENCED_PARAMETER( VolumeDeviceType );
    UNREFERENCED_PARAMETER( VolumeFilesystemType );

    PT_DBG_PRINT( PTDBG_TRACE_ROUTINES,
                  ("PassThrough!PtInstanceSetup: Entered\n") );

    return STATUS_SUCCESS;
}


NTSTATUS
PtInstanceQueryTeardown (
    IN PCFLT_RELATED_OBJECTS FltObjects,
    IN FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
    )
/*++

Routine Description:

    This is called when an instance is being manually deleted by a
    call to FltDetachVolume or FilterDetach thereby giving us a
    chance to fail that detach request.

    If this routine is not defined in the registration structure, explicit
    detach requests via FltDetachVolume or FilterDetach will always be
    failed.

Arguments:

    FltObjects - Pointer to the FLT_RELATED_OBJECTS data structure containing
        opaque handles to this filter, instance and its associated volume.

    Flags - Indicating where this detach request came from.

Return Value:

    Returns the status of this operation.

--*/
{
    UNREFERENCED_PARAMETER( FltObjects );
    UNREFERENCED_PARAMETER( Flags );

    PT_DBG_PRINT( PTDBG_TRACE_ROUTINES,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人结看片| 亚洲精选免费视频| 国产福利91精品一区| 国产无遮挡一区二区三区毛片日本| 日本怡春院一区二区| 欧美一区二区三区啪啪| 国产久卡久卡久卡久卡视频精品| 久久久久久久免费视频了| 波多野结衣精品在线| 一区二区三区久久| 欧美一区二区三区四区五区| 久久国产尿小便嘘嘘尿| 久久精品夜色噜噜亚洲aⅴ| www.欧美.com| 午夜欧美2019年伦理 | 成人做爰69片免费看网站| 国产精品理伦片| 欧美日韩mp4| 激情另类小说区图片区视频区| 国产欧美一区二区精品忘忧草| 99精品久久只有精品| 亚洲国产视频网站| 久久精品亚洲一区二区三区浴池| 91麻豆文化传媒在线观看| 日韩电影一二三区| 国产日韩亚洲欧美综合| 欧美主播一区二区三区美女| 精品亚洲aⅴ乱码一区二区三区| 国产精品丝袜久久久久久app| 欧美性色欧美a在线播放| 国产一区二三区好的| 一区二区三区精品久久久| 欧美r级电影在线观看| 91日韩在线专区| 精品亚洲欧美一区| 亚洲一区二区三区自拍| xnxx国产精品| 欧美少妇bbb| 成人18视频日本| 国产一区二区视频在线播放| 玉足女爽爽91| 国产欧美精品一区| 日韩午夜精品电影| 在线免费观看日本一区| 国产成人aaaa| 韩国av一区二区三区在线观看| 亚洲尤物在线视频观看| 国产欧美久久久精品影院| 日韩欧美电影一二三| 91成人免费在线视频| 成人黄色免费短视频| 九色综合国产一区二区三区| 亚洲成人精品影院| 亚洲蜜臀av乱码久久精品蜜桃| 国产亚洲婷婷免费| 欧美一级精品在线| 欧美日韩久久久| 欧美中文字幕一区二区三区| 不卡一区中文字幕| 成人一级片网址| 国产大陆a不卡| 国产乱码一区二区三区| 日本欧美一区二区在线观看| 一区二区三区在线免费| 亚洲蜜臀av乱码久久精品| 国产精品传媒视频| 国产精品美女一区二区在线观看| 久久免费精品国产久精品久久久久| 欧美一区二区黄| 欧美精品亚洲二区| 欧美日韩国产大片| 欧美视频一区二区三区四区| 91国产丝袜在线播放| 波多野结衣一区二区三区| 成人免费不卡视频| 91一区二区三区在线观看| www.亚洲色图| 99re这里只有精品视频首页| 成人国产精品免费观看| va亚洲va日韩不卡在线观看| www.日韩大片| 在线观看亚洲精品视频| 欧美丝袜丝交足nylons| 欧美日韩美女一区二区| 91精品久久久久久蜜臀| 精品美女在线播放| 国产午夜亚洲精品理论片色戒| 国产午夜亚洲精品不卡| 中文字幕一区av| 亚洲午夜久久久| 免费人成黄页网站在线一区二区| 久久99国产精品久久| 精品在线一区二区| 处破女av一区二区| 91成人国产精品| 日韩网站在线看片你懂的| 精品国产凹凸成av人网站| 久久久久国产精品免费免费搜索| 中文字幕日韩欧美一区二区三区| 亚洲天堂av老司机| 日韩在线一二三区| 九一九一国产精品| 99久久精品国产一区| 欧美日本视频在线| 久久先锋影音av鲁色资源网| 中文字幕av一区 二区| 亚洲综合色自拍一区| 久久国产麻豆精品| 91影视在线播放| 日韩免费高清av| 亚洲伦在线观看| 久久国产福利国产秒拍| 99精品国产一区二区三区不卡| 欧美美女一区二区在线观看| 国产欧美一区二区精品性| 亚洲成人在线免费| 成人午夜视频福利| 在线播放日韩导航| 国产精品成人网| 久久99久久精品欧美| www.亚洲激情.com| 精品久久国产字幕高潮| 亚洲精品亚洲人成人网在线播放| 久久99国产精品免费网站| 欧洲国内综合视频| 欧美国产欧美综合| 久久电影网站中文字幕| 91免费版在线看| 久久久99免费| 美女视频免费一区| 日本韩国一区二区| 国产欧美精品一区二区色综合朱莉| 亚洲成人你懂的| 一道本成人在线| 国产欧美精品在线观看| 毛片av一区二区三区| 欧美私模裸体表演在线观看| 国产精品久久久久久久久免费相片| 全国精品久久少妇| 在线观看免费视频综合| 国产精品三级电影| 极品销魂美女一区二区三区| 欧美日韩国产一级二级| 亚洲精品中文在线观看| 成人教育av在线| 中文字幕av在线一区二区三区| 久久精品999| 91精品国产91久久综合桃花| 亚洲男女毛片无遮挡| 丁香五精品蜜臀久久久久99网站 | 国产精品久久久久久久午夜片| 美女诱惑一区二区| 欧美一区二区在线不卡| 一区二区三区在线视频免费观看 | 欧美日韩久久一区二区| 自拍偷在线精品自拍偷无码专区| 国产麻豆精品在线| 精品国产亚洲一区二区三区在线观看| 午夜精品一区二区三区电影天堂 | 中文字幕在线观看一区| 国产盗摄一区二区三区| 国产拍欧美日韩视频二区| 国产激情精品久久久第一区二区| 精品人在线二区三区| 裸体健美xxxx欧美裸体表演| 日韩区在线观看| 免费一级片91| 精品久久久久一区二区国产| 奇米精品一区二区三区在线观看| 精品久久久久香蕉网| 精品在线观看视频| 国产日本欧美一区二区| 成人性视频免费网站| 欧美国产欧美亚州国产日韩mv天天看完整 | 日韩欧美久久久| 久久国内精品视频| 精品美女被调教视频大全网站| 极品尤物av久久免费看| 欧美国产日本韩| 91麻豆精东视频| 亚洲国产精品综合小说图片区| 欧美日韩国产小视频| 精品一区二区三区av| 久久天堂av综合合色蜜桃网| 国产91丝袜在线观看| 亚洲天堂免费在线观看视频| 欧美影视一区二区三区| 日韩和欧美的一区| 欧美精品一区男女天堂| 不卡一区在线观看| 亚洲成人黄色小说| 欧美精品一区二区三区蜜臀| 成人免费观看视频| 亚洲国产日韩一级| 精品日韩一区二区三区| 懂色av中文一区二区三区| 亚洲电影一级黄| 久久亚洲影视婷婷| 色婷婷综合在线| 国产永久精品大片wwwapp|