刚学这个CreateFile,报了各种错误
假设我们的符号链接名是 L"\\??\\Hello"
正确的打开方式
TCHAR szSymName[] = L"\\\\?\\Hello";//或者 L"\\\\.\\Hello"
/*
错误 打开方式
L"\\??\\Hello" 123错误
L"\\.\\Hello" 2错误
*/
HANDLE hFile = CreateFile(
szSymName,
FILE_ALL_ACCESS,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hFile == INVALID_HANDLE_VALUE)
{
TCHAR szError[MAX_PATH];
StringCbPrintfW(szError, MAX_PATH, L"%d--%s", GetLastError(), szSymName);
AfxMessageBox(szError);
return;
}
CloseHandle(hFile);
原型
NTSTATUS ZwAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect
);
在此进程空间中分配内存
参数二使用之前需要声明一下,原因是由于
PVOID *BaseAddress 是一个二级指针, 如果传入一个NULL 相当于 &NULL, 内部的处理就会产生问题,所以必须先定义一个 PVOID 的变量 传入变量的地址
否则 会报错STATUS_INVALID_PARAMETER_2
2018/5/10 整理