91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 324KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-11
  • 語言: 其他
  • 標簽: 驅動,C++??

資源簡介

這是基于微端口的虛擬磁盤驅動代碼, 實現了主要框架,包括 SCSIPORT和STORPORT兩套接口, 驅動安裝后會生成一個內存磁盤,可按照正常的磁盤那樣在磁盤管理器 里創建和格式化等, 虛擬磁盤驅動是一個挺有用的驅動, 比如我們可以做成內存類型的磁盤,大大加快文件的訪問速度, 做成一個鏡像文件類型的虛擬磁盤,如虛擬光驅等等; 做成一個網絡類型的虛擬磁盤,所有的讀寫虛擬盤的數據通過網絡存取于服務器上。 一個典型的比如無盤工作站的應用,核心中一個部分就是網絡虛擬磁盤驅動, 當系統引導從實模式轉入到保護模式之后,虛擬磁盤驅動模擬出系統C盤, 把磁盤讀寫請求轉發到服務器,從而構成一個無盤工作站模型。 此代碼實現了MINIPORT主要架構, 可用于研究學習用途,勿用于商業。 代碼還沒完善,有興趣的朋友可在此代碼上做擴展。 以下文章以及后續文章簡單闡述了這個對應的虛擬磁盤驅動的大致原理,有興趣可看看。 http://blog.csdn.net/fanxiushu/article/details/9903123

資源截圖

代碼片段和文件信息

///?By?Fanxiushu?2013-08-10

#include?“vdisk.h“

#define??DEV_NAME???L“\\Device\\VirtDisk“
#define??DOS_NAME???L“\\DosDevices\\VirtDisk“

NTSTATUS?ioctl_init(?adapter_t*?a?)
{
NTSTATUS?status?=?STATUS_SUCCESS;
UNICODE_STRING?name;?RtlInitUnicodeString(?&name?DEV_NAME);
status?=?IoCreateDevice(?a->driver_object?0?&name?FILE_DEVICE_VIRTDISK?0?FALSE?&a->ioctl_device?);?
if(?!NT_SUCCESS(status)){
DPT(“Create?Control?Device?Error<%u>\n“status);
return?status;
}
UNICODE_STRING?lname;?RtlInitUnicodeString(?&lname?DOS_NAME?);?
status?=?IoCreateSymboliclink(?&lname?&name?);
if(?!NT_SUCCESS(status)?){
IoDeleteDevice(?a->ioctl_device?);?a->ioctl_device?=?NULL;?
return?status?;?
}

a->ioctl_device->Flags?&=?~DO_DEVICE_INITIALIZING;?//一切就緒,準備接收IRP
///
return?status;
}

void?ioctl_deinit(?adapter_t*?a?)
{
UNICODE_STRING?lname;?RtlInitUnicodeString(?&lname?DOS_NAME?);?
IoDeleteSymboliclink(?&lname?);
IoDeleteDevice(?a->ioctl_device?);?a->ioctl_device?=?NULL;?
}

NTSTATUS?ioctl_func_createclose(?PDEVICE_object?dev?PIRP?irp?)
{
NTSTATUS?status?=?STATUS_SUCCESS;?
PIO_STACK_LOCATION?irpStack?=?IoGetCurrentIrpStackLocation(?irp?);

////
irp->IoStatus.Status?=?status;
irp->IoStatus.Information?=?0;
IoCompleteRequest(?irp?IO_NO_INCREMENT);
return?status;?
}

NTSTATUS?ioctl_func_devicecontrol(?PDEVICE_object?dev?PIRP?irp?)
{
NTSTATUS?status?=?STATUS_SUCCESS;?
PIO_STACK_LOCATION?irpStack?=?IoGetCurrentIrpStackLocation(?irp?);

////
irp->IoStatus.Status?=?status;
irp->IoStatus.Information?=?0;
IoCompleteRequest(?irp?IO_NO_INCREMENT);
return?status;?
}


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????7201??2013-08-22?14:50??driver\buildchk_win7_x86.log

?????文件?????????28??2013-08-08?18:49??driver\dirs

?????文件????????109??2013-08-11?01:09??driver\fine.cmd

?????文件???????1674??2013-08-11?14:38??driver\ioctl.cpp

?????文件?????????46??2013-08-11?00:31??driver\ioctl.h

?????文件???????4559??2013-08-22?14:06??driver\main.cpp

?????文件????????537??2013-03-24?17:07??driver\ScsiPort\makefile

?????文件??????25116??2013-08-22?14:50??driver\ScsiPort\objchk_win7_x86\i386\ioctl.obj

?????文件??????22705??2013-08-22?14:50??driver\ScsiPort\objchk_win7_x86\i386\main.obj

?????文件???????2373??2013-08-22?14:12??driver\ScsiPort\objchk_win7_x86\i386\main.obj.oacr.root.x86chk.pft.xml

?????文件??????33817??2013-08-22?14:50??driver\ScsiPort\objchk_win7_x86\i386\user_disk.obj

?????文件????????508??2013-08-22?14:12??driver\ScsiPort\objchk_win7_x86\i386\user_disk.obj.oacr.root.x86chk.pft.xml

?????文件??????29653??2013-08-22?14:50??driver\ScsiPort\objchk_win7_x86\i386\user_intf.obj

?????文件?????184320??2013-08-22?14:50??driver\ScsiPort\objchk_win7_x86\i386\vc90.pdb

?????文件??????29562??2013-08-22?14:50??driver\ScsiPort\objchk_win7_x86\i386\virt_init.obj

?????文件??????30097??2013-08-22?14:50??driver\ScsiPort\objchk_win7_x86\i386\virt_scsi.obj

?????文件????????449??2013-08-22?14:10??driver\ScsiPort\objchk_win7_x86\i386\_objects.mac

?????文件?????????86??2013-08-08?19:32??driver\ScsiPort\sources

?????文件???????1456??2013-08-09?21:35??driver\ScsiPort\virtdisk.inf

????.CA....????265216??2013-08-22?14:50??driver\ScsiPort\virtdisk.pdb

?????文件???????8832??2013-08-22?14:50??driver\ScsiPort\virtdisk.sys

?????文件????????189??2013-08-09?22:48??driver\ScsiPort\安裝說明.txt

?????文件????????498??2013-08-20?13:50??driver\sources.inc

?????文件????????537??2013-03-24?17:07??driver\StorPort\makefile

?????文件??????27944??2013-08-22?14:50??driver\StorPort\objchk_win7_x86\i386\ioctl.obj

?????文件??????26084??2013-08-22?14:50??driver\StorPort\objchk_win7_x86\i386\main.obj

?????文件???????2371??2013-08-22?14:12??driver\StorPort\objchk_win7_x86\i386\main.obj.oacr.root.x86chk.pft.xml

?????文件??????36645??2013-08-22?14:50??driver\StorPort\objchk_win7_x86\i386\user_disk.obj

?????文件????????508??2013-08-22?14:12??driver\StorPort\objchk_win7_x86\i386\user_disk.obj.oacr.root.x86chk.pft.xml

?????文件??????33417??2013-08-22?14:50??driver\StorPort\objchk_win7_x86\i386\user_intf.obj

............此處省略26個文件信息

評論

共有 條評論