dlmufox
驱动牛犊
驱动牛犊
  • 注册日期2003-10-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1126回复:1

关于在ptbindadpter中初始化miniport的一个小问题

楼主#
更多 发布于:2004-04-07 09:54
一直有个小问题不是很明白,如题。

NDIS_HANDLE ConfigHandle = NULL;
PNDIS_CONFIGURATION_PARAMETER Param;
NDIS_STRING DeviceStr = NDIS_STRING_CONST("UpperBinds");//为什么一定要叫这个名字
PADAPTER pAdapter = NULL;
NDIS_STATUS Status;
UINT MediumIndex;

#ifdef _DEBUG
DbgPrint("==> Now FFPtBindAdapter is starting...n");
#endif
do
{
NdisOpenProtocolConfiguration(Status,&ConfigHandle,SystemSpecific1);
if(*pStatus!=NDIS_STATUS_SUCCESS) break;

NdisReadConfiguration(pStatus,&Param,ConfigHandle,&DeviceStr,NdisParameterString;//从注册表中读取数据,有devicestr也就是uppperbinds指定的数据吗?
if(*pStatus!=NDIS_STATUS_SUCCESS) break;

NdisAllocateMemoryWithTag(&pAdapter,sizeof(ADAPTER),TAG);
if (pAdapter == NULL) {
*Status = NDIS_STATUS_RESOURCES;
break;
}
NdisZeroMemory(pAdapter,sizeof(ADAPTER));

NdisInitializeEvent(&pAdapter->Event);
KeInitializeSpinLock(&pAdapter->SpinLock);

NdisAllocatePacketPoolEx(pStatus,&pAdapter->SendPacketPoolHandle,
MIN_PACKET_POOL_SIZE,
MAX_PACKET_POOL_SIZE - MIN_PACKET_POOL_SIZE,
sizeof(RSVD));
if (*pStatus != NDIS_STATUS_SUCCESS) break;

NdisOpenAdapter(pStatus,&Status,&pAdapter->BindHandle,
&MediumIndex,
MediumArray,
sizeof(MediumArray)/sizeof(NDIS_MEDIUM),
g_ProtocolHandle,
pAdapter,
DeviceName,
0,
NULL);
if (*pStatus == NDIS_STATUS_PENDING)
{
NdisWaitEvent(&pAdapter->Event,0);
*pStatus = pAdapter->Status;
}

if (*pStatus != NDIS_STATUS_SUCCESS) break;
pAdapter->Medium = MediumArray[MediumIndex];

//2004-4-7 g_protocolhandle and g_mpdriverhandle,早就在driverentry初始化完毕了。
NdisIMInitializeDeviceInstanceEx(g_MpDriverHandle,&Param->ParameterData.StringData,pAdapter);


} while(FALSE);
}

upperbinds跟inf文件有关系吗?

[编辑 -  4/7/04 by  dlmufox]
dlmufox
驱动牛犊
驱动牛犊
  • 注册日期2003-10-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-08 15:06
已经搞定了,文档没看仔细,又是微软的技术壁垒,恶心!

In the context of BindAdapterHandler and after opening of the underlying physical adapter succeeds, the Passthru driver queries the reserved keyword "UpperBindings" to get a list of device names for the virtual adapters that this particular binding is to expose.
游客

返回顶部