使用Easyhook的Windows打印机API挂钩

使用Easyhook的Windows打印机API挂钩,windows,api,printing,hook,easyhook,Windows,Api,Printing,Hook,Easyhook,我正在尝试使用Easyhook库钩住winspool.drv中的WritePrinter函数 注入器 NTSTATUS nt = RhInjectLibrary( processId, // The process to inject into 0, // ThreadId to wake up upon injection EASYHOOK_INJECT_DEFAULT, NULL, // 32-bit dllToInject,

我正在尝试使用Easyhook库钩住winspool.drv中的WritePrinter函数

注入器

NTSTATUS nt = RhInjectLibrary(
    processId,   // The process to inject into
    0,           // ThreadId to wake up upon injection
    EASYHOOK_INJECT_DEFAULT,
    NULL, // 32-bit
    dllToInject,         // hook.dll
    NULL, // data to send to injected DLL entry point
    0// size of data to send
);
在hook.ddl中,创建以下函数来钩住打印机函数

BOOL MyWritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, LPDWORD pcWritten)
{

}

传递到打印机的数据流存在于pBuf中。但我无法获得这些数据。 如何从pBuf读取数据


WriteInter函数引用:

您尝试了什么,失败的原因是什么?pBuf是指向字节数组的指针,其长度为cbBuf@JustinStenning我试过几乎每种类型的铸造,但没有结果。是的,关于pBuf和cbBuf,你是对的。您能告诉我如何从pBuf获取数据并将其转换为字符串吗?
//Some Code

return  WritePrinter(hPrinter, pBuf, cbBuf, pcWritten);//