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

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

?? packet32.c

?? 網卡驅動相關實例 這是和網卡NT KMD驅動程序有關的一些資料和例子。主要是以下三方面內容: 3.1 article 一些有用的文檔 3.2 Canberra 網絡診聽工具Ethern
?? C
?? 第 1 頁 / 共 2 頁
字號:
// packet32.c - PacketInit PacketOpenAdapter PacketCloseAdapter
//              PacketAllocatePacket PacketFreePacket PacketInitPacket
//              PacketSendPacket PacketReceivePacket PacketWaitPacket
//              PacketResetAdapter PacketRequest PacketSetFilter
//              PacketGetAddr StartPacketDriver PacketGetAdapterNames
//              PacketGetName
// 
// Author: Christopher Chlap chrisc@fir.canberra.edu.au 28. November, 1997
//

// #define UNICODE 1

#include <windows.h>
#include <windowsx.h>

#include "packet32.h"

//------------------------------------------------------------------------
//
//  Globals
//
//------------------------------------------------------------------------

TCHAR   szWindowTitle[] = TEXT("PACKET32.DLL");

//------------------------------------------------------------------------
//
//  Prototypes
//
//------------------------------------------------------------------------

#if DBG

#define ODS(_x) OutputDebugString(TEXT(_x))

#else

#define ODS(_x)

#endif

BOOLEAN StartPacketDriver(LPTSTR ServiceName);

//------------------------------------------------------------------------
//
//  PacketInit - Start the Packet Driver
//
//      Args:   DllHandle   - not used
//              Option      - attach or detach
//              Context     - not used
//
//------------------------------------------------------------------------

BOOLEAN PacketInit(
    IN PVOID DllHandle,
    IN ULONG Option,
    IN PCONTEXT Context OPTIONAL)

{
    BOOLEAN     Status;

    ODS("Packet32: DllEntry\n");


    switch (Option) {

        case DLL_PROCESS_ATTACH:

            Status = StartPacketDriver(TEXT("PACKET"));

        case DLL_PROCESS_DETACH:

        default:

            break;
    }
    return Status;
}

//------------------------------------------------------------------------
//
//  PacketOpenAdapter - Open the named adapter
//
//      Args:   AdapterName - the UNICODE registry name of the adapter
//
//   Returns:   pointer to an Adapter or NULL
// 
//------------------------------------------------------------------------

PVOID PacketOpenAdapter(LPTSTR AdapterName)
{
    LPADAPTER  lpAdapter;
    BOOLEAN    Result;

    ODS("Packet32: PacketOpenAdapter\n");

    lpAdapter = (LPADAPTER)GlobalAllocPtr(
                    GMEM_MOVEABLE | GMEM_ZEROINIT,
                    sizeof(ADAPTER));


    if (lpAdapter == NULL) {

        ODS("Packet32: PacketOpenAdapter GlobalAlloc Failed\n");
        return NULL;
    }

    wsprintf(
        lpAdapter->SymbolicLink,
        TEXT("\\\\.\\%s%s"),
        DOSNAMEPREFIX,
        &AdapterName[8]);

    Result = DefineDosDevice(
        DDD_RAW_TARGET_PATH,
        &lpAdapter->SymbolicLink[4],
        AdapterName);

    if (Result) {

        lpAdapter->hFile = CreateFile(lpAdapter->SymbolicLink,
                                GENERIC_WRITE | GENERIC_READ,
                                0,
                                NULL,
                                CREATE_ALWAYS,
                                FILE_FLAG_OVERLAPPED,
                                0);

        if (lpAdapter->hFile != INVALID_HANDLE_VALUE)

            return lpAdapter;
    }

    ODS("Packet32: PacketOpenAdapter Could not open adapter\n");

    GlobalFreePtr(lpAdapter);

    return NULL;

}

