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

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

?? tmif.c

?? PNX系列設(shè)備驅(qū)動 PNX系列設(shè)備驅(qū)動
?? C
?? 第 1 頁 / 共 3 頁
字號:

		}
		break;

		case constIOCTLtmmanEventSignal : // vxd callable
		{
			tmifGenericFunction*	TMIF =
				(tmifGenericFunction*)IOParameters;

			TMIF->Status = eventSignal (
					TMIF->Handle );
			ReturnInformation = sizeof ( tmifGenericFunction );
		}
		break;

		//---------------------------------------------------------------------
		//	Debugging 
		//---------------------------------------------------------------------
		case constIOCTLtmmanGetDebugDPBuffers : //vxd callable
		{
			tmifDebugBuffers*	TMIF =
				(tmifDebugBuffers*)IOParameters;
			TMManDeviceObject* TMManDevice = (TMManDeviceObject*)TMIF->DSPHandle;
			UInt32	ClientIdx, DeviceIdx;
			UInt32			Dummy;
			Bool			Status;
			UInt32			SDRAMKernelBaseAddress;


			Status = debugDPBuffers (
				TMManDevice->HalHandle,
				&TMIF->FirstHalfPtr, 
				&TMIF->FirstHalfSize, 
				&TMIF->SecondHalfPtr, 
				&TMIF->SecondHalfSize );

			ReturnInformation = sizeof ( tmifDebugBuffers );

			if ( Status == True )
			{
				TMIF->Status = statusSuccess;
			}
			else
			{
				// we have nothing so exit out
				TMIF->Status = statusDebugNoDebugInformation;
				break;
			}

			halGetSDRAMInfo (
				TMManDevice->HalHandle,
				(Pointer*)&Dummy,
				(Pointer*)&SDRAMKernelBaseAddress,
				&Dummy );

			if ( TMIF->FirstHalfPtr )
			{
				TMIF->FirstHalfPtr = TMIF->FirstHalfPtr - SDRAMKernelBaseAddress;
			}

			if ( TMIF->SecondHalfPtr )
			{
				TMIF->SecondHalfPtr = TMIF->SecondHalfPtr - SDRAMKernelBaseAddress;
			}
		}
		break;

		case constIOCTLtmmanGetDebugTargetBuffers : //vxd callable
		{
			tmifDebugBuffers*	TMIF =
				(tmifDebugBuffers*)IOParameters;
			TMManDeviceObject* TMManDevice = (TMManDeviceObject*)TMIF->DSPHandle;
			UInt32	ClientIdx, DeviceIdx;
			UInt32			Dummy;
			Bool			Status;
			UInt32			SDRAMKernelBaseAddress;
			
			Status = debugTargetBuffers (
				TMManDevice->HalHandle,
				&TMIF->FirstHalfPtr, 
				&TMIF->FirstHalfSize, 
				&TMIF->SecondHalfPtr, 
				&TMIF->SecondHalfSize );

			ReturnInformation = sizeof ( tmifDebugBuffers );

			if ( Status == True )
			{
				TMIF->Status = statusSuccess;
			}
			else
			{
				// we have nothing so exit out
				TMIF->Status = statusDebugNoDebugInformation;
				break;
			}

			halGetSDRAMInfo (
				TMManDevice->HalHandle,
				(Pointer*)&Dummy,
				(Pointer*)&SDRAMKernelBaseAddress,
				&Dummy );

			if ( TMIF->FirstHalfPtr )
			{
				TMIF->FirstHalfPtr = TMIF->FirstHalfPtr - SDRAMKernelBaseAddress;
			}

			if ( TMIF->SecondHalfPtr )
			{
				TMIF->SecondHalfPtr = TMIF->SecondHalfPtr - SDRAMKernelBaseAddress;
			}
		}
		break;

		case constIOCTLtmmanGetDebugHostBuffers : //vxd callable
		{
			tmifDebugBuffers*	TMIF =
				(tmifDebugBuffers*)IOParameters;
			Bool	Status;

			Status = debugHostBuffers (
				&TMIF->FirstHalfPtr, 
				&TMIF->FirstHalfSize, 
				&TMIF->SecondHalfPtr, 
				&TMIF->SecondHalfSize );

			TMIF->Status = 
				( Status == True ) ? statusSuccess : statusDebugNoDebugInformation;
			ReturnInformation = sizeof ( tmifDebugBuffers );

		}
		break;

		case constIOCTLtmmanDebugPrintf : //vxd callable
		{
			//appliction stuff is printed only if level 31 is enabled.
			DPF(31,( IOParameters ));
		}
		break;

		//---------------------------------------------------------------------
		//	Shared Memory
		//---------------------------------------------------------------------
		case constIOCTLtmmanSharedMemoryCreate : //vxd callable
		{
			tmifSharedMemoryCreate*	TMIF =
				(tmifSharedMemoryCreate*)IOParameters;
			TMManDeviceObject* TMManDevice = (TMManDeviceObject*)TMIF->DSPHandle;
			UInt32			ClientIdx, DeviceIdx;
			UInt8*			KernelMemoryAddress;

			TMIF->Status = memoryCreate(
				TMManDevice->MemoryManagerHandle,
				Process, // client listhead struct
				TMIF->Name, 
				TMIF->Size, 
				&KernelMemoryAddress,
				&TMIF->SharedMemoryHandle);


			if ( TMIF->Status == statusSuccess )
			{
				TMIF->Address =	KernelMemoryAddress - TMManDevice->MemoryBlock;
			}

			ReturnInformation = sizeof ( tmifSharedMemoryCreate );

		}
		break;

		case constIOCTLtmmanSharedMemoryDestroy : // vxd callable
		{
			tmifGenericFunction*	TMIF =
				(tmifGenericFunction*)IOParameters;

			TMIF->Status = memoryDestroy(
				TMIF->Handle );
			ReturnInformation = sizeof ( tmifGenericFunction );

		}
		break;

		case constIOCTLtmmanSharedMemoryGetAddress : // vxd callable
		{
			tmifSharedMemoryAddress*	TMIF =
				(tmifSharedMemoryAddress*)IOParameters;

			PHYSICAL_ADDRESS	PhysicalAddress;
			UInt32				KernelMemoryAddress;
			UInt32				HalHandle;

			TMIF->Status = memoryGetAddress (
				TMIF->SharedMemoryHandle,
				&KernelMemoryAddress );

			if ( TMIF->Status == statusSuccess )
			{
				PhysicalAddress = MmGetPhysicalAddress((PVOID)KernelMemoryAddress);

				memoryGetHalHandle ( 
					TMIF->SharedMemoryHandle,
					&HalHandle );

				TMIF->PhysicalAddress = halTranslateTargetPhysicalAddress ( 
					HalHandle, 
					PhysicalAddress.LowPart );
			}

			ReturnInformation = sizeof ( tmifSharedMemoryAddress );

		}
		break;



		//---------------------------------------------------------------------
		//	DMA Buffer Locking
		//---------------------------------------------------------------------
		case constIOCTLtmmanSGBufferCreate :
		{
			tmifSGBufferCreate*	TMIF =
				(tmifSGBufferCreate*)lpBufIn;

			TMManDeviceObject* TMManDevice = (TMManDeviceObject*)TMIF->DSPHandle;
            // mapped address is passed in output buffer to ensure 
            // mapping to this process context!!!!!!!!!!!!!!!!!!!
            DWORD MappedAddress = (DWORD) lpBufOut;
            DWORD  Size          = dwLenOut;


			TMIF->Status = sgbufferCreate (
				TMManDevice->SGBufferManagerHandle,
				(Pointer)dwOpenContext, // client listhead struct
				TMIF->Name,
				MappedAddress,
				Size,
				TMIF->Flags,
				&TMIF->SGBufferHandle );


			ReturnInformation = sizeof ( tmifSGBufferCreate );

		}
		break;

		case constIOCTLtmmanSGBufferDestroy : // vxd callable
		{
			tmifGenericFunction*	TMIF =
				(tmifGenericFunction*)IOParameters;

			TMIF->Status = sgbufferDestroy ( TMIF->Handle );

			ReturnInformation = sizeof ( tmifGenericFunction );

		}
		break;
		// the following 2 DEVIOCTLS are protected in user 
		// mode by a Global Mutex.
		case constIOCTLtmmanXlateAdapterAddress1 : // vxd callable
		{
			tmifGenericFunction*	TMIF =
				(tmifGenericFunction*)lpBufIn;

            DWORD		AdapterPhysicalAddress;
            DWORD       dwSize;
    
			//store the tranalted address in a temporary global variable
			KernelIoControl( ( TMManGlobal->OEMIOCTLBase + TMM_IOCTL_GET_PHYS_ADDRESS_OFFSET ),
                 lpBufOut,
                 dwLenOut,
                 (PVOID)&AdapterPhysicalAddress,
                 sizeof(DWORD),
                 &dwSize);

			TMManGlobal->XlatedAddress = AdapterPhysicalAddress;
            // nothing to be returned as the output buffer is METHOD_OUT_DIRECT.
			*pdwActualOut = dwLenOut;

		}
		break;

		case constIOCTLtmmanXlateAdapterAddress2 : // vxd callable
		{
			tmifGenericFunction*	TMIF =
				(tmifGenericFunction*)IOParameters;

			// retrieved the stored address
			TMIF->Handle = TMManGlobal->XlatedAddress;
			TMIF->Status = statusSuccess;

			ReturnInformation = sizeof ( tmifGenericFunction );

		}
		break;

		case constIOCTLtmmanMapSDRAM : // vxd callable
		{
			tmifGenericFunction*	TMIF =
				(tmifGenericFunction*)IOParameters;
			TMManDeviceObject* TMManDevice = (TMManDeviceObject*)TMIF->Handle;
			TMIF->Status = statusSuccess;
			ReturnInformation = sizeof ( tmifGenericFunction );

			if ( TMManGlobal->MapSDRAM )
				break;

			/* for WinCE we don't need to map SDRAM into user mode here*/
			if ( halMapSDRAM ( TMManDevice->HalHandle ) != TRUE )
			{
				TMIF->Status = statusMemoryUnavailable;
				DPF(0,("tmman:tmmanOpen:halMapAdapterMemory:SDRAM:FAIL\n" ));
				break;
			}

		}
		break;


		case constIOCTLtmmanUnmapSDRAM : // vxd callable
		{
			tmifGenericFunction*	TMIF =
				(tmifGenericFunction*)IOParameters;
			TMManDeviceObject* TMManDevice = (TMManDeviceObject*)TMIF->Handle;
			TMIF->Status = statusSuccess;
			ReturnInformation = sizeof ( tmifGenericFunction );

			if ( TMManGlobal->MapSDRAM )
				break;

			/* for WinCE we don't need to unmap SDRAM from user mode here */
			halUnmapSDRAM ( TMManDevice->HalHandle );
		}
		break;

        default :
		return TRUE;
	}


	return TRUE;
}

