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

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

?? tmman.c

?? PNX系列設(shè)備驅(qū)動 PNX系列設(shè)備驅(qū)動
?? C
?? 第 1 頁 / 共 3 頁
字號:
		Executive,
		KernelMode,
		FALSE,
		NULL );
}

VOID	tmmanDeviceWaitForStop ( TMManDeviceObject* TMManDevice )
{
	KeWaitForSingleObject (
		&TMManDevice->StopEvent,
		Executive,
		KernelMode,
		FALSE,
		NULL );
}

//////////////////////////////////////////////////////////////////////////////
//
//	HELPER DATA ACCESS FUNCTIONS
//
//////////////////////////////////////////////////////////////////////////////

BOOLEAN RegistryReadDWORD ( 
	HANDLE	RegistryHandle, 
	PWCHAR	ValueName,
	PULONG	ValuePtr )
{
	ULONG	BytesXfered;	
	NTSTATUS	Status;
	UNICODE_STRING	UnicodeValueName;
	PUCHAR	PartialInformation[sizeof(KEY_VALUE_PARTIAL_INFORMATION) + sizeof(ULONG)];


	RtlInitUnicodeString (&UnicodeValueName, ValueName );

	Status = ZwQueryValueKey(
		RegistryHandle,
		&UnicodeValueName,
		KeyValuePartialInformation,
		(PVOID)PartialInformation,
		sizeof(KEY_VALUE_PARTIAL_INFORMATION) + sizeof(ULONG),
		&BytesXfered );

    if ( NT_SUCCESS ( Status ) && 
		((PKEY_VALUE_PARTIAL_INFORMATION)PartialInformation)->DataLength == sizeof(ULONG) ) 
	{
		*ValuePtr = *((PULONG)&((PKEY_VALUE_PARTIAL_INFORMATION)PartialInformation)->Data[0]);
		return TRUE;
    } 
	else 
	{
		return FALSE;
    }
}


BOOLEAN
InitBridge ( 
	halParameters* Config )
{

	ULONG	Data;

	Data = 0x06;


	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x44,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}



	Data = 0x00001000;

	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x50,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary CSR Mem BAR:FAIL\n"));
		return FALSE;
	}


	Data = 0xFFFFFFFF;

	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x54,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary CSR IO BAR:FAIL\n"));
		return FALSE;
	}


	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->SystemBaseAddress, 
		(ULONG)0x58,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary CSR IO BAR:FAIL\n"));
		return FALSE;
	}



	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->SDRAMBaseAddress, 
		(ULONG)0x98,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary CSR IO BAR:FAIL\n"));
		return FALSE;
	}


	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->MMIOBaseAddress, 
		(ULONG)0x9C,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary CSR IO BAR:FAIL\n"));
		return FALSE;
	}


	Data = 0x00000000;

	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0xA4,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary CSR IO BAR:FAIL\n"));
		return FALSE;
	}


	Data = 0xFFFF0000;

	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x90,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitBridge:HalSetBusDataByOffset:Secondary CSR IO BAR:FAIL\n"));
		return FALSE;
	}



	return TRUE /* TMOK */;
}

