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

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

?? rw.c

?? ReactOS是一些高手根據(jù)Windows XP的內(nèi)核編寫出的類XP。內(nèi)核實(shí)現(xiàn)機(jī)理和API函數(shù)調(diào)用幾乎相同。甚至可以兼容XP的程序。喜歡研究系統(tǒng)內(nèi)核的人可以看一看。
?? C
字號:
/*
 * COPYRIGHT:        See COPYING in the top level directory
 * PROJECT:          ReactOS kernel
 * FILE:             services/fs/minix/rw.c
 * PURPOSE:          Minix FSD
 * PROGRAMMER:       David Welch (welch@mcmail.com)
 * UPDATE HISTORY:
 */

/* INCLUDES *****************************************************************/

#include <ntddk.h>
#include <string.h>
#include <ntos/minmax.h>

#define NDEBUG
#include <debug.h>

#include "minix.h"

/* FUNCTIONS ****************************************************************/

NTSTATUS STDCALL
MinixWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
   DPRINT("MinixWrite(DeviceObject %x Irp %x)\n",DeviceObject,Irp);

   Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;
   Irp->IoStatus.Information = 0;
   return(STATUS_UNSUCCESSFUL);
}

static NTSTATUS MinixReadFilePage(PDEVICE_OBJECT DeviceObject,
				  PMINIX_DEVICE_EXTENSION DeviceExt,
				  PMINIX_FSCONTEXT FsContext,
				  ULONG Offset,
				  PVOID* Buffer)
{
   NTSTATUS Status;
   ULONG i;
   ULONG DiskOffset;

   *Buffer = ExAllocatePool(NonPagedPool, 4096);

   for (i=0; i<4; i++)
     {
	Status = MinixReadBlock(DeviceObject,
				DeviceExt,
				&FsContext->inode,
				Offset + (i * BLOCKSIZE),
				&DiskOffset);
	MinixReadSector(DeviceObject,
			DiskOffset / BLOCKSIZE,
			(*Buffer) + (i * BLOCKSIZE));
     }
   return(STATUS_SUCCESS);
}