TMStatus	tmmanKernelModeNegotiateVersion ( 
	tmmanVersion* Version )
{
	TMStatus	Status = statusSuccess;

	if ( Version->Major != verGetFileMajorVersion() )
	{
		DPF(0,("tmman:tmmanKernelModeNegotiateVersion:MajorVersion:FAIL\n"));
		Status = statusMajorVersionError;
		goto tmifNegotiateVersionExit1;
	}

	if ( Version->Minor != verGetFileMinorVersion()  )
	{
		DPF(0,("tmman:tmmanKernelModeNegotiateVersion:MinorVersion:FAIL\n"));
		Status = statusMinorVersionError;
		goto tmifNegotiateVersionExit1;
	}

tmifNegotiateVersionExit1 :
	Version->Major = verGetFileMajorVersion();
	Version->Minor = verGetFileMinorVersion();
	Version->Build = verGetFileBuildVersion();
	return Status;
}


UInt32	tmmanPhysicalToMapped ( 
	tmmanMemoryBlock* MemoryBlock, 
	UInt32 PhysicalAddress )
{
	return MemoryBlock->MappedAddress + (PhysicalAddress - MemoryBlock->PhysicalAddress);
}


DWORD 
TMM_Read(
	DWORD	   dwOpenContext,
	LPVOID	pBuffer,
	DWORD	   dwCount
	)
{
   UNREFERENCED_PARAMETER(dwOpenContext);	
   UNREFERENCED_PARAMETER(pBuffer);	
   UNREFERENCED_PARAMETER(dwCount);	

   // return EOF.
   return (DWORD)0L;
}