/*
	This function will configure the TMX000 device behind the DEC Bridge
	and also extract the relevant information about the TMX000 device
	into the HalParametrs structure.
*/
BOOLEAN 
InitTriMedia (
	halParameters* Config )
{

	ULONG	ShiftIndex;
	ULONG	TriMediaAccessAddress;
	ULONG	Data;
	
	/* search secondary for Trimedia */
	for ( ShiftIndex = 0 ; ShiftIndex < 16 ; ShiftIndex++ )
	{
		TriMediaAccessAddress = (0x00010000 << ShiftIndex);

		Data = TriMediaAccessAddress;
		/* Config Address Register Type 0 Address */
		if ( HalSetBusDataByOffset (
			PCIConfiguration,
			(ULONG)Config->BusNumber,
			Config->SlotNumber.u.AsULONG,
			&Data, 
			(ULONG)0x80,					// register offset in config space
			sizeof (ULONG) ) != sizeof ( ULONG ) )
		{
			DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
			return FALSE;
		}


		/* Config Address Register Type 0 Address */
		if ( HalGetBusDataByOffset (
			PCIConfiguration,
			(ULONG)Config->BusNumber,
			Config->SlotNumber.u.AsULONG,
			&Config->TMDeviceVendorID, 
			(ULONG)0x84,					// register offset in config space
			sizeof (ULONG) ) != sizeof ( ULONG ) )
		{
			DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
			return FALSE;
		}

		DPF(0,("InitTriMedia:TriMediaAccessAddress[0x%x]:DeviceVendorID[0x%x]\n",
			TriMediaAccessAddress, Config->TMDeviceVendorID ));

		
		if ( (  Config->TMDeviceVendorID == ( ( constTMMANTM1000DeviceID << 16 ) | constTMMANTM1000VendorID ) ) || 
			( Config->TMDeviceVendorID == ( ( constTMMANTM2000DeviceID << 16 ) | constTMMANTM2000VendorID ) ) ||
			( Config->TMDeviceVendorID == ( ( constTMMANTM1300DeviceID << 16 ) | constTMMANTM1300VendorID ) ) )
		{
			break;
		}
	}

	if ( (  Config->TMDeviceVendorID != ( ( constTMMANTM1000DeviceID << 16 ) | constTMMANTM1000VendorID ) ) && 
		( Config->TMDeviceVendorID != ( ( constTMMANTM2000DeviceID << 16 ) | constTMMANTM2000VendorID ) ) &&
		( Config->TMDeviceVendorID != ( ( constTMMANTM1300DeviceID << 16 ) | constTMMANTM1300VendorID ) ) )
	{
			return FALSE;
	}

	///////////////////////////////////////////////////////////////////////
	Data = TriMediaAccessAddress | 0x00000008;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x80,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}


	/* Config Address Register Type 0 Address */
	if ( HalGetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->TMClassRevisionID, 
		(ULONG)0x84,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
		return FALSE;
	}


	///////////////////////////////////////////////////////////////////////
	// read the subsystem and subsystem vendor ID.
	Data = TriMediaAccessAddress | 0x0000002C;


	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x80,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}


	/* Config Address Register Type 0 Address */
	if ( HalGetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->TMSubsystemID, 
		(ULONG)0x84,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
		return FALSE;
	}

	///////////////////////////////////////////////////////////////////////
	Data = TriMediaAccessAddress | 0x0000000C;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x80,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}

	Data = 0x00000000;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x84,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
		return FALSE;
	}


	///////////////////////////////////////////////////////////////////////
	Data = TriMediaAccessAddress | 0x00000010;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x80,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}

	Data = 0x00000000;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->SDRAMBaseAddress, 
		(ULONG)0x84,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
		return FALSE;
	}


	///////////////////////////////////////////////////////////////////////
	Data = TriMediaAccessAddress | 0x00000014;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x80,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}

	Data = 0x00000000;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->MMIOBaseAddress, 
		(ULONG)0x84,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
		return FALSE;
	}




	///////////////////////////////////////////////////////////////////////
	Data = TriMediaAccessAddress | 0x0000003C;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x80,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}

	Data = 0x00000000;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Config->InterruptVector, 
		(ULONG)0x84,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
		return FALSE;
	}


	///////////////////////////////////////////////////////////////////////
	Data = TriMediaAccessAddress | 0x00000004;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x80,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalSetBusDataByOffset:Secondary Command Status Write:FAIL\n"));
		return FALSE;
	}

	Data = 0x00000006;

	/* Config Address Register Type 0 Address */
	if ( HalSetBusDataByOffset (
		PCIConfiguration,
		(ULONG)Config->BusNumber,
		Config->SlotNumber.u.AsULONG,
		&Data, 
		(ULONG)0x84,					// register offset in config space
		sizeof (ULONG) ) != sizeof ( ULONG ) )
	{
		DPF(0,("InitTriMedia:HalGetBusDataByOffset:Secondary Vendor Device ID:FAIL\n"));
		return FALSE;
	}



	return TRUE; /* TMOK */;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老司机午夜精品| 老色鬼精品视频在线观看播放| 91福利精品视频| 亚洲一级电影视频| 日韩一区二区三区免费看| 国产一区二区三区av电影 | 国产欧美日韩精品a在线观看| 成人福利视频在线看| 亚洲午夜激情av| 久久蜜桃av一区二区天堂| 91免费在线播放| 麻豆国产一区二区| 亚洲视频在线一区二区| 337p亚洲精品色噜噜噜| 福利电影一区二区| 日韩精品欧美成人高清一区二区| 久久精品视频在线免费观看| 欧美性大战久久久| 高清免费成人av| 蜜桃一区二区三区在线| 亚洲色图色小说| 久久精品人人做人人爽97| 欧美性猛交xxxxxx富婆| 国产精品一二三区| 亚洲男人天堂av网| 久久久久99精品国产片| 在线观看91av| 欧洲一区二区av| aaa亚洲精品| 国产成人免费视频网站| 免费不卡在线观看| 亚洲国产一区二区视频| 亚洲精品欧美专区| 中文字幕一区二区三区乱码在线| 久久亚洲欧美国产精品乐播 | 国产黄人亚洲片| 美女一区二区在线观看| 亚洲成人一二三| 亚洲欧美日韩国产另类专区| 欧美精品一区二区三区很污很色的| 91久久精品一区二区三区| 成人小视频在线| 国产福利一区二区三区视频| 精品综合久久久久久8888| 亚洲影院久久精品| 亚洲欧美色图小说| 亚洲视频中文字幕| 国产女人水真多18毛片18精品视频| 欧美精品v国产精品v日韩精品| 日本韩国欧美一区| 91蜜桃免费观看视频| 成人精品鲁一区一区二区| 国产精品一区二区在线看| 国产精品综合在线视频| 国内成人免费视频| 精品一区二区三区久久| 亚洲gay无套男同| 亚洲愉拍自拍另类高清精品| 亚洲高清在线视频| 亚洲国产成人va在线观看天堂| 亚洲一区二区综合| 亚洲精品老司机| 亚洲午夜成aⅴ人片| 天天影视色香欲综合网老头| 五月婷婷激情综合| 日本aⅴ精品一区二区三区| 麻豆成人免费电影| 国产一区二区三区免费观看| 夫妻av一区二区| 成人一道本在线| 色婷婷久久一区二区三区麻豆| 国产1区2区3区精品美女| av一区二区三区| 在线亚洲精品福利网址导航| 欧美色成人综合| 日韩欧美国产综合| 久久久综合九色合综国产精品| 亚洲国产成人在线| 亚洲美女偷拍久久| 午夜视频在线观看一区二区三区| 亚洲成a人v欧美综合天堂下载| 美国三级日本三级久久99| 精品一区二区精品| 高清不卡一区二区在线| 一本色道久久综合亚洲精品按摩| 欧美日韩综合色| 精品毛片乱码1区2区3区| 26uuu另类欧美亚洲曰本| 国产精品萝li| 婷婷综合五月天| 国产精品综合视频| 欧美视频精品在线观看| 国产欧美一区二区精品性| 天天操天天色综合| 91小宝寻花一区二区三区| 日韩精品一区国产麻豆| 亚洲欧美色图小说| 国产精品综合一区二区三区| 欧美精品三级在线观看| 国产精品福利一区二区三区| 久久99日本精品| 欧美日韩国产另类一区| 亚洲天堂中文字幕| 国产mv日韩mv欧美| 日韩欧美国产三级电影视频| 亚洲成a人片综合在线| 99久久国产免费看| 中文欧美字幕免费| 国产在线不卡一区| 日韩免费观看高清完整版在线观看| 一区二区三区国产精华| 粉嫩av一区二区三区在线播放| 日韩免费高清视频| 日本中文字幕不卡| 欧美日韩一区不卡| 亚洲美女偷拍久久| 91在线码无精品| 日韩一区日韩二区| 成人性生交大片免费看视频在线| 26uuu精品一区二区在线观看| 人禽交欧美网站| 日韩小视频在线观看专区| 日韩黄色片在线观看| 欧美日韩一卡二卡三卡| 亚洲午夜电影网| 欧美性生活一区| 亚洲6080在线| 在线精品观看国产| 亚洲午夜久久久久久久久久久| 色8久久人人97超碰香蕉987| 亚洲人成亚洲人成在线观看图片| 成人短视频下载| 中文字幕一区二区三区乱码在线 | 欧美一区二区三区爱爱| 亚洲第一狼人社区| 6080国产精品一区二区| 日本91福利区| 久久综合av免费| 国产91精品露脸国语对白| 国产日韩成人精品| 成人国产精品免费观看视频| 中文字幕在线不卡视频| 91视频免费播放| 亚洲一区中文在线| 欧美高清www午色夜在线视频| 日本最新不卡在线| 久久影院午夜论| 成人福利电影精品一区二区在线观看| 国产精品视频免费| 色老汉av一区二区三区| 亚洲精品视频在线| 欧美日韩一区二区在线视频| 日韩国产欧美在线视频| 精品国产一区二区三区久久久蜜月 | 欧美精选一区二区| 久久成人免费网站| 国产欧美1区2区3区| 欧洲精品在线观看| 麻豆国产精品777777在线| 国产欧美精品一区| 在线国产电影不卡| 麻豆精品精品国产自在97香蕉| 久久久久国色av免费看影院| 99国产欧美另类久久久精品| 成人高清免费在线播放| 亚洲男人的天堂av| 日韩一区二区三区免费看| 成人午夜在线播放| 亚洲国产日韩a在线播放| 日韩精品专区在线影院重磅| av中文字幕在线不卡| 丝袜美腿高跟呻吟高潮一区| 久久一夜天堂av一区二区三区| 91在线精品一区二区| 免费高清不卡av| 日韩久久一区二区| 日韩一区二区三区精品视频| 不卡的av电影在线观看| 日本成人中文字幕| 国产精品福利影院| 精品欧美久久久| 日本高清不卡在线观看| 国产精品一级在线| 午夜精品影院在线观看| 欧美激情一区二区三区在线| 在线播放日韩导航| 91香蕉视频黄| 国产精品一区二区在线播放 | 久久精品999| 一区二区三区四区在线免费观看| 欧美精品一区视频| 欧美剧在线免费观看网站 | 欧美一二三四在线| 91浏览器打开| 国产精品1区二区.| 亚洲成人第一页| 亚洲免费观看高清完整版在线观看 | 中文字幕巨乱亚洲| 日韩一区二区视频| 欧美在线综合视频|