深度剖析WinPcap之(八)——打开与关..
时间:2010-09-05 来源:runhook
1.6.3.1 NPF_OpenAdapterComplete函数
该函数结束一个适配器的打开,是NDIS函数NdisOpenAdapter所关联的回调函数。当NIC驱动程序完成一个打开操作(在NPF_Open中调用NdisOpenAdapter启动打开操作)后被NDIS调用。函数原型如下:
VOID
NPF_OpenAdapterComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS Status,
IN NDIS_STATUS OpenErrorStatus
);
参数ProtocolBindingContext为函数的上下文,包含一个指向与当前实例关联的OPEN_INSTANCE结构体指针。参数Status为NDIS执行打开操作的状态。参数OpenErrorStatus没有被NPF使用。
函数的主要代码如下:
VOID NPF_OpenAdapterComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS Status,
IN NDIS_STATUS OpenErrorStatus)
{
POPEN_INSTANCE Open;
PLIST_ENTRY RequestListEntry;
PINTERNAL_REQUEST MaxSizeReq;
NDIS_STATUS ReqStatus;
/*获得Open实例*/
Open = (POPEN_INSTANCE)ProtocolBindingContext;
ASSERT(Open != NULL);
if (Status != NDIS_STATUS_SUCCESS)
{
//打开操作没有正确完成,我们把一个NDIS_STATUS装换为NTSTATU。
Open->OpenCloseStatus = Status;