Nicholas_z
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2004-03-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1982回复:12

请教在WDM驱动中如何更新本机的IP地址?

楼主#
更多 发布于:2003-05-13 08:53
是否是使用RtlQueryRegistryValues和RtlWriteRegistryValue即可实现?如何实现?请指教。

最新喜欢:

aasa2aasa2
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-14 11:59
就是这两个函数,实现起来有点难度
同饮一壶酒
Nicholas_z
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2004-03-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-15 15:41
本人试着写了一下,请帮忙改正。
1)编译时提示:\'UNICODE_STRING\' illegal use of this type as an expression, 请问为什么。


NTSTATUS MC_WriteIP(PWSTR NewIPAddress)
{
 
  PWSTR QRegistryPath = L\"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\NetworkCards\\\\1\";

  RTL_QUERY_REGISTRY_TABLE QueryTable[2];
  
  RtlZeroMemory(QueryTable,sizeof(QueryTable));

  UNICODE_STRING  UnicodeName;
  
  UnicodeName.Buffer = NULL;
  UnicodeName.MaximumLength = 0;
  UnicodeName.Length = 0;

  QueryTable[0].Name = L\"ServiceName\";
  QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
  QueryTable[0].EntryContext = &UnicodeName;
 
  NTSTATUS status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
                         QRegistryPath,QueryTable,NULL,NULL);
  if(status!=STATUS_SUCCESS)
    return status;
  PWSTR WRegistryPath = L\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CorrentControlSet\\\\Services\\\\Tcpip\\\\Patameters\\\\Interfaces\";
  PWSTR WriteRegistryPath = (PWSTR)ExAllocatePool(PagedPool,sizeof(*WRegistryPath)+sizeof(*UnicodeName.Buffer));
  
  RtlCopyMemory(WriteRegistryPath,WRegistryPath,sizeof(*WRegistryPath));
  RtlCopyMemory(WriteRegistryPath+sizeof(*WRegistryPath),&UnicodeName,sizeof(UnicodeName));
  

  RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,WriteRegistryPath,L\"IPAddress\",REG_MULTI_SZ,
            NewIPAddress,sizeof(ValueData));
//释放内存
  ExFreePool(UnicodeName.Buffer);
  ExFreePool(QueryTable);
  ExFreePool(WriteRegistryPath);
  return STATUS_SUCCESS;
}
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-16 13:38
我不是这样实现的,请详细说说你的想法。你想在什么时候改IP.或发邮件给我。
同饮一壶酒
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-16 13:42
你这样也实现不了。错误太多。
同饮一壶酒
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-16 13:47
路径有问题,在Nt/2000/Xp下要修改网卡下的IP才有用。
同饮一壶酒
Nicholas_z
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2004-03-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-16 14:09
能否具体指正一下?
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-16 20:53
发邮件给我wzxyilove@163.net
同饮一壶酒
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-16 21:06
L\"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\NetworkCards\\\\1

可能网卡编号不一定是1,特别是以前装过网卡的情况下

UnicodeName.Buffer = NULL;
UnicodeName.MaximumLength = 0;
UnicodeName.Length = 0;
最好给一个确定的buffer, QueryTable[0].EntryContext = &UnicodeName; 因为返回时不一定会分配buffer.

这个程序我写了4天,主要难度在于Unicode_string的使用上。
Reg_Multi_Sz 需要在要写入的字符串以/0/0/0/0结尾。否则会写入乱码。
你是哪里的公司?
同饮一壶酒
Nicholas_z
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2004-03-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-17 15:39
给你发了封邮件,请看一下。
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-05-17 20:58
给分吧
同饮一壶酒
Nicholas_z
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2004-03-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-05-19 10:22
为什么进到这个贴子后总是说我还没有登录论坛,在回复的时候又告诉我已经登录了?我正在想办法给你分。
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-05-21 15:20
谢谢
同饮一壶酒
游客

返回顶部