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

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

?? ramdisk.h

?? 利用系統(tǒng)內(nèi)存建立虛擬磁盤
?? H
字號(hào):
/*++

Copyright (c) 1990-2000 Microsoft Corporation, All Rights Reserved

Module Name:

    ramdisk.h

Abstract:

    This file includes data declarations for the Ram Disk driver for NT.

Author:

    Robert Nelson (RobertN) 10-Mar-1993.

Environment:

    Kernel mode only.

Notes:

Revision History:


  Raju Ramanathan (Rajuram)

  Converted the sample driver to Windows 2000   02/22/2000
  Code cleaning                                 04/19/2000

--*/


#ifndef _RAMDISK_H_
#define _RAMDISK_H_

#include <ntddk.h>
#include <ntdddisk.h>
#include "debug.h"

#define NT_DEVICE_NAME                  L"\\Device\\Ramdisk"
#define DOS_DEVICE_NAME                 L"\\DosDevices\\"

#define RAMDISK_TAG_GENERAL             '1maR'  // "Ram1" - generic tag
#define RAMDISK_TAG_DISK                '2maR'  // "Ram2" - disk memory tag
#define DOS_DEVNAME_LENGTH              (sizeof(DOS_DEVICE_NAME)+sizeof(WCHAR)*10)
#define DRIVE_LETTER_LENGTH             (sizeof(WCHAR)*10)

#define RAMDISK_DRIVER_EXTENSION_KEY    ((PVOID) DriverEntry)
#define RAMDISK_MEDIA_TYPE              0xF8
#define DIR_ENTRIES_PER_SECTOR          16

#define FLAG_LINK_CREATED               0x00000001

#define REMLOCK_TAG                     'lmaR'
#define REMLOCK_MAXIMUM                 1        // Max minutes system allows lock to be held
#define REMLOCK_HIGHWATER               10       // Max number of irps holding lock at one time

#if DBG
#define DEFAULT_BREAK_ON_ENTRY          0                   // No break
#define DEFAULT_DEBUG_LEVEL             (DBG_LEVEL_ERROR)   // Log only errors
#define DEFAULT_DEBUG_COMP              (DBG_COMP_ALL)
#endif

#define DEFAULT_DISK_SIZE               (1024*1024)     // 1 MB
#define DEFAULT_ROOT_DIR_ENTRIES        512
#define DEFAULT_SECTORS_PER_CLUSTER     2
#define DEFAULT_DRIVE_LETTER            L"B:"

typedef enum  _DEVICE_STATE {
    STOPPED,                    // Dvice stopped
    WORKING,                    // Started and working
    PENDINGSTOP,                // Stop pending
    PENDINGREMOVE,              // Remove pending
    SURPRISEREMOVED,            // Surprise removed
    REMOVED,                    // Removed
    MAX_STATE                   // Unknown state -Some error
} DEVICE_STATE, *PDEVICE_STATE;

#if DBG
typedef struct _DEBUG_INFO {
    ULONG   BreakOnEntry;       // Break into debugger 
    ULONG   DebugLevel;         // Debug log level
    ULONG   DebugComp;          // Components to log debug message
} DEBUG_INFO, *PDEBUG_INFO;
#endif

typedef struct _DISK_INFO {
    ULONG   DiskSize;           // Ramdisk size in bytes
    ULONG   RootDirEntries;     // No. of root directory entries
    ULONG   SectorsPerCluster;  // Sectors per cluster
    UNICODE_STRING DriveLetter; // Drive letter to be used
} DISK_INFO, *PDISK_INFO;

typedef struct _RAMDISK_DRIVER_EXTENSION {
    UNICODE_STRING  RegistryPath;
	ULONG           DeviceInitialized;
} RAMDISK_DRIVER_EXTENSION, *PRAMDISK_DRIVER_EXTENSION;

