阅读:1274回复:3
高分请教:如何直接写显卡的内存?
我在WinDriver中能看到显卡的内存地址,并能写ffffffff到BAR1,在屏幕左上角显示一个白点。
我想用DriverStudio来实现,但又怕做成PCI驱动程序后会把显卡驱动冲掉,我想直接写内存。先定义了KMemoryRange m_MemRange; 但m_MemRange.Initialize(INTERFACE_TYPE IntfType, ULONG BusNumber , ULONGLONG BaseBusAddress, ULONG Count, BOOLEAN MapToSystemVirtual=TRUE ); 时,编译出错,只能使用m_MemRange.Initialize( PCM_RESOURCE_LIST pTranslatedResourceList, PCM_RESOURCE_LIST pRawResourceList, ULONG Ordinal=0, BOOLEAN MapToSystemVirtual =TRUE 格式,这种格式好像只能使用自动分配的内存?不能自己定义基地址,不知我理解得对不对? 怎样才能使m_MemRange变成我想设的基地址,然后用outd等函数进行直接内存读写呢? |
|
|
沙发#
发布于:2002-07-25 09:29
怎地没人回应?很难么?
|
|
|
板凳#
发布于:2002-07-25 13:22
可以直接取得显示卡的物理地址,在DMA使用物理地址直接写显示存储器,编程方面可以在核心态将物理地址影射为核心态逻辑地址进行读写,在用户态可以将使用核心态影射的逻辑地址。
|
|
地板#
发布于:2002-07-25 13:35
参看dxapi
|
|