私は、フレームバッファにデータを直接書き込むことができるドライバを書いているので、ユーザ空間のアプリケーションが画面上に秘密のメッセージを表示することはできませんそれ。私のコードは、フレームバッファに値を書き込もうとしていますが、フレームバッファに値を書き込んだ後、フレームバッファから取得した値はすべて0です。Windowsのドライバのフレームバッファに直接書き込む方法
私は困惑しています?または、ユーザー空間のアプリケーションがメッセージの内容を取得できない間に、誰かが画面にメッセージを表示する方法を知っていますか?どうもありがとう!
#define FRAME_BUFFER_PHYSICAL_ADDRESS 0xA0000
#define BUFFER_SIZE 0x20000
void showMessage()
{
int i;
int *vAddr;
PHYSICAL_ADDRESS pAddr;
pAddr.QuadPart = FRAME_BUFFER_PHYSICAL_ADDRESS;
vAddr = (int *)MmMapIoSpace(pAddr, BUFFER_SIZE, MmNonCached);
KdPrint(("Virtual address is %p", vAddr));
for(i = 0; i < BUFFER_SIZE/4; i++)
{
vAddr[i] = 0x11223344;
}
for(i = 0; i < 0x80; i++)
{
KdPrint(("Value: %d", vAddr[i])); // output are all zero
}
MmUnmapIoSpace(vAddr, BUFFER_SIZE);
}