typedef struct _DEVICE_EXTENSION {
    PDEVICE_OBJECT      DeviceObject;               // Back pointer to device object
    PDEVICE_OBJECT      LowerDeviceObject;          // Target device object
    PDEVICE_OBJECT      PhysicalDeviceObject;       // Physica device object
    DEVICE_STATE        DevState;                   // Current device state
    IO_REMOVE_LOCK      RemoveLock;                 // Remove lock to avoid abnormal device removal
    ULONG               Flags;                      // General device flag
    PUCHAR              DiskImage;                  // Pointer to beginning of disk image
    DISK_GEOMETRY       DiskGeometry;               // Drive parameters built by Ramdisk
    DISK_INFO           DiskRegInfo;                // Disk parameters from the registry
    UNICODE_STRING      SymbolicLink;               // Dos symbolic name; Drive letter
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;


#pragma pack(1)

typedef struct  _BOOT_SECTOR
{
    UCHAR       bsJump[3];          // x86 jmp instruction, checked by FS
    CCHAR       bsOemName[8];       // OEM name of formatter
    USHORT      bsBytesPerSec;      // Bytes per Sector
    UCHAR       bsSecPerClus;       // Sectors per Cluster
    USHORT      bsResSectors;       // Reserved Sectors
    UCHAR       bsFATs;             // Number of FATs - we always use 1
    USHORT      bsRootDirEnts;      // Number of Root Dir Entries
    USHORT      bsSectors;          // Number of Sectors
    UCHAR       bsMedia;            // Media type - we use RAMDISK_MEDIA_TYPE
    USHORT      bsFATsecs;          // Number of FAT sectors
    USHORT      bsSecPerTrack;      // Sectors per Track - we use 32
    USHORT      bsHeads;            // Number of Heads - we use 2
    ULONG       bsHiddenSecs;       // Hidden Sectors - we set to 0
    ULONG       bsHugeSectors;      // Number of Sectors if > 32 MB size
    UCHAR       bsDriveNumber;      // Drive Number - not used
    UCHAR       bsReserved1;        // Reserved
    UCHAR       bsBootSignature;    // New Format Boot Signature - 0x29
    ULONG       bsVolumeID;         // VolumeID - set to 0x12345678
    CCHAR       bsLabel[11];        // Label - set to RamDisk
    CCHAR       bsFileSystemType[8];// File System Type - FAT12 or FAT16
    CCHAR       bsReserved2[448];   // Reserved
    UCHAR       bsSig2[2];          // Originial Boot Signature - 0x55, 0xAA
}   BOOT_SECTOR, *PBOOT_SECTOR;

typedef struct  _DIR_ENTRY
{
    UCHAR       deName[8];          // File Name
    UCHAR       deExtension[3];     // File Extension
    UCHAR       deAttributes;       // File Attributes
    UCHAR       deReserved;         // Reserved
    USHORT      deTime;             // File Time
    USHORT      deDate;             // File Date
    USHORT      deStartCluster;     // First Cluster of file
    ULONG       deFileSize;         // File Length
}   DIR_ENTRY, *PDIR_ENTRY;

#pragma pack()

//
// Directory Entry Attributes
//

#define DIR_ATTR_READONLY   0x01
#define DIR_ATTR_HIDDEN     0x02
#define DIR_ATTR_SYSTEM     0x04
#define DIR_ATTR_VOLUME     0x08
#define DIR_ATTR_DIRECTORY  0x10
#define DIR_ATTR_ARCHIVE    0x20


//
// MACROS
//
#define COMPLETE_REQUEST( _pIrp, _Status, _Information )    \
        {                                                   \
            ASSERT( _pIrp != NULL );                        \
            ASSERT( KeGetCurrentIrql() <= DISPATCH_LEVEL ); \
            _pIrp->IoStatus.Status = _Status;               \
            _pIrp->IoStatus.Information = _Information;     \
            IoCompleteRequest( _pIrp, IO_NO_INCREMENT );    \
        }


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

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

VOID
RamDiskUnload(
    IN PDRIVER_OBJECT DriverObject
    );

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

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

NTSTATUS
RamDiskAddDevice(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT PhysicalDeviceObject
    );

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

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

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

NTSTATUS
RamDiskIoCompletionRoutine(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp,
    IN PVOID Context
    );

#if DBG
VOID
RamDiskQueryDebugRegParameters(
    IN PUNICODE_STRING RegistryPath
    );
#endif

VOID
RamDiskQueryDiskRegParameters(
    IN PUNICODE_STRING RegistryPath,
    IN PDISK_INFO DiskRegInfo
    );

NTSTATUS
RamDiskFormatDisk(
    IN PDEVICE_OBJECT DeviceObject
    );

VOID
RamDiskCleanUp( 
    IN PDEVICE_OBJECT DeviceObject
    );

VOID
RamDiskRemoveDevice(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

PSTR
GetPnpIrpName(
    IN UCHAR    PnpMinorFunction
    );

#endif    // _RAMDISK_H_

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产黄色精品视频| 日日欢夜夜爽一区| 成人免费视频国产在线观看| 精品国产乱码久久久久久牛牛 | 国产午夜精品久久久久久免费视| 精品中文字幕一区二区小辣椒| 欧美一级理论片| 久久精品免费观看| 久久久不卡影院| 成人激情午夜影院| 亚洲免费av高清| 在线观看亚洲成人| 亚洲成av人片一区二区三区| 欧美日韩不卡在线| 久久国产精品区| 国产日韩欧美a| 97精品国产露脸对白| 亚洲综合在线视频| 欧美一区在线视频| 国产激情一区二区三区| 亚洲另类春色校园小说| 欧美另类一区二区三区| 狠狠色狠狠色合久久伊人| 亚洲欧洲另类国产综合| 欧美日韩免费一区二区三区| 蜜桃视频在线一区| 国产欧美精品一区二区三区四区 | 久久尤物电影视频在线观看| 国产一区在线不卡| 亚洲欧美日韩中文字幕一区二区三区 | 91视频一区二区三区| 午夜影院久久久| 久久综合九色综合97婷婷| 不卡的看片网站| 日韩中文字幕麻豆| 国产精品色婷婷久久58| 欧美视频完全免费看| 国产在线一区二区综合免费视频| 亚洲欧洲av在线| 精品少妇一区二区| 在线观看日韩高清av| 国精品**一区二区三区在线蜜桃| 亚洲精品国产视频| 精品国产伦一区二区三区观看体验| 99re热这里只有精品视频| 日本成人在线网站| 国产精品麻豆欧美日韩ww| 日韩一二三四区| 色94色欧美sute亚洲线路一ni| 精品一区二区综合| 亚洲h在线观看| 欧美激情资源网| 日韩欧美二区三区| 欧美精品1区2区3区| 91玉足脚交白嫩脚丫在线播放| 久久精品国产亚洲一区二区三区| 一区二区三区在线观看动漫 | 国产在线播放一区二区三区| 亚洲高清不卡在线| 最新国产精品久久精品| 国产亚洲美州欧州综合国| 91精品国产91久久久久久一区二区| 日本高清不卡一区| 成a人片亚洲日本久久| 国产精品一区2区| 日本视频中文字幕一区二区三区| 一区二区三区在线视频观看58 | 日韩欧美一级二级三级| 欧美亚洲另类激情小说| 99re这里只有精品首页| 成人黄色国产精品网站大全在线免费观看| 久久av资源站| 日本不卡123| 天堂蜜桃一区二区三区| 亚洲777理论| 五月综合激情婷婷六月色窝| 亚洲国产综合91精品麻豆| 亚洲色图.com| 亚洲视频在线观看三级| 亚洲欧美另类在线| 亚洲欧美激情视频在线观看一区二区三区 | 日韩视频永久免费| 日韩午夜激情电影| 精品免费国产二区三区| 日韩精品一区二区三区四区视频| 制服丝袜亚洲网站| 777奇米四色成人影色区| 欧美一级国产精品| 精品伦理精品一区| 久久久久国产精品厨房| 欧美激情一区在线观看| 1024精品合集| 亚洲一区在线观看视频| 午夜伦理一区二区| 日本aⅴ免费视频一区二区三区| 蜜臀精品久久久久久蜜臀| 久久精品免费看| 国产夫妻精品视频| 91麻豆蜜桃一区二区三区| 在线观看欧美日本| 91麻豆精品国产91久久久久久 | 久久精品国产成人一区二区三区| 激情综合色播激情啊| 国产盗摄精品一区二区三区在线 | 欧美日韩成人综合在线一区二区| 欧美日韩电影一区| 欧美成人乱码一区二区三区| 久久欧美一区二区| 最新国产精品久久精品| 亚洲成av人片一区二区| 久久精品国产99国产精品| 成人黄色片在线观看| 欧美午夜一区二区| 精品久久五月天| 1024成人网色www| 日韩激情一二三区| www.一区二区| 91精品国产入口| 亚洲国产精品激情在线观看| 亚洲国产精品一区二区久久恐怖片| 日本成人超碰在线观看| 国产**成人网毛片九色| 欧美日韩免费观看一区三区| 久久精品视频免费| 亚洲国产精品精华液网站| 国产激情视频一区二区在线观看 | 欧美精品在线观看播放| 久久先锋影音av鲁色资源| 亚洲美女偷拍久久| 久久99精品国产91久久来源| 色88888久久久久久影院野外| 日韩一卡二卡三卡| 亚洲精品国产一区二区三区四区在线| 日韩av一区二区三区四区| 成人av小说网| 精品国产91亚洲一区二区三区婷婷| 亚洲日本在线看| 国产一区二区三区美女| 7777精品伊人久久久大香线蕉 | 色婷婷亚洲综合| 久久久精品中文字幕麻豆发布| 午夜亚洲国产au精品一区二区| 国产成人午夜片在线观看高清观看| 欧美三级在线播放| 国产精品国产三级国产有无不卡| 久久 天天综合| 欧美日韩一区二区在线视频| 亚洲欧美在线视频| 国产精品一二三区| 日韩一区二区三区视频| 一个色综合网站| 成人福利在线看| 久久久久久久久伊人| 蜜桃在线一区二区三区| 欧美日韩精品福利| 亚洲另类中文字| 99re这里都是精品| 亚洲欧洲日韩综合一区二区| 经典三级一区二区| 日韩欧美在线综合网| 婷婷综合五月天| 欧美日韩一区二区电影| 亚洲精品亚洲人成人网在线播放| 成人av午夜电影| 国产精品久久久久婷婷二区次| 国产精品系列在线播放| 久久一留热品黄| 国产精品888| 久久久电影一区二区三区| 国产一区二区三区视频在线播放| 日韩精品专区在线影院观看| 日韩高清在线不卡| 91精品国产综合久久福利软件| 三级欧美韩日大片在线看| 欧美视频在线一区二区三区| 一区二区三区日韩欧美精品| 在线日韩一区二区| 亚洲观看高清完整版在线观看 | 欧美军同video69gay| 婷婷综合久久一区二区三区| 91精选在线观看| 久久超碰97中文字幕| 国产日韩一级二级三级| 国产老妇另类xxxxx| 国产日韩精品一区二区三区| www.欧美.com| 亚洲国产wwwccc36天堂| 日韩亚洲欧美高清| 国产精品77777竹菊影视小说| 中文字幕av一区二区三区高| www.亚洲免费av| 一区二区日韩av| 91精品黄色片免费大全| 久99久精品视频免费观看| 国产亚洲视频系列| 91在线无精精品入口| 午夜激情一区二区三区| 精品动漫一区二区三区在线观看| 国产大陆亚洲精品国产| 一区二区在线观看免费|