资源简介
filedisk-21是最新版本的经典windows磁盘驱动例子,学习必看。将一个(或多个)文件映射为物理磁盘或光驱。包括了驱动部分代码和应用部分代码。这个版本支持了映射稀疏文件,稀疏文件大家都知道的吧?--windows的天才设计,效果上实现了磁盘映射文件占用空间的按需变大...
注意:需要在vs2015和wdk10编译代码。
注意:需要在vs2015和wdk10编译代码。
代码片段和文件信息
/*
This is a virtual disk driver for Windows that uses one or more files to
emulate physical disks.
Copyright (C) 1999-2015 Bo Brant閚.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License or
(at your option) any later version.
This program is distributed in the hope that it will be useful
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not write to the Free Software
Foundation Inc. 59 Temple Place Suite 330 Boston MA 02111-1307 USA
*/
#include
#include
#include
#include
#include
#include “filedisk.h“
#ifndef _PREFAST_
#pragma warning(disable:4068)
#endif // _PREFAST_
#pragma prefast( disable: 28719 “this warning only applies to drivers not applications“ )
int FileDiskSyntax(void)
{
fprintf(stderr “syntax:\n“);
fprintf(stderr “filedisk /mount [size[k|M|G] | /ro | /cd] \n“);
fprintf(stderr “filedisk /umount \n“);
fprintf(stderr “filedisk /status \n“);
fprintf(stderr “\n“);
fprintf(stderr “filename formats:\n“);
fprintf(stderr “ c:\\path\\filedisk.img\n“);
fprintf(stderr “ \\Device\\Harddisk0\\Partition1\\path\\filedisk.img\n“);
fprintf(stderr “ \\\\server\\share\\path\\filedisk.img\n“);
fprintf(stderr “\n“);
fprintf(stderr “example:\n“);
fprintf(stderr “filedisk /mount 0 c:\\tmp\\filedisk.img 8M f:\n“);
fprintf(stderr “filedisk /mount 1 c:\\tmp\\cdimage.iso /cd i:\n“);
fprintf(stderr “filedisk /umount f:\n“);
fprintf(stderr “filedisk /umount i:\n“);
return -1;
}
void PrintLastError(char* Prefix)
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS
NULL
GetLastError()
0
(LPTSTR) &lpMsgBuf
0
NULL
);
fprintf(stderr “%s %s“ Prefix (LPTSTR) lpMsgBuf);
LocalFree(lpMsgBuf);
}
int
FileDiskMount(
int DeviceNumber
POPEN_FILE_INFORMATION OpenFileInformation
BOOLEAN CdImage
)
{
char VolumeName[] = “\\\\.\\ :“;
char DriveName[] = “ :\\“;
char DeviceName[255];
HANDLE Device;
DWORD BytesReturned;
VolumeName[4] = OpenFileInformation->DriveLetter;
DriveName[0] = OpenFileInformation->DriveLetter;
Device = CreateFile(
VolumeName
GENERIC_READ | GENERIC_WRITE
FILE
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18332 1999-09-16 20:44 filedisk-21\COPYING.TXT
文件 16 2015-09-22 13:01 filedisk-21\DIRS
文件 12 2015-09-22 13:02 filedisk-21\exe\DIRS
文件 1301 2015-12-16 13:18 filedisk-21\exe\filedisk.sln
文件 12288 2015-12-16 18:32 filedisk-21\exe\obj\amd64\filedisk.exe
.CA.... 551936 2015-12-16 18:32 filedisk-21\exe\obj\amd64\filedisk.pdb
文件 11776 2015-12-16 18:32 filedisk-21\exe\obj\i386\filedisk.exe
.CA.... 568320 2015-12-16 18:32 filedisk-21\exe\obj\i386\filedisk.pdb
文件 31744 2015-12-16 18:32 filedisk-21\exe\obj\ia64\filedisk.exe
.CA.... 592896 2015-12-16 18:32 filedisk-21\exe\obj\ia64\filedisk.pdb
文件 11966 2015-09-22 23:49 filedisk-21\exe\src\filedisk.c
文件 2561 2015-12-16 18:21 filedisk-21\exe\src\filedisk.rc
文件 7959 2015-12-16 13:17 filedisk-21\exe\src\filedisk.vcxproj
文件 1235 2015-12-16 13:13 filedisk-21\exe\src\filedisk.vcxproj.filters
文件 267 1996-01-21 10:30 filedisk-21\exe\src\MAKEFILE
文件 186 2015-12-16 18:29 filedisk-21\exe\src\Sources
文件 356 2008-08-16 14:40 filedisk-21\filedisk.reg
文件 408 2009-10-14 15:26 filedisk-21\install.txt
文件 3942 2015-12-16 18:24 filedisk-21\readme.txt
文件 12 2015-09-22 13:02 filedisk-21\sys\DIRS
文件 2645 2015-12-16 13:07 filedisk-21\sys\filedisk.sln
文件 1920 2015-12-12 16:37 filedisk-21\sys\inc\filedisk.h
.CA.... 281600 2015-12-16 18:32 filedisk-21\sys\obj\chk\amd64\filedisk.pdb
文件 31744 2015-12-16 18:32 filedisk-21\sys\obj\chk\amd64\filedisk.sys
.CA.... 281600 2015-12-16 18:31 filedisk-21\sys\obj\chk\i386\filedisk.pdb
文件 22656 2015-12-16 18:31 filedisk-21\sys\obj\chk\i386\filedisk.sys
.CA.... 322560 2015-12-16 18:32 filedisk-21\sys\obj\chk\ia64\filedisk.pdb
文件 79872 2015-12-16 18:32 filedisk-21\sys\obj\chk\ia64\filedisk.sys
.CA.... 273408 2015-12-16 18:32 filedisk-21\sys\obj\fre\amd64\filedisk.pdb
文件 23552 2015-12-16 18:32 filedisk-21\sys\obj\fre\amd64\filedisk.sys
............此处省略34个文件信息
相关资源
- js框架源码
- qt贪吃蛇游戏源码
- 逍遥注册充值权限源码
- 学生信息管理系统 数据库课程设计源
- 企业工资管理系统 数据库课程设计源
- 操作系统实验报告 主存空间的分配与
- 基于AVR单片机的OLED现实源码
- 微信小程序源码,内含包括语音文本
- SpringBoot与Shiro整合-权限管理实战视频
- 毕业设计图书管理系统任务书 全
-
mpla
yer QT源码 - windows下使用MinGW+msys编译ffmpeg.docx
- VC发邮件源码
- 操作系统-时钟中断-模拟时钟中断的产
- labwindows/cvi 直方图
- 各种警告框源码
- win32实现扫雷程序,图形化界面,仿
- 简单微信矩阵源码
- 超级猜图资源及源码
- 手机版三国战记游戏源码带开发文档
- 包络线去除IDL源码
- R语言实现ARFIMA,源码和dll文件
- 获取和设置磁盘驱动器卷标名称
- ECDSA算法实现源码
- 银行家算法&多级队列调度算法内含源
- Windows二进制文件算法识别工具包
- POSCMS3.2.18商业版完整源码带模块(仅
- windows版本的cronolog.1.6.1
- VMware百度网盘链接.txt
- 可自定义2048游戏源码
评论
共有 条评论