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

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

?? ntifs.h

?? 北航操作系統(tǒng)課程設(shè)計所需源代碼
?? H
字號:
#ifndef _NTIFS_//以免被重復(fù)引用
#define _NTIFS_

#if (VER_PRODUCTBUILD < 2195)

#define FILE_DEVICE_MASS_STORAGE            0x0000002d
#define IOCTL_STORAGE_CHECK_VERIFY2         CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FILE_ATTRIBUTE_ENCRYPTED            0x00004000
//IOCTL_STORAGE_BASE在ntddstor.h中定義為FILE_DEVICE_MASS_STORAGE
//METHOD_BUFFERED在ntddk.h中定義為0
//FILE_ANY_ACCESS在ntddk.h中定義為0

#endif

#if (VER_PRODUCTBUILD < 2600)

#define IOCTL_DISK_GET_PARTITION_INFO_EX    CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_GET_LENGTH_INFO          CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
//IOCTL_DISK_BASE在ntdddisk.h中定義為FILE_DEVICE_DISK
//FILE_DEVICE_DISK在ntddk.h中定義為0x00000007
//FILE_READ_ACCESS在ntddk.h中定義為( 0x0001 )

typedef enum _PARTITION_STYLE {//分區(qū)表的選擇
    PARTITION_STYLE_MBR,
    PARTITION_STYLE_GPT
} PARTITION_STYLE;

typedef unsigned __int64 ULONG64, *PULONG64;

typedef struct _PARTITION_INFORMATION_MBR {//對映PARTITION_STYLE_MBR
    UCHAR   PartitionType;
    BOOLEAN BootIndicator;
    BOOLEAN RecognizedPartition;
    ULONG   HiddenSectors;
} PARTITION_INFORMATION_MBR, *PPARTITION_INFORMATION_MBR;

typedef struct _PARTITION_INFORMATION_GPT {//對映PARTITION_STYLE_GPT
    GUID    PartitionType;
    GUID    PartitionId;
    ULONG64 Attributes;
    WCHAR   Name[36];
} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;

//在FileDiskDeviceControl.c中的case IOCTL_DISK_GET_PARTITION_INFO_EX中用到
typedef struct _PARTITION_INFORMATION_EX {
    PARTITION_STYLE PartitionStyle;
    LARGE_INTEGER   StartingOffset;
    LARGE_INTEGER   PartitionLength;
    ULONG           PartitionNumber;
    BOOLEAN         RewritePartition;
    union {
        PARTITION_INFORMATION_MBR Mbr;
        PARTITION_INFORMATION_GPT Gpt;
    };
} PARTITION_INFORMATION_EX, *PPARTITION_INFORMATION_EX;

//在FileDiskDeviceControl.c中的case IOCTL_DISK_GET_LENGTH_INFO中用到
typedef struct _GET_LENGTH_INFORMATION {
    LARGE_INTEGER Length;
} GET_LENGTH_INFORMATION, *PGET_LENGTH_INFORMATION;

#endif // (VER_PRODUCTBUILD < 2600)

//
// We include some stuff from ntifs.h here so that
// the driver can be compiled with only the DDK.
//

#define TOKEN_SOURCE_LENGTH 8
//下面_TOKEN_SOURCE中用到

//用來定義SeTokenType的返回類型
typedef enum _TOKEN_TYPE {
    TokenPrimary = 1,
    TokenImpersonation
} TOKEN_TYPE;

//下面_TOKEN_CONTROL中用到
typedef struct _TOKEN_SOURCE {
    CCHAR   SourceName[TOKEN_SOURCE_LENGTH];
    LUID    SourceIdentifier;
} TOKEN_SOURCE, *PTOKEN_SOURCE;

//下面_SECURITY_CLIENT_CONTEXT中用到
typedef struct _TOKEN_CONTROL {
    LUID            TokenId;
    LUID            AuthenticationId;
    LUID            ModifiedId;
    TOKEN_SOURCE    TokenSource;
} TOKEN_CONTROL, *PTOKEN_CONTROL;

//下面_DEVICE_EXTENSION中用到
typedef struct _SECURITY_CLIENT_CONTEXT {
    SECURITY_QUALITY_OF_SERVICE SecurityQos;
    PACCESS_TOKEN               ClientToken;
    BOOLEAN                     DirectlyAccessClientToken;
    BOOLEAN                     DirectAccessEffectiveOnly;
    BOOLEAN                     ServerIsRemote;
    TOKEN_CONTROL               ClientTokenControl;
} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;

