我正在开发一个 win32 API 挂钩程序。据我了解,当程序为特定文件调用 ReadFile 时,该文件的内容被复制到 lpBuffer(参见下面的定义),
读取文件定义:
BOOL ReadFile(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped
);
现在,我的目标是改变这个 lpBuffer 并用我提供的内容填充它!我正在使用 EasyHook 来挂钩 ReadFile。我不熟悉 LPVOID 类型。我能够使用以下代码更改 GetCurrentDirectory 的内容。
string b = "C:\\my\\altered\\directory";
DWORD returnLength = b.length();
int i;
for (i = 0; i<b.length(); i++)
{
lpBuffer[i] = b[i];
}
lpBuffer[i++] = '\0';
GetCurrentDirectory 定义:
DWORD GetCurrentDirectory(
DWORD nBufferLength,
LPTSTR lpBuffer
);
如何为 ReadFile (LPVOID lpBuffer) 做类似的赋值?