刚学这个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 整理