WDK驱动开发之路——字符串操作

#include <ntddk.h>
#include <wdm.h>
#define DEVICE_NAME L"\\Device\\MyDevice"
//卸载派遣函数
void DriverUnload(PDRIVER_OBJECT pdriver)
{
	NTSTATUS status = STATUS_SUCCESS;
	DbgPrint("Driver Unload!");
	return status;
}
//驱动加载入口
NTSTATUS DriverEntry(PDRIVER_OBJECT pdriver, PUNICODE_STRING path)
{
	DbgPrint("Hello Driver!!");

	//使用宏进行初始化字符串 但是由该初始化的字符串不能被修改 应用场景局限
	//UNICODE_STRING name = RTL_CONSTANT_STRING(DEVICE_NAME);
	UNICODE_STRING deviceName = {0};

	//PWCHAR testbuffer = ExAllocatePool(NonPagedPool,0x1000);

	PCHAR tempBuffer = "123\456\789\0";
	STRING str = {0};

	//多字节转换宽字节 多字节不支持中文
	RtlInitAnsiString(&str,tempBuffer);
	RtlAnsiStringToUnicodeString(&deviceName,&str,TRUE);

	//宽字节字符的拷贝
	UNICODE_STRING copyUnicode = {0};
	//字符拷贝必须初始化以下变量 否则无法初始化
	copyUnicode.Buffer = ExAllocatePool(NonPagedPool,0x1000);
	copyUnicode.MaximumLength = 0x1000;
	


	//更为安全的字符串拷贝

	PWCHAR tempBuffer2 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值