函数笔记 -- 整理

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值