//------------------------------------------------------------------------
//
//  PacketCloseAdapter - Close the specified adapter
//
//      Args:   lpAdapter - pointer to an adapter object
//
//   Returns:   
// 
//------------------------------------------------------------------------

VOID PacketCloseAdapter(LPADAPTER lpAdapter)

{
    ODS("Packet32: PacketCloseAdapter\n");

    CloseHandle(lpAdapter->hFile);

    GlobalFreePtr(lpAdapter);

}

//------------------------------------------------------------------------
//
//  PacketAllocatePacket - allocate a Packet for send and receive
//
//      Args:   none
//
//   Returns:   pointer to a Packet or NULL   
// 
//------------------------------------------------------------------------

PVOID PacketAllocatePacket()

{
    LPPACKET    lpPacket;

    lpPacket = (LPPACKET)GlobalAllocPtr(
                             GMEM_MOVEABLE | GMEM_ZEROINIT,
                             sizeof(PACKET));

    if (lpPacket == NULL) {

        ODS("Packet32: PacketAllocateSendPacket: GlobalAlloc Failed\n");
        return NULL;
    }

    lpPacket->OverLapped.hEvent=CreateEvent(NULL, FALSE, FALSE, NULL);

    if (lpPacket->OverLapped.hEvent == NULL) {

        ODS("Packet32: PacketAllocateSendPacket: CreateEvent Failed\n");

        GlobalFreePtr(lpPacket);

        return NULL;
    }
    return lpPacket;
}

//------------------------------------------------------------------------
//
//  PacketFreePacket - release a Packet
//
//      Args:   lpPacket - pointer to a Packet
//
//   Returns:
// 
//------------------------------------------------------------------------

VOID PacketFreePacket(LPPACKET lpPacket)

{
    CloseHandle(lpPacket->OverLapped.hEvent);

    GlobalFreePtr(lpPacket);
}

//------------------------------------------------------------------------
//
//  PacketInitPacket - initialize an allocated Packet
//
//      Args:   lpPacket - pointer to a Packet
//              Buffer   - buffer pointer
//              Length   - length of buffer
//
//   Returns:
// 
//------------------------------------------------------------------------

VOID PacketInitPacket(LPPACKET lpPacket, PVOID Buffer, UINT Length)
{
    lpPacket->Buffer = Buffer;
    lpPacket->Length = Length;
}

//------------------------------------------------------------------------
//
//  PacketSendPacket - send a Packet
//
//      Args:   lpAdapter - pointer to an Adapter
//              lpPacket  - pointer to a Packet
//              Sync      - synchronous or asynchronous I/O
//
//   Returns:   TRUE - synchronous operation completed or
//                     asynchronous operation is pending
// 
//------------------------------------------------------------------------

BOOLEAN PacketSendPacket(LPADAPTER lpAdapter,
                         LPPACKET lpPacket,
                         BOOLEAN Sync)
{
    BOOLEAN Result;

    DWORD   BytesTransfered;

    lpPacket->OverLapped.Offset = 0;
    lpPacket->OverLapped.OffsetHigh = 0;

    if (!ResetEvent(lpPacket->OverLapped.hEvent)) return FALSE;

    Result=WriteFile(lpAdapter->hFile,
                     lpPacket->Buffer,
                     lpPacket->Length,
                     &BytesTransfered,
                     &lpPacket->OverLapped);

    if (Sync) Result = GetOverlappedResult(lpAdapter->hFile,
                                           &lpPacket->OverLapped,
                                           &BytesTransfered,
                                           TRUE);
    else 
    
        Result = TRUE;

    return Result;
}

//------------------------------------------------------------------------
//
//  PacketReceivePacket - receive a Packet
//
//      Args:   lpAdapter   - pointer to an Adapter
//              lpPacket    - pointer to a Packet
//              Sync        - synchronous or asynchronous I/O
//              BytesReveived   - pointer to number of bytes received
//
//   Returns:   TRUE  - synchronous operation completed or
//                      asynchronous operation is pending
// 
//------------------------------------------------------------------------