//功能為檢測輸入指針是否指向NULL,如果是則返回FALSE,否則返回TRUE
#define PsDereferenceImpersonationToken(T)  \
            {if (ARGUMENT_PRESENT(T)) {     \
                (ObDereferenceObject((T))); \
            } else {                        \
                ;                           \
            }                               \
}

//功能為減少輸入?yún)?shù)的參考量
#define PsDereferencePrimaryToken(T) (ObDereferenceObject((T)))

//功能為將進(jìn)程結(jié)構(gòu)返回到初始狀態(tài)
NTKERNELAPI
VOID
PsRevertToSelf (
    VOID
);

//功能為引用PETHREAD類型元素Thread,PSECURITY_QUALITY_OF_SERVICE類型元素QualityOfService
//和BOOLEAN類型元素RemoteClient建立SECURITY_CLIENT_CONTEXT類型元素ClientContext
NTKERNELAPI
NTSTATUS
SeCreateClientSecurity (
    IN PETHREAD                     Thread,
    IN PSECURITY_QUALITY_OF_SERVICE QualityOfService,
    IN BOOLEAN                      RemoteClient,
    OUT PSECURITY_CLIENT_CONTEXT    ClientContext
);

//功能為檢測輸入?yún)?shù)中的ClientToken是否為TokenPrimary,如果是則減少輸入?yún)?shù)的參考量
//否則若輸入?yún)?shù)非0則減少輸入?yún)?shù)的參考量
#define SeDeleteClientSecurity(C)  {                                           \
            if (SeTokenType((C)->ClientToken) == TokenPrimary) {               \
                PsDereferencePrimaryToken( (C)->ClientToken );                 \
            } else {                                                           \
                PsDereferenceImpersonationToken( (C)->ClientToken );           \
            }                                                                  \
}

//功能為引用PSECURITY_CLIENT_CONTEXT類型元素ClientContext
NTKERNELAPI
VOID
SeImpersonateClient (
    IN PSECURITY_CLIENT_CONTEXT ClientContext,
    IN PETHREAD                 ServerThread OPTIONAL
);

//功能為引用PACCESS_TOKEN類型元素Token
NTKERNELAPI
TOKEN_TYPE
SeTokenType (
    IN PACCESS_TOKEN Token
);

//
// For backward compatibility with Windows NT 4.0 by Bruce Engle.
//
#ifndef MmGetSystemAddressForMdlSafe
#define MmGetSystemAddressForMdlSafe(MDL, PRIORITY) MmGetSystemAddressForMdlPrettySafe(MDL)

//功能為從內(nèi)存中取得Mdl的系統(tǒng)地址
PVOID
MmGetSystemAddressForMdlPrettySafe (
    PMDL Mdl
    )
{
    CSHORT  MdlMappingCanFail;
    PVOID   MappedSystemVa;

    MdlMappingCanFail = Mdl->MdlFlags & MDL_MAPPING_CAN_FAIL;
	//MDL_MAPPING_CAN_FAIL在ntddk.h中定義為0x2000

    Mdl->MdlFlags |= MDL_MAPPING_CAN_FAIL;

    MappedSystemVa = MmGetSystemAddressForMdl(Mdl);

    if (MdlMappingCanFail == 0)
    {
        Mdl->MdlFlags &= ~MDL_MAPPING_CAN_FAIL;
    }

    return MappedSystemVa;
}
#endif

#define PARAMETER_KEY           L"\\Parameters"

#define NUMBEROFDEVICES_VALUE   L"NumberOfDevices"

#define DEFAULT_NUMBEROFDEVICES 4

#define SECTOR_SIZE             512

#define TOC_DATA_TRACK          0x04

HANDLE dir_handle;