DWORD
TMM_Write(
	DWORD	   dwOpenContext,
	LPCVOID	pSourceBytes,
	DWORD	   dwNumberOfBytes
	)
{
   UNREFERENCED_PARAMETER(dwOpenContext);	
   UNREFERENCED_PARAMETER(pSourceBytes);	
   UNREFERENCED_PARAMETER(dwNumberOfBytes);	

   // return 0 bytes written.
   return (DWORD)0L;
}

DWORD
TMM_Seek(
	DWORD	   dwOpenContext,
	long	   Amount,
	DWORD	   dwType
	)
{
   UNREFERENCED_PARAMETER(dwOpenContext);	
   UNREFERENCED_PARAMETER(Amount);	
   UNREFERENCED_PARAMETER(dwType);	

   // return position 0
   return (DWORD)0L;
}

void
TMM_PowerDown(
	DWORD	   dwOpenContext
	)
{
   UNREFERENCED_PARAMETER(dwOpenContext);	
   return;
}

void
TMM_PowerUp(
	DWORD	   dwOpenContext
	)
{
   UNREFERENCED_PARAMETER(dwOpenContext);
   return;	
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩在线视频| 亚洲欧美激情插| 成人午夜看片网址| 亚洲va欧美va天堂v国产综合| 久久久久久毛片| 欧美少妇bbb| a级高清视频欧美日韩| 蜜臀av一区二区| 亚洲大片精品永久免费| 中文字幕在线一区二区三区| 欧美一区二区在线视频| 91麻豆免费视频| 国产成人av一区二区三区在线观看| 1024成人网| 国产亚洲视频系列| 欧美一区二区视频在线观看 | 欧美三级视频在线观看| 国产91精品在线观看| 天堂一区二区在线| 亚洲精品自拍动漫在线| 中文字幕av一区二区三区| 日韩欧美成人一区二区| 欧美三级韩国三级日本三斤| 99精品一区二区| 国产福利91精品一区| 久久国产三级精品| 奇米影视7777精品一区二区| 首页综合国产亚洲丝袜| 午夜视频在线观看一区二区| 一级特黄大欧美久久久| 亚洲欧美日韩综合aⅴ视频| 国产精品私人影院| 欧美高清在线精品一区| 国产亚洲一本大道中文在线| 国产午夜三级一区二区三| 精品粉嫩aⅴ一区二区三区四区| 欧美一卡2卡三卡4卡5免费| 欧美精品日韩一本| 欧美日本一区二区三区四区| 欧美日韩国产成人在线免费| 欧美日韩中文字幕一区| 欧美日韩在线亚洲一区蜜芽| 欧美日韩午夜精品| 欧美高清www午色夜在线视频| 欧美日韩大陆一区二区| 在线电影国产精品| 欧美猛男超大videosgay| 91.xcao| 91精品视频网| 日韩欧美成人激情| 久久综合久久综合亚洲| 国产丝袜欧美中文另类| 国产精品乱人伦一区二区| 亚洲欧美一区二区三区久本道91| 亚洲欧美区自拍先锋| 亚洲一二三区不卡| 日本亚洲最大的色成网站www| 奇米色777欧美一区二区| 精品一区在线看| 成熟亚洲日本毛茸茸凸凹| av中文字幕一区| 欧美性三三影院| 91精品国产欧美一区二区18| 欧美成人女星排名| 国产精品久久久久久久久果冻传媒| 亚洲天堂精品视频| 亚洲bt欧美bt精品777| 狠狠网亚洲精品| 91亚洲精品一区二区乱码| 欧美日韩国产首页| 久久精品夜色噜噜亚洲aⅴ| 亚洲视频一二区| 日本91福利区| 成人激情文学综合网| 欧美午夜片在线看| 欧美videossexotv100| 国产精品久久久久三级| 天天爽夜夜爽夜夜爽精品视频| 国产乱子轮精品视频| 91在线云播放| 日韩欧美国产wwwww| 国产精品第四页| 日韩中文欧美在线| 成人小视频免费观看| 7799精品视频| 国产精品午夜久久| 亚洲成人激情综合网| 国产麻豆成人传媒免费观看| 在线精品观看国产| 久久久久久久久久电影| 一个色妞综合视频在线观看| 国产精品自在欧美一区| 欧美午夜宅男影院| 中文字幕 久热精品 视频在线| 午夜精品一区在线观看| 成人午夜激情片| 欧美岛国在线观看| 亚洲一区中文日韩| 国产成人在线视频播放| 欧美一区二区三区四区五区| 中文字幕一区二区三区在线不卡 | 亚洲一区二区视频| 国产999精品久久久久久绿帽| 欧美浪妇xxxx高跟鞋交| 国产精品初高中害羞小美女文| 日韩高清在线观看| 91福利视频久久久久| 久久久久久久久久久电影| 亚洲高清不卡在线观看| av在线综合网| 国产欧美一区二区精品久导航| 视频一区二区三区入口| 日本乱码高清不卡字幕| 欧美国产乱子伦| 国模套图日韩精品一区二区| 7777精品伊人久久久大香线蕉完整版 | 日本成人在线看| 欧美综合天天夜夜久久| 亚洲天堂中文字幕| 成人黄色av网站在线| 国产性天天综合网| 美女高潮久久久| 欧美军同video69gay| 亚洲成人www| 欧美日韩一区三区四区| 一区二区三区久久| 色视频成人在线观看免| 最新久久zyz资源站| www.色精品| 国产精品国产自产拍在线| 成人av在线资源| 中文字幕一区二区三区在线播放| 国产成人在线影院| 中国色在线观看另类| 成人午夜电影小说| 国产精品国产三级国产专播品爱网 | 国产精品超碰97尤物18| 成人动漫视频在线| 国产农村妇女毛片精品久久麻豆| 国产一区91精品张津瑜| 久久久久久电影| 国产福利一区二区| 国产欧美日韩激情| 99久久er热在这里只有精品66| 国产精品三级电影| 99久久精品国产毛片| 一区二区三区国产| 91精品在线免费| 国产资源在线一区| 欧美韩日一区二区三区| 91在线无精精品入口| 亚洲一区二区影院| 欧美一区二区三区免费观看视频| 久久97超碰国产精品超碰| 久久久久国产精品麻豆ai换脸| 成人av网站免费| 亚洲精品久久久久久国产精华液| 欧美日韩一级视频| 久久不见久久见免费视频7| 国产欧美一区在线| 色一情一乱一乱一91av| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲国产精品ⅴa在线观看| 91丨porny丨首页| 亚洲小少妇裸体bbw| 欧美成人a∨高清免费观看| 国产精品资源网站| 一二三区精品视频| 日韩一区二区在线看| 国产成人精品亚洲日本在线桃色 | www.欧美.com| 婷婷丁香久久五月婷婷| 久久久蜜臀国产一区二区| 91丨porny丨在线| 男人的j进女人的j一区| 日本一区二区三区在线不卡| 91精彩视频在线观看| 韩国av一区二区三区| 亚洲欧美一区二区三区孕妇| 91精品国产综合久久福利软件 | 国产精品成人一区二区艾草| 欧美精品777| 成人动漫av在线| 蜜臀av国产精品久久久久| 中文字幕在线观看一区| 91精品国产品国语在线不卡| 成人黄色免费短视频| 蜜桃视频一区二区三区| 国产精品久久久久婷婷二区次| 欧美人牲a欧美精品| 成人看片黄a免费看在线| 欧美aaaaa成人免费观看视频| 亚洲同性同志一二三专区| 精品伦理精品一区| 欧美三级日韩在线| 99久久久无码国产精品| 韩国精品主播一区二区在线观看 | 日韩免费一区二区三区在线播放| 99久久久无码国产精品| 精品亚洲成a人|