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

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

?? block.c

?? 一個(gè)Windows下的Linux專用虛擬機(jī)
?? C
字號(hào):
/* * This source code is a part of coLinux source package. * * Dan Aloni <da-x@colinux.org>, 2003 (c) * * The code is licensed under the GPL. See the COPYING file at * the root directory. * */ #include "ddk.h"#include <ddk/ntdddisk.h>#include <colinux/os/alloc.h>#include <colinux/kernel/transfer.h>#include <colinux/kernel/fileblock.h>#include <colinux/kernel/monitor.h>#include "fileio.h"static co_rc_t co_os_file_block_read(co_monitor_t *linuxvm, co_block_dev_t *dev, 			      co_monitor_file_block_dev_t *fdev, co_block_request_t *request){	return co_os_file_block_read_write(linuxvm, (HANDLE)(fdev->sysdep),					   request->offset, request->address,					   request->size, PTRUE);}static co_rc_t co_os_file_block_write(co_monitor_t *linuxvm, co_block_dev_t *dev, 			       co_monitor_file_block_dev_t *fdev, co_block_request_t *request){	return co_os_file_block_read_write(linuxvm, (HANDLE)(fdev->sysdep),					   request->offset, request->address,					   request->size, PFALSE);}static bool_t probe_area(HANDLE handle, LARGE_INTEGER offset, char *test_buffer, unsigned long size){	IO_STATUS_BLOCK isb;	NTSTATUS status;	status = ZwReadFile(handle, NULL, NULL,			    NULL, &isb, test_buffer, size,			    &offset, NULL);	if (status != STATUS_SUCCESS)		return PFALSE;	return PTRUE;}static co_rc_t co_os_file_block_detect_size_binary_search(HANDLE handle, unsigned long long *out_size){	/* 	 * Binary search the size of the device.	 *	 * Yep, it's ugly.	 *	 * I haven't found a more reliable way. I thought about switching between	 * IOCTL_DISK_GET_DRIVE_GEOMETRY, IOCTL_DISK_GET_PARTITION_INFORMATION, 	 * and even IOCTL_CDROM_GET_DRIVE_GEOMETRY depending on the device's type, 	 * but I'm not sure if would work in all cases.	 *	 * This *would* work in all cases.	 */	LARGE_INTEGER scan_bit;	LARGE_INTEGER build_size;	unsigned long test_buffer_size_max = 0x4000;	unsigned long test_buffer_size = 0x100;	char *test_buffer;	test_buffer = co_os_malloc(test_buffer_size_max);	if (!test_buffer)		return CO_RC(OUT_OF_MEMORY);	build_size.QuadPart = 0;	while (test_buffer_size <= test_buffer_size_max) {		if (probe_area(handle, build_size, test_buffer, test_buffer_size))			break;		test_buffer_size <<= 1;	}	if (test_buffer_size >= test_buffer_size_max) {		co_debug_error("size is zero");		*out_size = 0;		co_os_free(test_buffer);		return CO_RC(ERROR);	}	scan_bit.QuadPart = 1;	/* 	 * Find the smallest invalid power of 2.	 */	while (scan_bit.QuadPart != 0) {		if (!probe_area(handle, scan_bit, test_buffer, test_buffer_size))			break;		scan_bit.QuadPart <<= 1;	}	if (scan_bit.QuadPart == 0)		return CO_RC(ERROR);	while (scan_bit.QuadPart) {		LARGE_INTEGER with_bit;		scan_bit.QuadPart >>= 1;		with_bit.QuadPart = build_size.QuadPart | scan_bit.QuadPart;		if (probe_area(handle, with_bit, test_buffer, test_buffer_size))			build_size = with_bit;	}	build_size.QuadPart += test_buffer_size;	*out_size = build_size.QuadPart;	co_os_free(test_buffer);	return CO_RC(OK);}static co_rc_t co_os_file_block_detect_size_harddisk(HANDLE handle, unsigned long long *out_size){	GET_LENGTH_INFORMATION length;	IO_STATUS_BLOCK block;	NTSTATUS status;	length.Length.QuadPart = 0;	status = ZwDeviceIoControlFile(handle, NULL, NULL, NULL, &block,				       IOCTL_DISK_GET_LENGTH_INFO,				       NULL, 0, &length, sizeof(length));	if (status == STATUS_SUCCESS) {		co_debug("IOCTL_DISK_GET_LENGTH_INFO returned success");		*out_size = length.Length.QuadPart;		return CO_RC(OK);	}	return CO_RC(ERROR);}static co_rc_t co_os_file_block_detect_size(HANDLE handle, unsigned long long *out_size){	co_rc_t rc;	rc = co_os_file_block_detect_size_harddisk(handle, out_size);	if (CO_OK(rc))		return rc;	/*	 * Fall back to binary search.	 */ 	rc = co_os_file_block_detect_size_binary_search(handle, out_size);	if (CO_OK(rc))		return rc;	*out_size = 0;	return CO_RC(ERROR);}co_rc_t co_os_file_block_get_size(co_monitor_file_block_dev_t *fdev, unsigned long long *size){	NTSTATUS status;	HANDLE FileHandle;	IO_STATUS_BLOCK IoStatusBlock;	FILE_STANDARD_INFORMATION fsi;	co_rc_t rc;	bool_t opened = PFALSE;	co_debug("device %s", fdev->pathname);	if (fdev->sysdep == NULL) {		rc = co_os_file_open(fdev->pathname, &FileHandle, FILE_READ_DATA);		if (!CO_OK(rc))			return rc;		opened = TRUE;	}	else {		FileHandle = (HANDLE)(fdev->sysdep);	}	status = ZwQueryInformationFile(FileHandle,					&IoStatusBlock,					&fsi,					sizeof(fsi),					FileStandardInformation);	if (status == STATUS_SUCCESS) {		*size = fsi.EndOfFile.QuadPart;		co_debug("reported size: %llu KBs", (*size >> 10));		rc = CO_RC(OK);	}	else {		rc = co_os_file_block_detect_size(FileHandle, size);		if (CO_OK(rc)) {			co_debug("detected size: %llu KBs", (*size >> 10));		}	}		if (opened)		co_os_file_close(FileHandle);	return rc;}co_rc_t co_os_file_block_open(co_monitor_t *linuxvm, co_monitor_file_block_dev_t *fdev){	HANDLE FileHandle;	co_rc_t rc;	rc = co_os_file_open(fdev->pathname, &FileHandle, FILE_READ_DATA | FILE_WRITE_DATA);	if (!CO_OK(rc))		return rc;	fdev->sysdep = (struct co_os_file_block_sysdep *)(FileHandle);	return CO_RC(OK);}co_rc_t co_os_file_block_close(co_monitor_file_block_dev_t *fdev){	HANDLE FileHandle;	FileHandle = (HANDLE)(fdev->sysdep);	co_os_file_close(FileHandle);	fdev->sysdep = NULL;	return CO_RC(OK);}co_monitor_file_block_operations_t co_os_file_block_default_operations = {	.open = co_os_file_block_open,	.close = co_os_file_block_close,	.read = co_os_file_block_read,	.write = co_os_file_block_write,	.get_size = co_os_file_block_get_size,};

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久精品| 轻轻草成人在线| 色综合天天综合给合国产| 亚洲欧美综合另类在线卡通| 一本久久综合亚洲鲁鲁五月天| 亚洲综合激情网| 日韩精品一区在线观看| 国产精品一二三在| 亚洲视频一二区| 91精品国产综合久久精品麻豆 | 中文字幕电影一区| 91首页免费视频| 天堂蜜桃一区二区三区| 久久婷婷国产综合国色天香| a4yy欧美一区二区三区| 亚洲二区在线视频| 久久蜜桃一区二区| 色香蕉成人二区免费| 男人的天堂久久精品| 中文字幕第一区二区| 欧美色视频在线| 国产成人亚洲综合a∨猫咪| 亚洲激情五月婷婷| 2017欧美狠狠色| 欧美日韩中文另类| 成人一二三区视频| 青青青伊人色综合久久| 亚洲国产高清在线观看视频| 欧美猛男男办公室激情| 成人毛片视频在线观看| 五月综合激情网| 国产精品高清亚洲| 日韩欧美国产午夜精品| 色婷婷综合久久久中文字幕| 免费成人在线观看视频| 一区二区三区波多野结衣在线观看 | 午夜婷婷国产麻豆精品| 中文字幕电影一区| 欧美一区二区高清| 色8久久人人97超碰香蕉987| 国产尤物一区二区在线| 亚洲综合图片区| 国产精品国产三级国产a| 欧美电影免费观看高清完整版在线 | 精品少妇一区二区三区日产乱码 | 在线观看一区二区精品视频| 国产成人av影院| 美腿丝袜亚洲一区| 亚洲风情在线资源站| 国产精品久久久久一区| 亚洲精品在线免费播放| 日韩一级欧美一级| 欧美日韩中文字幕一区| 一本大道久久a久久综合| 国产成人一级电影| 麻豆91精品91久久久的内涵| 亚洲第一福利视频在线| 亚洲精品日日夜夜| 最新日韩av在线| 国产精品美女久久久久aⅴ国产馆| 日韩欧美一级二级三级久久久| 欧美日韩mp4| 欧美少妇bbb| 欧美制服丝袜第一页| 在线日韩国产精品| 在线亚洲人成电影网站色www| 99麻豆久久久国产精品免费 | 99精品桃花视频在线观看| 国产乱码精品一区二区三区av| 精品一二三四区| 国内成人精品2018免费看| 久久99这里只有精品| 国产一区二区三区免费看 | 综合欧美一区二区三区| 国产精品美女久久久久久久| 国产精品―色哟哟| 国产精品久久一级| 亚洲婷婷在线视频| 亚洲综合色成人| 亚洲成人激情av| 免费xxxx性欧美18vr| 久久99热国产| 成人三级伦理片| 在线精品亚洲一区二区不卡| 欧美日韩一区二区三区免费看 | 韩国一区二区在线观看| 国产福利91精品一区| 99国产精品久久久| 色94色欧美sute亚洲线路一ni| 欧美日韩三级一区二区| 日韩免费观看高清完整版在线观看| 2023国产精品自拍| 国产精品久99| 亚洲成a人v欧美综合天堂下载 | 国产精品免费网站在线观看| 玉足女爽爽91| 日韩av在线发布| 国产福利一区二区三区在线视频| av在线这里只有精品| 欧美亚洲国产一区在线观看网站| 欧美精三区欧美精三区| 2020日本不卡一区二区视频| 国产精品成人免费在线| 日韩中文字幕91| 国产精品一区在线| 欧美视频一区二| 2023国产精华国产精品| 亚洲黄色尤物视频| 国产真实乱对白精彩久久| 91蜜桃免费观看视频| 欧美一区二区三区日韩视频| 国产婷婷色一区二区三区在线| 亚洲免费观看高清完整版在线观看| 日本不卡一区二区三区| 不卡视频免费播放| 欧美一区二区三区的| 国产精品国产三级国产普通话三级| 亚洲成人黄色影院| 成人av网站免费| 日韩欧美在线一区二区三区| 成人免费在线视频| 久久精品国产一区二区三| 色天天综合色天天久久| 精品国产一区久久| 亚洲va欧美va天堂v国产综合| 国产成人一级电影| 欧美一级二级三级蜜桃| 亚洲嫩草精品久久| 国产ts人妖一区二区| 91精品国产入口| 亚洲女人小视频在线观看| 国产裸体歌舞团一区二区| 欧美麻豆精品久久久久久| 国产精品国产三级国产a| 激情综合网激情| 欧美一区二区精品久久911| 一区二区三区精品| av网站一区二区三区| 久久免费电影网| 九色|91porny| 欧美一区二区三区喷汁尤物| 亚洲尤物视频在线| 91麻豆123| 综合久久国产九一剧情麻豆| 国产91丝袜在线播放九色| 日韩视频免费直播| 偷拍一区二区三区四区| 在线观看网站黄不卡| 亚洲少妇30p| 不卡的看片网站| 国产女人18毛片水真多成人如厕| 九色|91porny| 精品嫩草影院久久| 精品亚洲porn| 精品久久国产97色综合| 久久精品国产久精国产爱| 欧美一区二区播放| 蜜桃一区二区三区在线| 日韩精品影音先锋| 久久66热re国产| 亚洲精品在线观| 国产成人综合视频| 国产欧美日韩视频一区二区| 国产电影一区在线| 国产欧美日韩另类一区| 成人动漫av在线| 亚洲日韩欧美一区二区在线| 色婷婷av久久久久久久| 亚洲高清免费视频| 欧美丰满美乳xxx高潮www| 日韩高清不卡一区二区三区| 欧美一区二区三区精品| 激情都市一区二区| 国产日韩欧美亚洲| 99久久精品国产网站| 依依成人综合视频| 91精品一区二区三区久久久久久 | 黄色精品一二区| 久久久影院官网| voyeur盗摄精品| 伊人色综合久久天天人手人婷| 欧美日韩极品在线观看一区| 久久精品国产亚洲aⅴ| 久久亚洲精品国产精品紫薇| 高清国产一区二区| 亚洲精品福利视频网站| 欧美一区日韩一区| 国产成人自拍在线| 一区二区三区在线高清| 欧美美女黄视频| 国产成人精品免费视频网站| 一区二区三区免费| 欧美成人性福生活免费看| 成人精品视频一区二区三区| 亚洲精品国产a久久久久久| 欧美大片在线观看一区| av一区二区三区黑人| 日韩电影免费一区| 国产精品美女久久久久久久| 欧美久久免费观看|