//定義結(jié)構(gòu)體_DEVICE_EXTENSION,用來保存設(shè)備的細(xì)節(jié)以及對設(shè)備的編程方式
typedef struct _DEVICE_EXTENSION {
    BOOLEAN                     media_in_device;
    HANDLE                      file_handle;
    ANSI_STRING                 file_name;
    LARGE_INTEGER               file_size;
    BOOLEAN                     read_only;
    PSECURITY_CLIENT_CONTEXT    security_client_context;
    LIST_ENTRY                  list_head;
    KSPIN_LOCK                  list_lock;
    KEVENT                      request_event;
    PVOID                       thread_pointer;
    BOOLEAN                     terminate_thread;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

//定義各個分發(fā)例程
NTSTATUS
DriverEntry (
    IN PDRIVER_OBJECT   DriverObject,
    IN PUNICODE_STRING  RegistryPath
);

NTSTATUS
FileDiskCreateDevice (
    IN PDRIVER_OBJECT   DriverObject,
    IN ULONG            Number,
    IN DEVICE_TYPE      DeviceType
);

VOID
FileDiskUnload (
    IN PDRIVER_OBJECT   DriverObject
);

PDEVICE_OBJECT
FileDiskDeleteDevice (
    IN PDEVICE_OBJECT   DeviceObject
);

NTSTATUS
FileDiskCreateClose (
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp
);

NTSTATUS
FileDiskReadWrite (
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp
);

NTSTATUS
FileDiskDeviceControl (
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp
);

VOID
FileDiskThread (
    IN PVOID            Context
);

NTSTATUS
FileDiskOpenFile (
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp
);

NTSTATUS
FileDiskCloseFile (
    IN PDEVICE_OBJECT   DeviceObject,
    IN PIRP             Irp
);

int swprintf(wchar_t *, const wchar_t *, ...);

//定義_T宏
#ifndef __T
#ifdef _NTDDK_
#define __T(x)  L ## x
#else
#define __T(x)  x
#endif
#endif

#ifndef _T
#define _T(x)   __T(x)
#endif

#define DEVICE_BASE_NAME    _T("\\FileDisk")
#define DEVICE_DIR_NAME     _T("\\Device")      DEVICE_BASE_NAME
#define DEVICE_NAME_PREFIX  DEVICE_DIR_NAME     DEVICE_BASE_NAME

#define FILE_DEVICE_FILE_DISK       0x8000

#define IOCTL_FILE_DISK_OPEN_FILE   CTL_CODE(FILE_DEVICE_FILE_DISK, 0x800, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_FILE_DISK_CLOSE_FILE  CTL_CODE(FILE_DEVICE_FILE_DISK, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_FILE_DISK_QUERY_FILE  CTL_CODE(FILE_DEVICE_FILE_DISK, 0x802, METHOD_BUFFERED, FILE_READ_ACCESS)

//FileDiskDeviceControl.c和FileDiskOpenFile.c中用到
typedef struct _OPEN_FILE_INFORMATION {
    LARGE_INTEGER   FileSize;
    BOOLEAN         ReadOnly;
    USHORT          FileNameLength;
    UCHAR           FileName[1];
} OPEN_FILE_INFORMATION, *POPEN_FILE_INFORMATION;

#endif
//本ntifs.h并非真正的ntifs.h。而是由ntifs.h中與本試驗(yàn)有關(guān)的結(jié)構(gòu)等信息和本試驗(yàn)所需的其它需定義在頭文件中的信息共同組成的ntifs.h。
//請做試驗(yàn)的同學(xué)注意。

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线免费| 免费高清在线视频一区·| 国产美女在线观看一区| 欧美va亚洲va国产综合| 久久99热狠狠色一区二区| 久久在线观看免费| 岛国av在线一区| 最近日韩中文字幕| 在线视频国内自拍亚洲视频| 亚洲妇女屁股眼交7| 日韩欧美一级精品久久| 国产一区二区影院| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲精品中文字幕在线观看| av一区二区三区在线| 中文字幕一区二区三区不卡| 在线观看网站黄不卡| 免费人成在线不卡| 欧美国产国产综合| 欧美在线制服丝袜| 极品少妇xxxx精品少妇| 亚洲免费三区一区二区| 日韩欧美一级二级三级久久久| 国产不卡免费视频| 亚洲午夜免费电影| 久久色在线视频| 91福利社在线观看| 国产一区高清在线| 亚洲伊人色欲综合网| 欧美xingq一区二区| 91年精品国产| 蜜桃一区二区三区四区| 中文字幕在线一区二区三区| 欧美蜜桃一区二区三区| 高清不卡在线观看| 国产精品国产三级国产有无不卡 | 亚洲国产一区二区在线播放| 日韩久久久精品| aaa亚洲精品| 久久福利资源站| 一个色综合av| 国产日韩欧美精品综合| 这里是久久伊人| 色老汉一区二区三区| 美国欧美日韩国产在线播放| 一区二区三区91| 国产女人aaa级久久久级| 欧美日韩电影一区| 99这里都是精品| 久久超级碰视频| 日韩福利电影在线| 亚洲一区影音先锋| 亚洲桃色在线一区| 国产日韩欧美在线一区| 日韩美女视频在线| 91麻豆精品国产无毒不卡在线观看| fc2成人免费人成在线观看播放| 久久国产精品第一页| 天天综合日日夜夜精品| 一区二区三区欧美激情| 国产精品麻豆久久久| 久久99国产乱子伦精品免费| 午夜精品影院在线观看| 亚洲一区视频在线观看视频| 亚洲视频中文字幕| 国产精品久久网站| 国产日韩在线不卡| 亚洲国产精品成人综合| 久久色在线视频| wwwwww.欧美系列| 欧美电视剧在线看免费| 日韩欧美色综合| 日韩欧美亚洲国产另类| 日韩欧美一区电影| 欧美成人三级在线| 精品久久久久一区| 26uuu精品一区二区在线观看| 日韩欧美高清一区| 精品国产一区二区三区忘忧草| 日韩三级视频在线看| 日韩手机在线导航| 久久先锋影音av| 国产香蕉久久精品综合网| 国产三级精品三级在线专区| 国产欧美综合在线观看第十页| 亚洲国产电影在线观看| 中文字幕不卡在线播放| 中文字幕一区二区三区av| 亚洲欧洲综合另类在线| 亚洲影院免费观看| 日本大胆欧美人术艺术动态| 久久精品国产精品亚洲精品| 黄色日韩网站视频| 不卡一区二区在线| 在线视频国产一区| 欧美一区二区三区视频在线| 欧美精品一区二区三区蜜桃视频| 久久午夜色播影院免费高清| 中文字幕中文字幕中文字幕亚洲无线| 中文字幕视频一区| 亚洲777理论| 国产在线精品一区二区三区不卡| 成人中文字幕合集| 欧美三级在线看| 日韩女优电影在线观看| 日本一二三不卡| 午夜视频一区二区三区| 国产在线乱码一区二区三区| 97成人超碰视| 欧美一区二区三区在线观看| 久久精品夜色噜噜亚洲aⅴ| 亚洲欧美另类小说| 久久99国产精品久久99果冻传媒| av不卡一区二区三区| 欧美一区三区二区| 国产精品毛片高清在线完整版| 亚洲va欧美va天堂v国产综合| 国产精品亚洲一区二区三区在线| 91久久精品一区二区| 久久综合丝袜日本网| 亚洲黄色av一区| 激情深爱一区二区| 欧美视频一区二区三区在线观看 | 国产精品视频在线看| 亚洲影院久久精品| 国产成a人亚洲精品| 欧美电影一区二区| 中文字幕中文字幕一区二区| 麻豆精品一二三| 欧美午夜精品一区二区蜜桃 | 日韩欧美国产一二三区| 国产精品第一页第二页第三页| 欧美吞精做爰啪啪高潮| 欧美韩日一区二区三区| 日本欧美在线看| 91福利精品视频| 中文字幕精品一区二区三区精品| 亚洲成a人片在线观看中文| 国产成a人无v码亚洲福利| 日韩一二三区不卡| 亚洲国产视频直播| a亚洲天堂av| 国产日韩v精品一区二区| 久久国产精品区| 91精品国产欧美一区二区| 亚洲精品成人在线| 成人丝袜高跟foot| 国产亚洲综合av| 激情综合网av| 欧美一区二区三区在线视频| 亚洲国产视频一区| 欧美伊人久久大香线蕉综合69| 国产精品久久久久久久久快鸭| 国产一区二区网址| xnxx国产精品| 极品瑜伽女神91| 欧美成人午夜电影| 久久99九九99精品| 欧美videos中文字幕| 青青草国产精品亚洲专区无| 欧美日韩黄视频| 视频一区二区欧美| 欧美另类z0zxhd电影| 亚洲成人av在线电影| 欧洲一区二区三区免费视频| 综合激情网...| 日本道在线观看一区二区| 亚洲另类在线制服丝袜| 日本韩国一区二区三区| 亚洲日本乱码在线观看| 久久综合久久久久88| 久久色在线观看| av中文字幕一区| 一区二区在线观看不卡| 亚洲资源在线观看| 日本韩国欧美国产| 亚洲主播在线播放| 91精品在线观看入口| 蜜桃91丨九色丨蝌蚪91桃色| 欧美精品一区二区三区四区| 国产精品66部| 亚洲天堂福利av| 欧美亚洲另类激情小说| 天堂资源在线中文精品| 91精品国产免费久久综合| 久久精品国产精品亚洲综合| 国产欧美精品一区二区色综合朱莉| 成人免费毛片app| 亚洲精品乱码久久久久久| 91国产精品成人| 美女一区二区视频| 久久久精品中文字幕麻豆发布| 成人美女视频在线观看18| 亚洲综合色区另类av| 欧美一区二区不卡视频| 国产福利电影一区二区三区| 亚洲精品写真福利| 欧美一区二区福利在线| 成人污污视频在线观看| 午夜视频一区在线观看|