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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cipdrvr.c

?? DKW Heavy Industries VPN network driver
?? C
?? 第 1 頁 / 共 4 頁
字號:
            break;           }        //-----------------------------------------------------------        //   User mode thread has called open() on the tap device        //-----------------------------------------------------------        case IRP_MJ_CREATE:           {            if (l_Adapter->m_TapIsRunning)               {                DbgPrint ("[%s] [CIPE] release [%d.%d] open request\n", l_Adapter->m_Name, CIPE_DRIVER_MAJOR_VERSION, CIPE_DRIVER_MINOR_VERSION);                ++l_Adapter->m_TapOpens;               }            else               {                DbgPrint ("[%s] TAP is presently unavailable\n", l_Adapter->m_Name);                p_IRP->IoStatus.Status = l_Status = STATUS_UNSUCCESSFUL;                p_IRP->IoStatus.Information = 0;               }            IoCompleteRequest (p_IRP, IO_NO_INCREMENT);            break;           }        //-----------------------------------------------------------        //        User mode thread close() on the tap device        //-----------------------------------------------------------        case IRP_MJ_CLOSE:           {            DbgPrint ("[%s] [CIPE] release [%d.%d] close request\n", l_Adapter->m_Name, CIPE_DRIVER_MAJOR_VERSION, CIPE_DRIVER_MINOR_VERSION);            while (QueueCount (&l_Extension->m_PacketQueue)) QueuePop (&l_Extension->m_PacketQueue); // Exhaust packet queue            // If we were going to CancelIrp() all the IRPs in queue, we would do it here :-)            if (l_Adapter->m_TapOpens) --l_Adapter->m_TapOpens;            IoCompleteRequest (p_IRP, IO_NO_INCREMENT);             break;           }        //-----------------------------------------------------------        // Something screwed up if it gets here ! It won't die, though        //-----------------------------------------------------------        default:           {            IoCompleteRequest (p_IRP, IO_NO_INCREMENT);             break;           }       }     return l_Status;   }//===========================================================================================//                               IRP Management Routines//===========================================================================================NTSTATUS CompleteIRP (IN PIRP p_IRP, IN CipeTapExtensionPointer p_Extension)   {    NTSTATUS l_Status = STATUS_UNSUCCESSFUL;    CipePacketPointer l_PacketBuffer;    if ((l_PacketBuffer = QueuePeek (&p_Extension->m_PacketQueue)) == 0) // The topmost packet buffer is invalid !       {        QueuePop (&p_Extension->m_PacketQueue);       }    else if (p_IRP)       {        IoSetCancelRoutine (p_IRP, NULL); // Disable cancel routine        if (p_IRP->IoStatus.Information < l_PacketBuffer->m_Size)           {            p_IRP->IoStatus.Information = 0; // l_PacketBuffer->m_Size;            p_IRP->IoStatus.Status = STATUS_BUFFER_OVERFLOW;           }        else           {            p_IRP->IoStatus.Information = l_PacketBuffer->m_Size;            p_IRP->IoStatus.Status = l_Status = STATUS_SUCCESS;            QueuePop (&p_Extension->m_PacketQueue);            __try               {                NdisMoveMemory (p_IRP->AssociatedIrp.SystemBuffer, l_PacketBuffer->m_Data, l_PacketBuffer->m_Size);               }            __except (EXCEPTION_EXECUTE_HANDLER)               {                p_IRP->IoStatus.Status = STATUS_UNSUCCESSFUL;                p_IRP->IoStatus.Information = 0;               }            __try               {                NdisFreeMemory (l_PacketBuffer, sizeof (CipePacket) + l_PacketBuffer->m_Size, 0);               }            __except (EXCEPTION_EXECUTE_HANDLER)               {               }           }        IoCompleteRequest (p_IRP, IO_NO_INCREMENT);       }    return l_Status;   }VOID CancelIRP (IN PDEVICE_OBJECT p_DeviceObject, IN PIRP p_IRP)   {    CipeTapExtensionPointer l_Extension = (CipeTapExtensionPointer) p_DeviceObject->DeviceExtension;    if (p_IRP) if (QueueExtract (&l_Extension->m_IrpQueue, p_IRP) == p_IRP)       {        IoSetCancelRoutine (p_IRP, NULL);         IoReleaseCancelSpinLock (p_IRP->CancelIrql);         p_IRP->IoStatus.Status = STATUS_CANCELLED;        p_IRP->IoStatus.Information = 0;        IoCompleteRequest (p_IRP, IO_NO_INCREMENT);       }   }//===========================================================================================//                             Dispatch Table Managemement//===========================================================================================VOID HookDispatchFunctions()   {    unsigned long l_Index;    //==============================================================    // Save original NDIS dispatch functions and override with ours    //==============================================================    if (! g_DispatchFunctionsHooked) for (l_Index = 0, g_DispatchFunctionsHooked = 1; l_Index <= IRP_MJ_MAXIMUM_FUNCTION; ++l_Index)       {        g_DispatchHook [l_Index] = g_CipeDriverObject->MajorFunction [l_Index];        g_CipeDriverObject->MajorFunction [l_Index] = CipeTapDeviceHook;       }   }//===========================================================================================//                         Linked List Management Routines//===========================================================================================LROOT ListAlloc (ULONG p_Limit)   {    return ListActivate ((LROOT) MemAlloc (sizeof (struct LROOTSTRUCT)), p_Limit);   }VOID ListFree (LROOT p_Root)   {    if (p_Root)       {        ListDeactivate (p_Root);        MemFree ((PVOID) p_Root, sizeof (struct LROOTSTRUCT));       }   }LROOT ListActivate (LROOT p_Root, ULONG p_Limit)   {    if (p_Root)       {        p_Root->m_First = p_Root->m_Last = 0;        p_Root->m_Limit = p_Limit;        p_Root->m_Count = 0;       }    return p_Root;   }VOID ListDeactivate (LROOT p_Root)   {    if (p_Root) while (p_Root->m_Count) ListRemove (p_Root, LMODE_QUEUE);   }LITEM ListAdd (LROOT p_Root, LITEM p_Payload)   {    LITEM l_Return = 0;    LNODE l_Node;    if (p_Root)       {        if (p_Root->m_Count >= p_Root->m_Limit && p_Root->m_Limit)           ;        else if ((l_Node = (LNODE) MemAlloc (sizeof (struct LNODESTRUCT))) == 0)           ;        else if (p_Root->m_First)           {            (l_Node->m_Previous = p_Root->m_Last)->m_Next = l_Node;            l_Return = l_Node->m_Payload = p_Payload;            p_Root->m_Last = l_Node;            ++p_Root->m_Count;           }        else           {            l_Return = l_Node->m_Payload = p_Payload;            p_Root->m_First = p_Root->m_Last = l_Node;            l_Node->m_Next = l_Node->m_Previous = 0;            p_Root->m_Count = 1;           }       }    return l_Return;   }LITEM ListRemove (LROOT p_Root, LMODE p_Mode)   {    LITEM l_Return = 0;    LNODE l_Node;    if (p_Root)       {        if (p_Root->m_Count == 0)           ;        else if ((l_Node = (p_Mode == LMODE_QUEUE ? p_Root->m_First : p_Root->m_Last)) == 0)           p_Root->m_Count = 0;        else           {            if (l_Node->m_Next && p_Mode == LMODE_QUEUE)               (p_Root->m_First = l_Node->m_Next)->m_Previous = 0;            else if (l_Node->m_Previous && p_Mode == LMODE_STACK)               (p_Root->m_Last = l_Node->m_Previous)->m_Next = 0;            else               p_Root->m_First = p_Root->m_Last = 0;            l_Return = l_Node->m_Payload;            MemFree ((PVOID) l_Node, sizeof (struct LNODESTRUCT)); // DEBUG DEBUG DEBUG            --p_Root->m_Count;           }       }    return l_Return;   }LITEM ListExtract (LROOT p_Root, LITEM p_Payload)   {    LITEM l_Return = 0;    LNODE l_Node = 0;    if (p_Root)       {        if (p_Root->m_Count)           {            for (l_Node = p_Root->m_First; l_Node && l_Node->m_Payload != p_Payload; l_Node = l_Node->m_Next);           }        if (l_Node)           {            if (l_Node->m_Previous) l_Node->m_Previous->m_Next = l_Node->m_Next;            if (l_Node->m_Next) l_Node->m_Next->m_Previous = l_Node->m_Previous;            if (p_Root->m_Last == l_Node) p_Root->m_Last = l_Node->m_Previous;            if (p_Root->m_First == l_Node) p_Root->m_First = l_Node->m_Next;            l_Return = l_Node->m_Payload;            MemFree ((PVOID) l_Node, sizeof (struct LNODESTRUCT));            --p_Root->m_Count;           }       }    return l_Return;   }LITEM ListPeek (LROOT p_Root, LMODE p_Mode)   {    LITEM l_Return = 0;    if (p_Root)       {        if (p_Root->m_Count == 0)           ;        else if (p_Root->m_First && p_Mode == LMODE_QUEUE)           l_Return = p_Root->m_First->m_Payload;        else if (p_Root->m_Last && p_Mode == LMODE_STACK)           l_Return = p_Root->m_Last->m_Payload;        else           l_Return = (LITEM) (p_Root->m_Count = 0);       }    return l_Return;   }ULONG ListCount (LROOT p_Root)   {    return (p_Root ? p_Root->m_Count : 0);   }//===========================================================================================//                               Memory Management//===========================================================================================PVOID MemAlloc (ULONG p_Size)   {    PVOID l_Return = 0;    if (p_Size)       {        __try           {            static NDIS_PHYSICAL_ADDRESS l_HighestAcceptableMax = NDIS_PHYSICAL_ADDRESS_CONST (-1,-1);            NdisAllocateMemory (&l_Return, p_Size, 0, l_HighestAcceptableMax);            NdisZeroMemory (l_Return, p_Size);           }        __except (EXCEPTION_EXECUTE_HANDLER)           {            l_Return = 0;           }       }    return l_Return;   }VOID MemFree (PVOID p_Addr, ULONG p_Size)   {    if (p_Addr && p_Size)       {        __try           {            NdisFreeMemory (p_Addr, p_Size, 0);           }        __except (EXCEPTION_EXECUTE_HANDLER)           {           }       }   }//===========================================================================================//                                    End of Source//===========================================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区四区在线视频| 亚洲成人激情自拍| 欧美精品日韩综合在线| 国产视频一区不卡| 国产精品情趣视频| 一区精品在线播放| 亚洲欧美在线视频| 国产一区二区三区在线观看免费视频| 91在线观看一区二区| av一区二区三区在线| 精品久久久久久久久久久院品网 | 日韩欧美国产综合| 一区二区三区久久| 91美女在线视频| 国产精品无遮挡| 国产一区91精品张津瑜| 国产jizzjizz一区二区| 日韩女优av电影| 日韩av午夜在线观看| 欧美日韩一级二级| 亚洲一区二区偷拍精品| 色噜噜狠狠成人中文综合| 欧美日韩国产精品自在自线| 在线播放视频一区| 久久久久久久免费视频了| 国产欧美中文在线| 亚洲激情自拍视频| 色噜噜久久综合| 最新国产精品久久精品| 99视频精品免费视频| 欧美男女性生活在线直播观看| 欧美一区中文字幕| 日韩一区欧美二区| 成人激情小说乱人伦| 欧美影视一区在线| 久久蜜桃av一区二区天堂| 久久99久久精品| 久久午夜国产精品| 丁香五精品蜜臀久久久久99网站| 日本韩国视频一区二区| 亚洲亚洲精品在线观看| 欧美色视频一区| 日韩和欧美一区二区| 日韩视频在线你懂得| 国产在线视视频有精品| 国产欧美一区二区在线| 日日夜夜免费精品| 欧美xxxxx牲另类人与| 国产在线播精品第三| 久久精品在这里| 日韩av一二三| 国产亚洲污的网站| 色综合天天综合色综合av| 久久人人97超碰com| 成人三级伦理片| 亚洲综合久久久| 欧美电影免费观看高清完整版| 狠狠色狠狠色综合日日91app| 欧美亚州韩日在线看免费版国语版| 天天色综合天天| 久久久精品黄色| 欧美午夜不卡视频| 亚洲男人电影天堂| 丰满亚洲少妇av| 久久久www免费人成精品| 午夜精品久久久久久久久| 精品国产伦一区二区三区观看方式| 亚洲成人av一区二区三区| 日韩精品一区二区三区四区视频| www.久久久久久久久| 久久久精品一品道一区| 欧美亚洲愉拍一区二区| 国产成人在线看| 亚洲大片免费看| 国产精品少妇自拍| 播五月开心婷婷综合| 午夜精品福利一区二区三区av | 午夜影视日本亚洲欧洲精品| 99久久伊人久久99| 日韩av一区二区在线影视| 欧美挠脚心视频网站| 99麻豆久久久国产精品免费优播| 国产午夜亚洲精品午夜鲁丝片| 国内国产精品久久| 亚洲国产精品久久久久婷婷884| 色综合色综合色综合色综合色综合| 美女一区二区在线观看| 亚洲中国最大av网站| 欧美日韩国产三级| 99久精品国产| 亚洲午夜羞羞片| 亚洲欧美一区二区视频| 中文字幕国产一区二区| 精品国产sm最大网站免费看| 欧美日韩精品久久久| 日本二三区不卡| 99这里都是精品| 亚洲一区二区三区免费视频| 国产精品无圣光一区二区| 91看片淫黄大片一级在线观看| 激情久久久久久久久久久久久久久久| 午夜精品福利久久久| 亚洲一区二区三区自拍| 亚洲精品日韩专区silk| 7799精品视频| 国产剧情一区在线| 久久99精品久久只有精品| 亚洲成av人片在线观看无码| 亚洲一区二区三区四区的| 欧美电视剧在线看免费| 不卡在线视频中文字幕| 亚洲一区二区三区精品在线| 亚洲日韩欧美一区二区在线| 国产精品美女久久久久久2018| 色综合天天视频在线观看| 天堂一区二区在线| 青草av.久久免费一区| 美女在线一区二区| 亚洲天堂精品在线观看| 最新久久zyz资源站| 精品少妇一区二区三区在线播放 | 亚洲在线视频网站| 欧美大片国产精品| 99精品热视频| 麻豆91免费看| 亚洲激情自拍偷拍| 精品国产一区二区三区久久久蜜月| 91精品国产乱| 精品国产一区二区三区久久久蜜月 | 91精品国产色综合久久ai换脸| 国产91在线看| 色综合久久综合| 欧美日韩国产一级| 精品福利视频一区二区三区| 欧美午夜精品理论片a级按摩| 欧美日韩一区小说| 日韩精品中午字幕| 国产蜜臀av在线一区二区三区| 亚洲视频一二区| 久久精品欧美一区二区三区不卡| 国产精品美女视频| 久久蜜桃av一区精品变态类天堂| 欧美日韩久久久| 久久久久国产成人精品亚洲午夜| 中文字幕在线一区免费| 一区二区成人在线视频| 另类综合日韩欧美亚洲| 成人动漫视频在线| 欧美精品一级二级三级| 日本一区二区三区四区| 亚洲一区在线看| 国产福利91精品| 欧美二区乱c少妇| 在线观看国产一区二区| 972aa.com艺术欧美| 日韩一级免费观看| 亚洲私人影院在线观看| 国产精品高潮呻吟| 蜜臀91精品一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 成人少妇影院yyyy| 日韩欧美国产电影| 亚洲精品视频免费看| 亚洲欧洲制服丝袜| 激情综合色综合久久综合| 欧美在线一二三| 欧美日韩亚洲不卡| 欧美做爰猛烈大尺度电影无法无天| 久久综合一区二区| 亚洲18色成人| 91在线免费看| 国产欧美日韩中文久久| 久久成人麻豆午夜电影| 欧美日韩aaaaaa| 一区二区三区在线观看视频| 成人a级免费电影| 91免费观看国产| 欧美日韩中字一区| 中文字幕色av一区二区三区| 国模娜娜一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 亚洲麻豆国产自偷在线| 成人午夜视频在线观看| 一本高清dvd不卡在线观看| 久久精品亚洲精品国产欧美kt∨| 日韩国产欧美视频| 国产精品自拍一区| 99国产精品久久| 欧美性猛片aaaaaaa做受| 亚洲女与黑人做爰| 日本美女视频一区二区| 国产精品一区二区久久不卡 | 欧美成人国产一区二区| 午夜精品久久一牛影视| 欧美三级视频在线播放| 日韩你懂的电影在线观看| 日本少妇一区二区| 日韩欧美高清一区| 久久99热狠狠色一区二区| aaa欧美日韩|