亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? mp_req.c

?? Intel EtherExpressTM PRO/100+ Ethernet 網(wǎng)卡在Windows2000/xp下的PCI驅(qū)動(dòng)程序源代碼
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
            NdisDprReleaseSpinLock(&Adapter->Lock);
            if (Status == NDIS_STATUS_SUCCESS)
            {
                Adapter->PacketFilter = PacketFilter;
            }

            break;

        case OID_GEN_CURRENT_LOOKAHEAD:
            //
            // Verify the Length
            //
            if (InformationBufferLength < sizeof(ULONG))
            {
                *BytesNeeded = sizeof(ULONG);
                return(NDIS_STATUS_INVALID_LENGTH);
            }

            NdisMoveMemory(&Adapter->ulLookAhead, InformationBuffer, sizeof(ULONG));
            
            *BytesRead = sizeof(ULONG);
            Status = NDIS_STATUS_SUCCESS;
            break;


        case OID_PNP_SET_POWER:

            DBGPRINT(MP_LOUD, ("SET: Power State change, "PTR_FORMAT"!!!\n", InformationBuffer));

            if (InformationBufferLength != sizeof(NDIS_DEVICE_POWER_STATE ))
            {
                return(NDIS_STATUS_INVALID_LENGTH);
            }

            NewPowerState = *(PNDIS_DEVICE_POWER_STATE UNALIGNED)InformationBuffer;

            //
            // Set the power state - Cannot fail this request
            //
            Status = MPSetPower(Adapter ,NewPowerState );

            if (Status == NDIS_STATUS_PENDING)
            {
                Adapter->bSetPending = TRUE;
                Adapter->SetRequest.Oid = OID_PNP_SET_POWER;
                Adapter->SetRequest.BytesRead = BytesRead;
                break;
            }
            if (Status != NDIS_STATUS_SUCCESS)
            {
                DBGPRINT(MP_ERROR, ("SET Power: Hardware error !!!\n"));
                break;
            }
        
            *BytesRead = sizeof(NDIS_DEVICE_POWER_STATE);
            Status = NDIS_STATUS_SUCCESS; 
            break;

        case OID_PNP_ADD_WAKE_UP_PATTERN:
            //
            // call a function that would program the adapter's wake
            // up pattern, return success
            //
            DBGPRINT(MP_LOUD, ("SET: Add Wake Up Pattern, !!!\n"));

            if (MPIsPoMgmtSupported(Adapter) )
            {
                Status = MPAddWakeUpPattern(Adapter,
                                            InformationBuffer, 
                                            InformationBufferLength, 
                                            BytesRead, 
                                            BytesNeeded); 
            }
            else
            {
                Status = NDIS_STATUS_NOT_SUPPORTED;
            }
            break;

    
        case OID_PNP_REMOVE_WAKE_UP_PATTERN:
            DBGPRINT(MP_LOUD, ("SET: Got a WakeUpPattern REMOVE Call\n"));
            //
            // call a function that would remove the adapter's wake
            // up pattern, return success
            //
            if (MPIsPoMgmtSupported(Adapter) )
            {
                Status = MPRemoveWakeUpPattern(Adapter, 
                                               InformationBuffer, 
                                               InformationBufferLength,
                                               BytesRead,
                                               BytesNeeded);

            }
            else
            {
                Status = NDIS_STATUS_NOT_SUPPORTED;
            }
            break;

        case OID_PNP_ENABLE_WAKE_UP:
            DBGPRINT(MP_LOUD, ("SET: Got a EnableWakeUp Call, "PTR_FORMAT"\n",InformationBuffer));
            //
            // call a function that would enable wake up on the adapter
            // return success
            //
            if (MPIsPoMgmtSupported(Adapter) )
            {
                ULONG       WakeUpEnable;
                NdisMoveMemory(&WakeUpEnable, InformationBuffer,sizeof(ULONG));
                //
                // The WakeUpEable can only be 0, or NDIS_PNP_WAKE_UP_PATTERN_MATCH since the driver only
                // supports wake up pattern match
                //
                if ((WakeUpEnable != 0)
                       && ((WakeUpEnable & NDIS_PNP_WAKE_UP_PATTERN_MATCH) != NDIS_PNP_WAKE_UP_PATTERN_MATCH ))
                {
                    Status = NDIS_STATUS_NOT_SUPPORTED;
                    Adapter->WakeUpEnable = 0;    
                    break;
                }
                //
                // When the driver goes to low power state, it would check WakeUpEnable to decide
                // which wake up methed it should use to wake up the machine. If WakeUpEnable is 0,
                // no wake up method is enabled.
                //
                Adapter->WakeUpEnable = WakeUpEnable;
                
                *BytesRead = sizeof(ULONG);                         
                Status = NDIS_STATUS_SUCCESS; 
            }
            else
            {
                Status = NDIS_STATUS_NOT_SUPPORTED;
            }

            break;

            //
            // this OID is for showing how to work with driver specific (custom)
            // OIDs and the NDIS 5 WMI interface using GUIDs
            //
        case OID_CUSTOM_DRIVER_SET:
            DBGPRINT(MP_INFO, ("OID_CUSTOM_DRIVER_SET got a set\n"));
            if (InformationBufferLength < sizeof(ULONG))
            {
                *BytesNeeded = sizeof(ULONG);
                Status = NDIS_STATUS_INVALID_LENGTH;
                break;
            }
            //
            // The driver need to validate the set data in the buffer
            //
            NdisMoveMemory(&CustomDriverSet, InformationBuffer, sizeof(ULONG));
            if ((CustomDriverSet < CUSTOM_DRIVER_SET_MIN) 
                || (CustomDriverSet > CUSTOM_DRIVER_SET_MAX))
            {
               Status = NDIS_STATUS_INVALID_DATA;
               break;
            }
            *BytesRead = sizeof(ULONG);
            
            Adapter->CustomDriverSet = CustomDriverSet;
            //
            // Validate the content of the data
            //
            // Adapter->CustomDriverSet = (ULONG) *(PULONG)(InformationBuffer);
            break;

