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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? giveio.c

?? 并口Jtag 燒寫flash工具的源代碼
?? C
字號:
/*********************************************************************

Author:     Dale Roberts
Date:       8/30/95
Program:    GIVEIO.SYS
Compile:    Use DDK BUILD facility

Purpose:    Give direct port I/O access to a user mode process.

*********************************************************************/
#include <ntddk.h>

/*
 *  The name of our device driver.
 */
#define DEVICE_NAME_STRING	L"giveio"

/*
 *  This is the "structure" of the IOPM.  It is just a simple
 * character array of length 0x2000.
 *
 *  This holds 8K * 8 bits -> 64K bits of the IOPM, which maps the
 * entire 64K I/O space of the x86 processor.  Any 0 bits will give
 * access to the corresponding port for user mode processes.  Any 1
 * bits will disallow I/O access to the corresponding port.
 */
#define	IOPM_SIZE	0x2000
typedef UCHAR IOPM[IOPM_SIZE];

/*
 *  This will hold simply an array of 0's which will be copied
 * into our actual IOPM in the TSS by Ke386SetIoAccessMap().
 * The memory is allocated at driver load time.
 */
IOPM *IOPM_local = 0;

/*
 *  These are the two undocumented calls that we will use to give
 * the calling process I/O access.
 *
 *  Ke386IoSetAccessMap() copies the passed map to the TSS.
 *
 *  Ke386IoSetAccessProcess() adjusts the IOPM offset pointer so that
 * the newly copied map is actually used.  Otherwise, the IOPM offset
 * points beyond the end of the TSS segment limit, causing any I/O
 * access by the user mode process to generate an exception.
 */
void Ke386SetIoAccessMap(int, IOPM *);
void Ke386QueryIoAccessMap(int, IOPM *);
void Ke386IoSetAccessProcess(PEPROCESS, int);

/*********************************************************************
  Release any allocated objects.
*********************************************************************/
VOID GiveioUnload(IN PDRIVER_OBJECT DriverObject)
{
	WCHAR DOSNameBuffer[] = L"\\DosDevices\\" DEVICE_NAME_STRING;
	UNICODE_STRING uniDOSString;

	if(IOPM_local)
		MmFreeNonCachedMemory(IOPM_local, sizeof(IOPM));

	RtlInitUnicodeString(&uniDOSString, DOSNameBuffer);
	IoDeleteSymbolicLink (&uniDOSString);
	IoDeleteDevice(DriverObject->DeviceObject);
}

/*********************************************************************
  Set the IOPM (I/O permission map) of the calling process so that it
is given full I/O access.  Our IOPM_local[] array is all zeros, so
the IOPM will be all zeros.  If OnFlag is 1, the process is given I/O
access.  If it is 0, access is removed.
*********************************************************************/
VOID SetIOPermissionMap(int OnFlag)
{
	Ke386IoSetAccessProcess(PsGetCurrentProcess(), OnFlag);
	Ke386SetIoAccessMap(1, IOPM_local);
}

void GiveIO(void)
{
	SetIOPermissionMap(1);
}