BOOLEAN PacketReceivePacket(LPADAPTER lpAdapter,
                            LPPACKET  lpPacket,
                            BOOLEAN   Sync,
                            PULONG    BytesReceived)
{
    BOOLEAN Result;

    lpPacket->OverLapped.Offset = 0;
    lpPacket->OverLapped.OffsetHigh = 0;

    if (!ResetEvent(lpPacket->OverLapped.hEvent)) return FALSE;

    Result = ReadFile(lpAdapter->hFile,
                      lpPacket->Buffer,
                      lpPacket->Length,
                      BytesReceived,
                      &lpPacket->OverLapped);

    if (Sync) Result = GetOverlappedResult(lpAdapter->hFile,
                                           &lpPacket->OverLapped,
                                           BytesReceived,
                                           TRUE);
    else 
        
        Result = TRUE;

    return Result;

}

//------------------------------------------------------------------------
//
//  PacketWaitPacket - wait for an asynchronous operation to complete
//
//      Args:   lpAdapter     - pointer to an Adapter object
//              lpPacket      - pointer to a Packet
//              BytesReceived - pointer to a bytes received ULONG

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合分类小说区另类春色亚洲小说欧美| 日韩美女视频一区二区在线观看| 蜜臀va亚洲va欧美va天堂| 亚洲尤物视频在线| 伊人开心综合网| 亚洲精品视频免费看| 亚洲一二三专区| 日本伊人精品一区二区三区观看方式| 日日夜夜一区二区| 蜜乳av一区二区| 国产一区二区三区黄视频 | 欧美日韩一卡二卡| 91福利视频久久久久| 欧美日韩一区三区| 91精品国产手机| 久久亚洲精品国产精品紫薇| 久久麻豆一区二区| 综合色中文字幕| 亚洲一区二区三区小说| 日韩av网站在线观看| 蜜臀av性久久久久av蜜臀妖精| 国内精品国产成人| 大美女一区二区三区| 色欧美日韩亚洲| 日韩午夜在线观看| 中文字幕欧美激情| 午夜视黄欧洲亚洲| 国产麻豆精品久久一二三| www.99精品| 91麻豆精品国产91久久久更新时间 | 国产精品1区二区.| 99国产精品久| 日韩一级片网址| 国产精品久久久久aaaa| 亚洲高清在线精品| 丰满少妇在线播放bd日韩电影| 日本高清无吗v一区| 欧美成人三级在线| 亚洲精品视频观看| 国产在线播精品第三| 在线影视一区二区三区| 日韩免费高清av| 一区二区在线免费| 国产精品一区在线观看你懂的| 欧洲激情一区二区| 国产欧美视频一区二区| 日韩va欧美va亚洲va久久| 99re热视频精品| 久久综合久久鬼色中文字| 亚洲国产一区视频| 成人sese在线| 亚洲精品一区在线观看| 亚洲已满18点击进入久久| 懂色中文一区二区在线播放| 欧美一区日韩一区| 亚洲v中文字幕| av日韩在线网站| 久久亚洲精品国产精品紫薇| 日韩黄色片在线观看| 91国偷自产一区二区三区观看 | 欧美日韩高清不卡| 中文字幕一区在线观看| 国产激情一区二区三区桃花岛亚洲| 欧美麻豆精品久久久久久| 亚洲精品大片www| 99热99精品| 中文字幕在线一区| 成人午夜在线播放| 欧美韩日一区二区三区四区| 国产伦精一区二区三区| 精品福利二区三区| 久久97超碰色| 久久理论电影网| 国产精品伊人色| 日本一区二区电影| 成人久久视频在线观看| 国产精品丝袜在线| www.亚洲在线| 亚洲精品va在线观看| 91黄视频在线| 日韩精彩视频在线观看| 欧美高清精品3d| 蜜臀av一区二区三区| 精品国产人成亚洲区| 国产精品一区二区久久精品爱涩 | 99re这里只有精品视频首页| 中文字幕一区二区三区视频| 91在线国内视频| 亚洲精品国产一区二区精华液| 色综合婷婷久久| 亚洲午夜电影网| 欧美一区二区三区日韩视频| 精品一区二区综合| 国产拍欧美日韩视频二区| 9色porny自拍视频一区二区| 亚洲狼人国产精品| 欧美高清激情brazzers| 国产精品伊人色| 自拍偷拍国产精品| 在线不卡欧美精品一区二区三区| 免费成人在线观看| 中文无字幕一区二区三区 | 韩国视频一区二区| 国产日本欧美一区二区| 色视频成人在线观看免| 丝袜诱惑制服诱惑色一区在线观看 | 2021久久国产精品不只是精品| 国产精品一级在线| 亚洲国产日韩精品| 久久久久久久久久久久久夜| 91丨九色丨国产丨porny| 日韩中文欧美在线| 中文av字幕一区| 制服丝袜在线91| 成人一区二区三区视频在线观看| 亚洲一二三四在线| 欧美激情艳妇裸体舞| 欧美高清视频一二三区| caoporn国产精品| 天堂资源在线中文精品| 中文字幕中文字幕在线一区| 日韩一区二区在线看| 99re这里都是精品| 国产美女视频91| 天堂影院一区二区| 亚洲欧美视频一区| 国产亚洲午夜高清国产拍精品 | 六月丁香婷婷久久| 悠悠色在线精品| 中文字幕在线不卡国产视频| 精品国产乱码久久| 69精品人人人人| 在线视频综合导航| 99久久综合国产精品| 国产久卡久卡久卡久卡视频精品| 日韩综合在线视频| 亚洲一区二区三区四区不卡| 国产精品成人午夜| 国产亚洲美州欧州综合国| 日韩欧美高清dvd碟片| 欧美在线高清视频| 日本道免费精品一区二区三区| 国产成人在线免费观看| 麻豆成人免费电影| 麻豆国产精品官网| 免费高清成人在线| 麻豆精品一二三| 美女视频黄 久久| 日韩av电影天堂| 日韩高清电影一区| 日日骚欧美日韩| 男女视频一区二区| 久久福利资源站| 国产一区二区按摩在线观看| 国产精品资源站在线| 国产自产2019最新不卡| 国产中文字幕精品| 国产河南妇女毛片精品久久久| 国产精品综合视频| 高清视频一区二区| 91丨九色丨蝌蚪丨老版| 91浏览器在线视频| 欧美网站大全在线观看| 欧美人妇做爰xxxⅹ性高电影| 欧美色手机在线观看| 欧美久久一二三四区| 日韩欧美高清一区| 国产精品网站在线观看| 国产精品乱码一区二区三区软件| 自拍偷拍欧美精品| 亚洲午夜电影在线| 激情文学综合网| 99久久精品费精品国产一区二区| 色综合久久综合| 在线不卡免费av| 欧美极品美女视频| 亚洲国产婷婷综合在线精品| 奇米777欧美一区二区| 成人免费视频视频在线观看免费| av成人老司机| 日韩欧美中文字幕精品| 国产女人18毛片水真多成人如厕 | 欧美国产精品劲爆| 亚洲色图丝袜美腿| 蜜桃视频在线观看一区| 国产a级毛片一区| 欧美三区免费完整视频在线观看| 日韩精品中文字幕一区二区三区| 欧美国产日本韩| 日本特黄久久久高潮| 成人av中文字幕| 欧美一级二级三级乱码| 国产精品福利av| 久久成人免费网| 欧美做爰猛烈大尺度电影无法无天| 欧美va日韩va| 亚洲另类色综合网站| 国产福利91精品一区二区三区| 在线视频欧美精品| 国产精品人妖ts系列视频|