#if OFFLOAD     
        
        case OID_TCP_TASK_OFFLOAD:
            //
            // Disable all the existing capabilities whenever task offload is updated
            //
            DisableOffload(Adapter);

            if (InformationBufferLength < sizeof(NDIS_TASK_OFFLOAD_HEADER))
            {   
                return NDIS_STATUS_INVALID_LENGTH;
            }

            *BytesRead = sizeof(NDIS_TASK_OFFLOAD_HEADER);
            //
            // Assume miniport only supports IEEE_802_3_Encapsulation 
            // Check to make sure that TCP/IP passed down the correct encapsulation type
            //
            pNdisTaskOffloadHdr = (PNDIS_TASK_OFFLOAD_HEADER)InformationBuffer;
            if (pNdisTaskOffloadHdr->EncapsulationFormat.Encapsulation != IEEE_802_3_Encapsulation)
            {
                pNdisTaskOffloadHdr->OffsetFirstTask = 0;    
                return NDIS_STATUS_INVALID_DATA;
            }
            //
            // No offload task to be set
            //
            if (pNdisTaskOffloadHdr->OffsetFirstTask == 0)
            {
                DBGPRINT(MP_WARN, ("No offload task is set!!\n"));
                return NDIS_STATUS_SUCCESS;
            }
            //
            // OffsetFirstTask is not valid
            //
            if (pNdisTaskOffloadHdr->OffsetFirstTask < pNdisTaskOffloadHdr->Size)
            {
                pNdisTaskOffloadHdr->OffsetFirstTask = 0;
                return NDIS_STATUS_FAILURE;

            }
            //
            // The length can't hold one task
            // 
            if (InformationBufferLength < 
                    (pNdisTaskOffloadHdr->OffsetFirstTask + sizeof(NDIS_TASK_OFFLOAD))) 
            {
                DBGPRINT(MP_WARN, ("response of task offload does not have sufficient space even for 1 offload task!!\n"));
                Status = NDIS_STATUS_INVALID_LENGTH;
                break;
            }

            //
            // Copy Encapsulation format into adapter, later the miniport may use it
            // to get Encapsulation header size
            //
            NdisMoveMemory(&(Adapter->EncapsulationFormat), 
                            &(pNdisTaskOffloadHdr->EncapsulationFormat),
                            sizeof(NDIS_ENCAPSULATION_FORMAT));
            
            ASSERT(pNdisTaskOffloadHdr->EncapsulationFormat.Flags.FixedHeaderSize == 1);
            
            //
            // Check to make sure we support the task offload requested
            //
            TaskOffload = (NDIS_TASK_OFFLOAD *) 
                          ( (PUCHAR)pNdisTaskOffloadHdr + pNdisTaskOffloadHdr->OffsetFirstTask);

            TmpOffload = TaskOffload;

            //
            // Check the task in the buffer and enable the offload capabilities
            // 
            while (TmpOffload) 
            {
                *BytesRead += FIELD_OFFSET(NDIS_TASK_OFFLOAD, TaskBuffer);
                
                switch (TmpOffload->Task)
                {
                
                case TcpIpChecksumNdisTask:
                    //
                    // Invalid information buffer length
                    // 
                    if (InformationBufferLength < *BytesRead + sizeof(NDIS_TASK_TCP_IP_CHECKSUM))
                    {
                        *BytesNeeded = *BytesRead + sizeof(NDIS_TASK_TCP_IP_CHECKSUM);
                        return NDIS_STATUS_INVALID_LENGTH;
                    }
                    //
                    //Check version 
                    //
                    for (i = 0; i < OffloadTasksCount; i++) 
                    {
                        if (OffloadTasks[i].Task == TmpOffload->Task &&
                            OffloadTasks[i].Version == TmpOffload->Version )
                        {
                            break;
                        }
                    }
                    // 
                    // Version is mismatched
                    // 
                    if (i == OffloadTasksCount) 
                    {
                         return NDIS_STATUS_NOT_SUPPORTED;
                    }
                        
                    //
                    // This miniport support TCP/IP checksum offload only with sending TCP
                    // and IP checksum with TCP/IP options. 
                    // check if the fields in NDIS_TASK_TCP_IP_CHECKSUM is set correctly
                    //
                    Adapter->NicTaskOffload.ChecksumOffload = 1;
                    
                    pTcpIpChecksumTask = (PNDIS_TASK_TCP_IP_CHECKSUM) TmpOffload->TaskBuffer;

                    if (pTcpIpChecksumTask->V4Transmit.TcpChecksum) 
                    {   
                        //
                        // If miniport doesn't support sending TCP checksum, we can't enable
                        // this capability
                        // 
                        if (TcpIpChecksumTask.V4Transmit.TcpChecksum == 0 )
                        {
                            return NDIS_STATUS_NOT_SUPPORTED;
                        }
                        
                        DBGPRINT (MP_WARN, ("Set Sending TCP offloading.\n"));    
                        //
                        // Enable sending TCP checksum
                        //
                        Adapter->NicChecksumOffload.DoXmitTcpChecksum = 1;
                    }

                    //
                    // left for recieve and other IP and UDP checksum offload
                    //
                    if (pTcpIpChecksumTask->V4Transmit.IpChecksum) 
                    {
                        //
                        // If the miniport doesn't support sending IP checksum, we can't enable
                        // this capabilities
                        // 
                        if (TcpIpChecksumTask.V4Transmit.IpChecksum == 0)
                        {
                            return NDIS_STATUS_NOT_SUPPORTED;
                        }
                        
                        DBGPRINT (MP_WARN, ("Set Sending IP offloading.\n"));    
                        //
                        // Enable sending IP checksum
                        //
                        Adapter->NicChecksumOffload.DoXmitIpChecksum = 1;
                    }
                    if (pTcpIpChecksumTask->V4Receive.TcpChecksum)
                    {
                        //
                        // If the miniport doesn't support receiving TCP checksum, we can't
                        // enable this capability
                        // 
                        if (TcpIpChecksumTask.V4Receive.TcpChecksum == 0)
                        {
                            return NDIS_STATUS_NOT_SUPPORTED;
                        }
                        DBGPRINT (MP_WARN, ("Set recieve TCP offloading.\n"));    
                        //
                        // Enable recieving TCP checksum
                        //
                        Adapter->NicChecksumOffload.DoRcvTcpChecksum = 1;
                    }
                    if (pTcpIpChecksumTask->V4Receive.IpChecksum)
                    {
                        //
                        // If the miniport doesn't support receiving IP checksum, we can't
                        // enable this capability
                        //
                        if (TcpIpChecksumTask.V4Receive.IpChecksum == 0)
                        {
                            return NDIS_STATUS_NOT_SUPPORTED;
                        }
                        DBGPRINT (MP_WARN, ("Set Recieve IP offloading.\n"));    
                        //
                        // Enable recieving IP checksum
                        //
                        Adapter->NicChecksumOffload.DoRcvIpChecksum = 1;
                    }

                    if (pTcpIpChecksumTask->V4Transmit.UdpChecksum) 
                    {
                        //
                        // If the miniport doesn't support sending UDP checksum, we can't
                        // enable this capability
                        // 
                        if (TcpIpChecksumTask.V4Transmit.UdpChecksum == 0)
                        {
                            return NDIS_STATUS_NOT_SUPPORTED;
                        }
                        
                        DBGPRINT (MP_WARN, ("Set Sending UDP offloading.\n"));    
                        //
                        // Enable sending UDP checksum
                        //
                        Adapter->NicChecksumOffload.DoXmitUdpChecksum = 1;
                    }
                    if (pTcpIpChecksumTask->V4Receive.UdpChecksum)
                    {
                        //
                        // IF the miniport doesn't support receiving UDP checksum, we can't
                        // enable thi

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人美女视频在线观看18| 欧美最猛性xxxxx直播| 日韩免费高清视频| 免费国产亚洲视频| 久久综合网色—综合色88| 国产成人午夜片在线观看高清观看| 国产欧美日产一区| 91网址在线看| 免费在线欧美视频| 日本欧美一区二区在线观看| 国产午夜精品一区二区| 欧美亚洲日本一区| 国产不卡视频一区二区三区| 亚洲成av人综合在线观看| 日韩美女视频一区二区在线观看| 欧美一区二区三区电影| 99久久精品国产精品久久| 午夜亚洲国产au精品一区二区| 国产精品免费aⅴ片在线观看| 欧美日韩mp4| 成人av高清在线| 激情久久五月天| 亚洲综合区在线| 久久精品免费在线观看| 国产欧美一区二区三区网站| 国产精品久久久久国产精品日日| 久久色.com| 日本一区二区三区dvd视频在线| 国产精品高清亚洲| 夜夜嗨av一区二区三区网页| 国产日韩欧美麻豆| 中文字幕一区二区视频| 久久麻豆一区二区| 日韩欧美成人一区二区| 久久久精品tv| 自拍av一区二区三区| 国产精品久久久久久久午夜片| 亚洲精品视频在线| 亚洲视频免费观看| 亚洲不卡av一区二区三区| 久久精品国内一区二区三区| 亚洲国产成人av好男人在线观看| 综合久久给合久久狠狠狠97色| 亚洲成人777| 国产在线播放一区二区三区| 另类欧美日韩国产在线| 成人午夜电影久久影院| 欧美日韩国产高清一区二区三区| 2020国产成人综合网| 亚洲精品欧美二区三区中文字幕| 午夜亚洲福利老司机| 国产成人亚洲综合色影视 | 一本大道久久a久久综合婷婷| 久久精品国产在热久久| 北条麻妃国产九九精品视频| 成人精品视频.| 91精品国产综合久久久久| 欧美色综合天天久久综合精品| 欧美v亚洲v综合ⅴ国产v| 国内精品国产成人| 欧美日韩一二三| 欧美日韩免费视频| 欧美国产精品一区二区三区| 国产亚洲一区二区三区在线观看| 亚洲综合免费观看高清完整版 | 欧美日韩在线精品一区二区三区激情| 精品国产第一区二区三区观看体验| 日韩精品一区二区三区视频| 亚洲欧美一区二区三区国产精品| 亚洲免费在线观看视频| 国产一区在线不卡| 91精品国产乱码| 亚洲精品你懂的| 成人午夜免费电影| 欧美v亚洲v综合ⅴ国产v| 亚洲资源在线观看| 9色porny自拍视频一区二区| 久久亚洲二区三区| 日韩成人一级片| 欧美午夜精品电影| 亚洲欧美另类图片小说| 国产成人免费视频网站| 91精品国产麻豆| 亚洲一级二级在线| 色综合天天性综合| 91视频观看视频| 国产色婷婷亚洲99精品小说| 蓝色福利精品导航| 91精品在线一区二区| 亚洲一二三级电影| 91欧美激情一区二区三区成人| 国产亚洲欧美日韩俺去了| 男人的天堂久久精品| 91精选在线观看| 午夜精品福利一区二区三区av| 色网站国产精品| 亚洲人成亚洲人成在线观看图片| 床上的激情91.| 国产欧美精品一区二区色综合| 国产精品一区二区在线播放| 欧美亚洲综合在线| 一级特黄大欧美久久久| 91亚洲精品久久久蜜桃网站| 国产精品不卡一区| 成人av网站在线观看| 欧美国产精品久久| 懂色一区二区三区免费观看| 国产欧美一区二区精品忘忧草| 国产在线不卡一区| 欧美高清在线一区| 成人va在线观看| 亚洲欧美偷拍另类a∨色屁股| 99久久夜色精品国产网站| 亚洲免费三区一区二区| 色婷婷激情久久| 亚洲高清视频中文字幕| 4hu四虎永久在线影院成人| 美日韩一区二区三区| 一本一本久久a久久精品综合麻豆| 中文字幕一区二区三区四区不卡 | 一本大道av伊人久久综合| 亚洲欧美欧美一区二区三区| 欧美性视频一区二区三区| 国产精品一区二区久久不卡| 国产欧美一区二区在线| 91亚洲精品久久久蜜桃| 亚洲高清视频中文字幕| 精品欧美一区二区久久| 丰满亚洲少妇av| 亚洲精品老司机| 欧美精品丝袜中出| 亚洲理论在线观看| 欧美日韩中文字幕精品| 久久国产精品99精品国产| 国产日产欧美一区二区视频| 91在线视频观看| 婷婷成人综合网| 久久久久久久av麻豆果冻| www.亚洲在线| 天天影视涩香欲综合网| 精品精品欲导航| 成a人片国产精品| 亚洲一区二区三区不卡国产欧美 | 亚洲欧美在线视频观看| 欧美日韩综合在线免费观看| 久久精品免费看| 国产精品国产三级国产aⅴ原创| 欧美三级资源在线| 国产另类ts人妖一区二区| 亚洲自拍偷拍图区| 精品久久久久久亚洲综合网| 色综合久久综合网97色综合 | 99久久精品免费看国产| 日韩专区欧美专区| 69av一区二区三区| 国产成人免费视频| 视频一区国产视频| 国产精品蜜臀av| 欧美精品日韩精品| 粉嫩久久99精品久久久久久夜 | 色999日韩国产欧美一区二区| 亚洲手机成人高清视频| 日韩女优毛片在线| 91免费国产视频网站| 日韩av网站免费在线| 亚洲欧美在线视频观看| 精品区一区二区| 欧美日韩三级在线| 99久久婷婷国产| 免费成人av在线| 亚洲国产日韩一区二区| 久久亚洲精品国产精品紫薇| 欧美老人xxxx18| 91麻豆.com| 国产精品一二三区| 蜜臀av一区二区| 亚洲网友自拍偷拍| 国产精品夫妻自拍| 久久亚洲精品小早川怜子| 717成人午夜免费福利电影| 91丨九色porny丨蝌蚪| 国产精品中文字幕一区二区三区| 日本美女视频一区二区| 中文av一区二区| 精品国产乱码久久久久久影片| 精品视频1区2区| 在线视频你懂得一区| 97久久精品人人爽人人爽蜜臀| 国产一区二区三区在线观看免费视频 | 成人深夜福利app| 激情国产一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲一区二区美女| 亚洲欧美另类小说视频| 一区在线中文字幕| 国产日产亚洲精品系列| 久久香蕉国产线看观看99| 精品国产sm最大网站免费看| 7777精品伊人久久久大香线蕉最新版| 欧美无砖专区一中文字|