hsfeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-09
  • 最后登录2003-03-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1451回复:3

如何读取文件和注册表内容?

楼主#
更多 发布于:2003-01-30 11:10
哪位大侠能跟我讲讲 NDIS里怎样读取文件,注册表的内容。
我使用NDISOPENFILE,NIDSMAPFILE老出现蓝屏,最好有代码
一定给分。谢谢了
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-05 20:27
//――――――――――――――――――――――――――――――――――
// 打开Protocol配置得到句柄ConfigHandle
//
NdisOpenProtocolConfiguration(Status, &ConfigHandle, SystemSpecific1);
if (*Status != NDIS_STATUS_SUCCESS) break;

//――――――――――――――――――――――――――――――――――
// 利用句柄ConfigHandle读出配置参数到Param结构
//
NdisReadConfiguration(Status, &Param, ConfigHandle, &DeviceStr, NdisParameterString);
if (*Status != NDIS_STATUS_SUCCESS) break;

//――――――――――――――――――――――――――――――――――
// 为Adapter结构分配内存
//
NdisAllocateMemoryWithTag(&pAdapt, sizeof(ADAPT), TAG);
if (pAdapt == NULL)
{
*Status = NDIS_STATUS_RESOURCES;
  break;
}

//――――――――――――――――――――――――――――――――――
// 初始化Adapter结构数据为0
//
NdisZeroMemory(pAdapt, sizeof(ADAPT));

//――――――――――――――――――――――――――――――――――
// 初始化pAdapt->BundleUniString.Buffer,这个缓冲区将用来保存从注册
// 表读出来的数据。
//
NdisAllocateMemoryWithTag( &(pAdapt->BundleUniString.Buffer), MAX_BUNDLEID_LENGTH ,TAG);
if (pAdapt->BundleUniString.Buffer == NULL)
{
  *Status = NDIS_STATUS_RESOURCES;
  break;
}

pAdapt->BundleUniString.MaximumLength = MAX_BUNDLEID_LENGTH ;

NdisReadConfiguration(&BundleStatus, &BundleParam, ConfigHandle, &BundleStr, NdisParameterString);

if (BundleStatus == NDIS_STATUS_SUCCESS)
{
//――――――――――――――――――――――――――――――――
// 复制绑定标识到自己初始化的缓冲区pAdapt->BundleUniString
//
  ASSERT( pAdapt->BundleUniString.MaximumLength  >= BundleParam->ParameterData.StringData.Length );

  pAdapt->BundleUniString.Length = BundleParam->ParameterData.StringData.Length;

  RtlCopyUnicodeString( &pAdapt->BundleUniString, &BundleParam->ParameterData.StringData);
}
else
{
//――――――――――――――――――――――――――――――――
// 没有在注册表里找到绑定ID,设定BundleUniString为\"<no-bundle>\"
//
NDIS_STRING NoBundle = NDIS_STRING_CONST (\"<no-bundle>\");
RtlCopyUnicodeString(&pAdapt->BundleUniString, &NoBundle);
}
放弃瘟草,现吃李草
hsfeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-09
  • 最后登录2003-03-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-08 11:49
antspower兄你好,非常感谢你的回复,还有点问题想请教
你给的程序应该是PTBINDADAPTER中的一段吧,我想问的是
NDISREADCONFIGURATION读的是注册表中的哪个键?这个键
是系统默认的么?还有PTBINDADAPTER每次开机的时候都运
行么?还是只在安装的时候运行一次?再次感谢!!
kingkung
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-02-08 18:12
inf里面设的
说。。。是天下第一; 做。。。是无能为力。
游客

返回顶部