NTSTATUS STDCALL
MinixRead(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
   ULONG Length;
   PVOID Buffer;
   ULONG Offset;
   ULONG CurrentOffset;
   PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
   PFILE_OBJECT FileObject = Stack->FileObject;
   MINIX_DEVICE_EXTENSION* DeviceExt = DeviceObject->DeviceExtension;
   PMINIX_FSCONTEXT FsContext = (PMINIX_FSCONTEXT)FileObject->FsContext;
   unsigned int i;
   PVOID DiskBuffer;

   DPRINT("MinixRead(DeviceObject %x, Irp %x)\n",DeviceObject,Irp);

   Length = Stack->Parameters.Read.Length;
   Buffer = MmGetSystemAddressForMdl(Irp->MdlAddress);
   Offset = Stack->Parameters.Read.ByteOffset.u.LowPart;

   DPRINT("Length %d Buffer %x Offset %x\n",Length,Buffer,Offset);

   CurrentOffset=Offset;

   DPRINT("inode->i_size %d\n",inode->i_size);

   if (Offset > FsContext->inode.i_size)
     {
	Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;
	Irp->IoStatus.Information = 0;
	IoCompleteRequest(Irp,IO_NO_INCREMENT);
	return(STATUS_UNSUCCESSFUL);
     }
   if ((Offset+Length) > FsContext->inode.i_size)
     {
	Length = FsContext->inode.i_size - Offset;
     }

   if ((Offset%PAGE_SIZE)!=0)
     {
	CurrentOffset = Offset - (Offset%PAGE_SIZE);

	MinixReadFilePage(DeviceObject,
			  DeviceExt,
			  FsContext,
			  CurrentOffset,
			  &DiskBuffer);

	memcpy(Buffer,
	       DiskBuffer+(Offset%PAGE_SIZE),
	       min(PAGE_SIZE - (Offset%PAGE_SIZE),Length));

	ExFreePool(DiskBuffer);

	DPRINT("(BLOCKSIZE - (Offset%BLOCKSIZE)) %d\n",
	       (BLOCKSIZE - (Offset%BLOCKSIZE)));
	DPRINT("Length %d\n",Length);
	CurrentOffset = CurrentOffset + PAGE_SIZE;
	Buffer = Buffer + PAGE_SIZE - (Offset%PAGE_SIZE);
	Length = Length - min(PAGE_SIZE - (Offset%PAGE_SIZE),Length);
	DPRINT("CurrentOffset %d Buffer %x Length %d\n",CurrentOffset,Buffer,
	       Length);
     }
   for (i=0;i<(Length/PAGE_SIZE);i++)
     {
	CHECKPOINT;

	DPRINT("Length %d\n",Length);

	MinixReadFilePage(DeviceObject,
			  DeviceExt,
			  FsContext,
			  CurrentOffset,
			  &DiskBuffer);
	memcpy(Buffer, DiskBuffer, PAGE_SIZE);

	ExFreePool(DiskBuffer);

	CurrentOffset = CurrentOffset + PAGE_SIZE;
	Buffer = Buffer + PAGE_SIZE;
     }
   if ((Length%PAGE_SIZE) > 0)
     {
	CHECKPOINT;

	DPRINT("Length %x Buffer %x\n",(Length%PAGE_SIZE),Buffer);

	MinixReadFilePage(DeviceObject,
			  DeviceExt,
			  FsContext,
			  CurrentOffset,
			  &DiskBuffer);

	memcpy(Buffer, DiskBuffer, (Length%PAGE_SIZE));

	ExFreePool(DiskBuffer);

     }

   Irp->IoStatus.Status = STATUS_SUCCESS;
   Irp->IoStatus.Information = Length;
   IoCompleteRequest(Irp,IO_NO_INCREMENT);
   return(STATUS_SUCCESS);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区精品在线| 欧美日韩国产系列| 青青青爽久久午夜综合久久午夜| 精品成a人在线观看| 日韩一卡二卡三卡国产欧美| 色婷婷激情久久| 91免费观看视频在线| 国产激情91久久精品导航| 国产精品1区二区.| 高清av一区二区| eeuss影院一区二区三区| 99视频一区二区| 99久久久国产精品| 日本精品视频一区二区| 欧美日韩免费一区二区三区视频| 欧美伦理影视网| 日韩午夜电影av| 精品国产区一区| 国产精品天干天干在观线| 亚洲国产成人在线| 亚洲精品欧美二区三区中文字幕| 一区二区免费在线| 水蜜桃久久夜色精品一区的特点| 午夜久久久久久电影| 另类欧美日韩国产在线| 久久国产精品99久久人人澡| 国精产品一区一区三区mba视频| 国产精品888| 在线中文字幕一区二区| 欧美一区二区三区不卡| 欧美激情艳妇裸体舞| 亚洲一区二区五区| 国产精品综合在线视频| 91农村精品一区二区在线| 欧美日韩国产在线播放网站| 91精品国产综合久久精品app | 三级欧美韩日大片在线看| 麻豆精品在线播放| 色噜噜偷拍精品综合在线| 欧美女孩性生活视频| 国产清纯白嫩初高生在线观看91 | 国产一区二区三区免费播放| 国产91色综合久久免费分享| 国产成人精品综合在线观看| 97精品久久久午夜一区二区三区| 在线免费观看一区| 2020国产精品| 日韩精品三区四区| jizz一区二区| 久久综合色播五月| 午夜精品久久久| 91老司机福利 在线| 26uuu国产在线精品一区二区| 一区二区三区在线播放| 顶级嫩模精品视频在线看| 欧美日韩国产一区二区三区地区| 国产精品国产精品国产专区不片 | 国产精品99久久久久久久vr| 欧美吞精做爰啪啪高潮| 欧美激情一区二区三区| 狠狠色丁香久久婷婷综合丁香| 在线观看91视频| 亚洲精品国产精华液| 国产在线国偷精品产拍免费yy| 欧美人狂配大交3d怪物一区| 亚洲久本草在线中文字幕| 国产精品资源站在线| 欧美精品久久一区二区三区| 一区二区三区中文免费| 成年人午夜久久久| 欧美国产日韩a欧美在线观看| 国产一区免费电影| 亚洲精品在线观| 国产乱人伦精品一区二区在线观看| 欧美乱妇一区二区三区不卡视频| 亚洲大片在线观看| 欧美日韩国产片| 亚洲成人7777| 91精品国产综合久久久久| 免费看日韩a级影片| 日韩欧美一二三四区| 久久精品国产在热久久| 日韩欧美一二区| 国产一级精品在线| 中文字幕va一区二区三区| 成人做爰69片免费看网站| 国产精品理伦片| 91极品美女在线| 婷婷丁香激情综合| 日韩美女一区二区三区四区| 国产一区二区0| 亚洲欧洲精品一区二区三区 | 国产激情偷乱视频一区二区三区| 欧美成人女星排名| 成人伦理片在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日韩精品一二区| 欧美一区二区播放| 精品亚洲免费视频| 中文av一区二区| 欧美色区777第一页| 日韩不卡一二三区| 中文字幕二三区不卡| 99麻豆久久久国产精品免费 | 天天综合色天天| 日韩欧美国产综合一区 | 99在线精品视频| 亚洲综合图片区| 91麻豆精品国产91| 波多野结衣精品在线| 亚洲国产精品久久人人爱蜜臀| 日韩视频永久免费| 成人动漫一区二区在线| 爽好久久久欧美精品| 国产情人综合久久777777| 欧美日韩综合色| 成人免费观看视频| 男女男精品视频| 亚洲人成在线播放网站岛国| 日韩亚洲欧美在线| 一本色道综合亚洲| 精品一区二区在线看| 亚洲精品写真福利| 国产日韩精品一区二区三区| 欧美日韩高清在线| 91无套直看片红桃| 国产一区二区在线影院| 五月天一区二区| 亚洲视频一区二区免费在线观看 | 亚洲视频一区在线观看| 欧美精品一区二区三区高清aⅴ | 精品国产1区2区3区| 欧美综合久久久| av男人天堂一区| 国产剧情一区二区三区| 捆绑调教一区二区三区| 偷窥少妇高潮呻吟av久久免费| 成人欧美一区二区三区白人| 欧美精品一区二区在线播放| 日韩午夜av电影| 91精品国产综合久久婷婷香蕉| 欧美伊人久久久久久久久影院 | 97超碰欧美中文字幕| 国产老妇另类xxxxx| 韩国精品久久久| 韩国精品久久久| 蜜臀av一区二区在线免费观看 | 亚洲国产精品一区二区尤物区| 国产精品免费aⅴ片在线观看| 欧美大片在线观看| 在线播放91灌醉迷j高跟美女| 色综合久久综合| 91一区一区三区| 色哟哟一区二区| 色拍拍在线精品视频8848| 91丝袜国产在线播放| 91蜜桃视频在线| 91黄色免费看| 欧美日韩一区二区在线观看视频 | 欧美三级韩国三级日本三斤| 色老头久久综合| 欧美私模裸体表演在线观看| 欧美性色aⅴ视频一区日韩精品| 在线一区二区三区| 欧美日韩亚洲综合一区| 777xxx欧美| 精品毛片乱码1区2区3区| 久久精品在线观看| 自拍视频在线观看一区二区| 亚洲人妖av一区二区| 亚洲成av人影院| 久色婷婷小香蕉久久| 国产精品资源在线观看| www.综合网.com| 精品视频一区二区不卡| 日韩欧美电影在线| 国产欧美精品区一区二区三区| 最新成人av在线| 日韩精品一级二级| 国产精品一区二区久激情瑜伽| 成人18视频在线播放| 欧美精品在欧美一区二区少妇| 日韩美女天天操| 亚洲三级久久久| 日本vs亚洲vs韩国一区三区| 国产成人av电影在线播放| 一本色道久久加勒比精品| 制服视频三区第一页精品| 国产日韩精品一区| 午夜精品一区二区三区电影天堂| 久88久久88久久久| 91精彩视频在线观看| 久久久久免费观看| 夜夜夜精品看看| 国产成人一区在线| 欧洲国产伦久久久久久久| 精品国产成人在线影院| 亚洲一区免费观看| 国产精品白丝jk白祙喷水网站| 欧美日韩国产在线观看|