/*********************************************************************
  Service handler for a CreateFile() user mode call.

  This routine is entered in the driver object function call table by
the DriverEntry() routine.  When the user mode application calls
CreateFile(), this routine gets called while still in the context of
the user mode application, but with the CPL (the processor's Current
Privelege Level) set to 0.  This allows us to do kernel mode
operations.  GiveIO() is called to give the calling process I/O
access.  All the user mode application needs do to obtain I/O access
is open this device with CreateFile().  No other operations are
required.
*********************************************************************/
NTSTATUS GiveioCreateDispatch(
    IN  PDEVICE_OBJECT  DeviceObject,
    IN  PIRP            Irp
    )
{
	GiveIO();			// give the calling process I/O access

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

/*********************************************************************
  Driver Entry routine.

  This routine is called only once after the driver is initially
loaded into memory.  It allocates everything necessary for the
driver's operation.  In our case, it allocates memory for our IOPM
array, and creates a device which user mode applications can open.
It also creates a symbolic link to the device driver.  This allows
a user mode application to access our driver using the \\.\giveio
notation.
*********************************************************************/
NTSTATUS DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    )
{
	PDEVICE_OBJECT deviceObject;
	NTSTATUS status;
	WCHAR NameBuffer[] = L"\\Device\\" DEVICE_NAME_STRING;
	WCHAR DOSNameBuffer[] = L"\\DosDevices\\" DEVICE_NAME_STRING;
	UNICODE_STRING uniNameString, uniDOSString;

	//
	//  Allocate a buffer for the local IOPM and zero it.
	//
	IOPM_local = MmAllocateNonCachedMemory(sizeof(IOPM));
	if(IOPM_local == 0)
		return STATUS_INSUFFICIENT_RESOURCES;
	RtlZeroMemory(IOPM_local, sizeof(IOPM));

	//
	//  Set up device driver name and device object.
	//
	RtlInitUnicodeString(&uniNameString, NameBuffer);
	RtlInitUnicodeString(&uniDOSString, DOSNameBuffer);

	status = IoCreateDevice(DriverObject, 0,
					&uniNameString,
					FILE_DEVICE_UNKNOWN,
					0, FALSE, &deviceObject);

	if(!NT_SUCCESS(status))
		return status;

	status = IoCreateSymbolicLink (&uniDOSString, &uniNameString);

	if (!NT_SUCCESS(status))
		return status;

    //
    //  Initialize the Driver Object with driver's entry points.
	// All we require are the Create and Unload operations.
    //
    DriverObject->MajorFunction[IRP_MJ_CREATE] = GiveioCreateDispatch;
	DriverObject->DriverUnload = GiveioUnload;
    return STATUS_SUCCESS;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清视频在线| 夜夜精品视频一区二区| 欧美国产一区在线| 一个色综合网站| 欧美中文字幕一二三区视频| 日韩欧美成人激情| 国产精品久线在线观看| 日韩av中文在线观看| 国产91精品精华液一区二区三区 | 国产.精品.日韩.另类.中文.在线.播放| 欧美电影免费观看高清完整版| 狠狠色丁香久久婷婷综合_中| 91色婷婷久久久久合中文| 精品国产成人系列| 亚洲妇熟xx妇色黄| 精品久久人人做人人爰| 亚洲3atv精品一区二区三区| 91网上在线视频| 日韩高清在线观看| 国产欧美一区二区在线| 国产最新精品免费| 国产精品久久网站| 91精品综合久久久久久| 亚洲午夜免费视频| 久久亚区不卡日本| 蜜臀精品一区二区三区在线观看| 欧美日韩一区中文字幕| 亚洲免费观看在线观看| 成人av动漫网站| 日本一区二区三区免费乱视频| 97久久精品人人澡人人爽| 综合分类小说区另类春色亚洲小说欧美| 国产成人综合网| 亚洲国产精品av| 欧美三级在线看| 欧美肥胖老妇做爰| ㊣最新国产の精品bt伙计久久| 丰满少妇在线播放bd日韩电影| 一区二区三区四区亚洲| 2024国产精品视频| 欧美无砖专区一中文字| 亚洲123区在线观看| 久久精品人人做人人爽人人| 成人教育av在线| 日本成人在线电影网| 国产精品嫩草影院av蜜臀| 91在线精品一区二区三区| 久久成人综合网| 精品国精品自拍自在线| 欧美性大战久久久久久久蜜臀| 国产精品亚洲а∨天堂免在线| 日本一区二区电影| 日韩免费视频线观看| 欧美午夜寂寞影院| 99久久国产综合精品色伊| 国产自产v一区二区三区c| 日韩高清不卡一区二区三区| 一区二区三区四区不卡视频| 国产精品污www在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 欧美日韩中字一区| 色综合久久久久综合| 亚洲va天堂va国产va久| 亚洲三级在线看| 国产精品三级视频| 中文一区二区完整视频在线观看| 欧美成人欧美edvon| 777a∨成人精品桃花网| 欧美性一二三区| 色噜噜狠狠色综合中国| 美腿丝袜亚洲色图| 日韩av一区二区三区四区| 亚洲一区二区三区在线| 久久综合久久综合九色| 欧美不卡视频一区| 91精品国产欧美一区二区18| 成人午夜视频在线观看| 亚洲成人综合网站| 午夜久久久久久| 国产欧美日韩另类一区| 国产欧美一区二区精品久导航| 久久久91精品国产一区二区精品 | 亚洲成人综合视频| 亚洲丶国产丶欧美一区二区三区| 亚洲一区在线观看免费| 香蕉成人伊视频在线观看| 亚洲成av人片在www色猫咪| 午夜精品久久久久久久| 日韩精品视频网站| 国产精品盗摄一区二区三区| 中文字幕在线不卡视频| 亚洲欧美日韩综合aⅴ视频| 亚洲一区在线看| 日韩精品乱码av一区二区| 麻豆91精品视频| 国产综合色视频| 99国产一区二区三精品乱码| 日本高清不卡在线观看| 欧美日本国产视频| 欧美日本免费一区二区三区| 欧美日韩精品一区二区三区| 欧美一区二区久久久| 久久久亚洲精华液精华液精华液| 欧美三区免费完整视频在线观看| 欧美日韩国产另类一区| 精品日韩成人av| 中文字幕精品一区二区精品绿巨人 | 国产一区二区三区香蕉 | 亚洲18女电影在线观看| 久久精品国产成人一区二区三区| 国产成人aaaa| 在线观看中文字幕不卡| 91精品欧美久久久久久动漫 | 久久久www免费人成精品| 日韩美女视频一区二区 | 欧美丝袜丝nylons| 日韩美女视频在线| 亚洲三级电影全部在线观看高清| 亚洲福利视频三区| 国产一区二区三区四| 在线精品视频一区二区| 久久综合99re88久久爱| 一区二区三区久久| 国产毛片精品视频| 欧美色网站导航| 国产日韩精品视频一区| 亚洲国产精品综合小说图片区| 国内精品伊人久久久久av影院| 色婷婷综合久久久中文字幕| 日韩亚洲国产中文字幕欧美| 91麻豆精品91久久久久久清纯| 国产精品网友自拍| 另类小说视频一区二区| 一本大道久久a久久综合婷婷| 欧美成人高清电影在线| 一区二区三区产品免费精品久久75| 久久精品噜噜噜成人88aⅴ| 色综合中文字幕| 在线观看日韩av先锋影音电影院| 久久久精品影视| 午夜欧美视频在线观看| 91视频免费观看| 国产亚洲va综合人人澡精品| 日韩电影在线一区二区三区| 99国产精品视频免费观看| www久久精品| 日韩av不卡一区二区| 在线视频欧美精品| 国产精品久久久久久久久晋中 | 图片区小说区区亚洲影院| 成人午夜激情视频| www国产亚洲精品久久麻豆| 日韩国产欧美在线播放| 色天天综合色天天久久| 成人欧美一区二区三区小说| 国产麻豆视频精品| 亚洲精品在线观看视频| 美女性感视频久久| 欧美一区二区三区视频| 无码av免费一区二区三区试看| 日本精品一区二区三区高清| 中文字幕欧美一区| 成人av在线网| 国产精品理伦片| 不卡视频在线看| 中文字幕在线观看不卡视频| 成人app网站| 中文字幕亚洲综合久久菠萝蜜| 国产精品白丝jk黑袜喷水| 久久视频一区二区| 国产乱人伦精品一区二区在线观看| 欧美一级欧美一级在线播放| 免费xxxx性欧美18vr| av午夜一区麻豆| 日韩免费视频线观看| 久久精品国产一区二区三| 2021中文字幕一区亚洲| 国产一区二区美女诱惑| 国产欧美一区二区精品婷婷 | 久久精品72免费观看| 日韩精品专区在线影院观看| 久久se精品一区精品二区| 久久婷婷成人综合色| 国产不卡视频在线播放| 国产精品家庭影院| 精品精品欲导航| 福利电影一区二区| 自拍偷拍国产精品| 欧美日韩一区不卡| 美国十次综合导航| 国产精品区一区二区三区| 91免费版pro下载短视频| 亚洲尤物视频在线| 精品少妇一区二区三区| 成人av电影观看| 亚洲mv大片欧洲mv大片精品| 欧美大肚乱孕交hd孕妇| 成人av免费在线播放| 亚洲成人免费影院| 久久毛片高清国产|