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

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

?? tdiclient.h

?? This zip file contain tow TDI client samples.
?? H
?? 第 1 頁 / 共 2 頁
字號:
//**************************************************************************************************//
//*                                                                                                *//
//* Copyright (C) 2003, James Antognini, antognini@mindspring.com.                                 *//
//*                                                                                                *//
//**************************************************************************************************//

#define JADrvNm          "TDIClient"
#define JADrvNmW        L"TDIClient"
 
#define wcharTcpDevName L"\\Device\\Tcp" 
#define wcharUdpDevName L"\\Device\\Udp" 
 
#define arraysize(p) (sizeof(p)/sizeof((p)[0]))
 
#define TDIClnDNSPort   53
 
#ifdef JADriverKernelMode
  
#define DrvTestWait(prefix)                           /* Wait for signalling, after saying where event is located. */ \
                                                      /* Parameter prefix may be "" but otherwise prefixes message.*/ \
          {                                                                                                           \
           KEVENT tmpEvent;                                                                                           \
           KeInitializeEvent(&tmpEvent, NotificationEvent, FALSE);                                                    \
           DbgPrint((prefix "Event at 0x%08X, and waiting ...\n",&tmpEvent));                                         \
           KeWaitForSingleObject(&tmpEvent, Executive, KernelMode, FALSE, 0);                                         \
          }
  
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
 
#if DBG
#define DbgPrint(arg) DbgPrint arg
#else
#define DbgPrint(arg)
#endif

//***************************************************************************//
//                                                                           //
// Types, definitions, etc.                                                  //
//                                                                           //
//***************************************************************************//

typedef struct _TDIClnReqElem                         // TDI request element.
  {
   KEVENT                RecvEvent;                   // Event associated with Receive request.
   PCHAR                 pBuffer;                     // Addr of buffer for request.
   ULONG                 ulBuffer;                    // Size of buffer.
   ULONG                 ulBytesReceived;             // Number of bytes received, set by TDIClnEventReceive() or TDIClnIoCompRtnRecv().
   IO_STATUS_BLOCK       ReqIoStatus;                 // I/O status block.
  }
   TDIClnReqElem, * pTDIClnReqElem;
                                                      
// Next fixes a problem (C2501) in the _TDIClnConn typdef struct.

typedef struct _TDI_CONNECTION_INFORMATION * PTDI_CONNECTION_INFORMATION;

typedef struct _TDIClientExtension * pTDIClientExtension;

typedef struct _TDIClnConn
  {                                                   // Connection structure.
   pTDIClientExtension   pDevExt;                     // Pointer to device extension of TDI client.
   HANDLE                hConn;                       // Handle to connection endpoint.
   PFILE_OBJECT          pConnFileObj;                // Address of file object for connection endpoint.
   PTDI_CONNECTION_INFORMATION                        // Not used.
                         pServerConnInfo;
   PTDI_CONNECTION_INFORMATION                        // Client connection information
                         pClientConnInfo;
   pTDIClnReqElem        pReqElemsArr;                // Pointer to array of request elements.
   KEVENT                AccEvent;
   KEVENT                DiscEvent;
   LONG                  IdxReqElemAvail;             // Index of first available request element.
   BOOLEAN               bConnd;
  }
   TDIClnConn, * pTDIClnConn;

typedef struct _ConnParms
  {
   pTDIClientExtension   pDevExt;
   PTDI_CONNECTION_INFORMATION
                         pServerConnInfo;
   PTDI_CONNECTION_INFORMATION
                         pClientConnInfo;
  }
   ConnParms, * pConnParms;

typedef struct _TDIClientExtension                    // Device extension of TDI client.
  {
   UNICODE_STRING        JAUniSymLinkName;
   UNICODE_STRING        JAUniDeviceName;
   UNICODE_STRING        JARegPath;
   ANSI_STRING           JADriverName;
   PIRP                  pIrpAccept;
   HANDLE                hAddr;
   PDEVICE_OBJECT        pTcpDevObj;
   PDEVICE_OBJECT        pUdpDevObj;
   PFILE_OBJECT          pAddrFileObj;
   PCHAR                 pBufferBase;
   pTDIClnReqElem        pReqElemsArr;
   pTDIClnConn           pTDIClnConnArr;
   ULONG                 DNSIPAddr[4];
  }
   TDIClientExtension, * pTDIClientExtension;

//***************************************************************************//
//                                                                           //
// Routine prototypes.                                                       //
//                                                                           //
//***************************************************************************//

typedef struct _TDIClientExtension * pTDIClientExtension;

typedef struct _TDIClientTestStr * pTDIClientTestStr;

NTSTATUS
TDIClientDispatchAny(IN PDEVICE_OBJECT, IN PIRP);

NTSTATUS
TDIClientMain(IN pTDIClientExtension, IN pTDIClientTestStr);

VOID
TDIClientUnload(IN PDRIVER_OBJECT);

ULONG
GetInetAddr(IN LPWSTR, OUT LPWSTR *); 

NTSTATUS
TDIClnOpenTransAddr(PWSTR, PHANDLE, PFILE_OBJECT *, USHORT);

NTSTATUS
TDIClnOpenConnEndPt(pTDIClnConn, pTDIClientExtension);

NTSTATUS
TDIClnSetEventHandler(PFILE_OBJECT, PDEVICE_OBJECT, LONG, PVOID, PVOID);

NTSTATUS
TDIClnAssocAddr(PFILE_OBJECT, PDEVICE_OBJECT, HANDLE);

NTSTATUS                              
TDIClnDisassocAddr(PFILE_OBJECT, PDEVICE_OBJECT);

NTSTATUS
TDIClnConnect(PFILE_OBJECT, PDEVICE_OBJECT, ULONG, USHORT);

NTSTATUS
TDIClnSend(PFILE_OBJECT, PDEVICE_OBJECT, PVOID, ULONG);

NTSTATUS
TDIClnRecv(PFILE_OBJECT, PDEVICE_OBJECT, PVOID, ULONG, PIO_STATUS_BLOCK, PVOID);

NTSTATUS                                     
TDIClnSendDGram(PFILE_OBJECT, PDEVICE_OBJECT, PTDI_CONNECTION_INFORMATION, PVOID, ULONG);                            
                   
NTSTATUS                                     
TDIClnRecvDGram(PFILE_OBJECT, PDEVICE_OBJECT, PTDI_CONNECTION_INFORMATION, PVOID, ULONG, PIO_STATUS_BLOCK);                           
                   
NTSTATUS
TDIClnDisconnect(PFILE_OBJECT, PDEVICE_OBJECT);

// Next fixes a problem (C2501) in the TDIClnEventDisconnect definition.
typedef PVOID CONNECTION_CONTEXT;

NTSTATUS
TDIClnEventDisconnect(PVOID, CONNECTION_CONTEXT, LONG, PVOID, LONG, PVOID, ULONG);

NTSTATUS                             
TDIClnEventConnect(PVOID, LONG, PVOID, LONG, PVOID, LONG, PVOID, CONNECTION_CONTEXT *, PIRP *);

NTSTATUS
TDIClnEventErrorEx(PVOID, NTSTATUS, PVOID);

NTSTATUS

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷成人综合网| 午夜成人在线视频| 悠悠色在线精品| 九色综合国产一区二区三区| 色94色欧美sute亚洲13| 国产日韩欧美a| 丝袜亚洲另类欧美综合| 色哟哟日韩精品| 久久久久国产一区二区三区四区 | 另类小说色综合网站| 成人免费视频一区| 欧美成人乱码一区二区三区| 蜜臀va亚洲va欧美va天堂| 欧美在线色视频| 国产精品美女久久久久aⅴ| 国产综合久久久久久鬼色| 欧美日韩免费一区二区三区 | 石原莉奈一区二区三区在线观看| 92精品国产成人观看免费| 国产欧美精品国产国产专区| 九九九久久久精品| 欧美一级久久久久久久大片| 日本少妇一区二区| 91精品国产乱| 蜜桃视频一区二区三区| 欧美一激情一区二区三区| 天天做天天摸天天爽国产一区| 色综合天天综合狠狠| 国产精品丝袜黑色高跟| 丁香亚洲综合激情啪啪综合| 国产日韩精品一区| av日韩在线网站| 亚洲精选视频在线| 91久久香蕉国产日韩欧美9色| 亚洲激情图片一区| 欧美综合天天夜夜久久| 亚洲gay无套男同| 欧美视频一区二区三区四区| 亚洲高清不卡在线| 91精品国产麻豆| 国产在线播精品第三| 日本一区二区三区四区| 9i在线看片成人免费| 一区二区三区自拍| 9191久久久久久久久久久| 日韩av一区二区在线影视| 欧美大度的电影原声| 国产精品一区不卡| 亚洲视频图片小说| 欧美日韩日日摸| 狠狠色综合日日| 亚洲日穴在线视频| 欧美欧美欧美欧美首页| 久久69国产一区二区蜜臀| 国产色产综合色产在线视频| 99在线热播精品免费| 亚洲一二三区不卡| 精品久久久久av影院| 成人美女视频在线观看| 亚洲国产精品久久艾草纯爱| 精品国产91久久久久久久妲己| 99免费精品在线| 日韩精品一区第一页| 国产亚洲短视频| 欧美主播一区二区三区美女| 毛片av中文字幕一区二区| 国产精品免费免费| 欧美日韩在线综合| 国产成人综合自拍| 午夜精品爽啪视频| 国产日韩欧美精品电影三级在线| 欧美在线三级电影| 成人性生交大片免费看中文| 亚洲国产va精品久久久不卡综合| 国产亚洲综合在线| 欧美日韩一区在线| 成人激情校园春色| 久久精品国产色蜜蜜麻豆| 亚洲女厕所小便bbb| 久久久综合视频| 日韩欧美电影在线| 在线视频观看一区| 成+人+亚洲+综合天堂| 美女网站视频久久| 亚洲乱码国产乱码精品精可以看 | 欧美高清性hdvideosex| 91在线观看高清| 国产精品白丝jk黑袜喷水| 肉肉av福利一精品导航| 夜夜嗨av一区二区三区| 中文av一区二区| 久久亚洲影视婷婷| 欧美日本高清视频在线观看| 91在线观看高清| 懂色av中文字幕一区二区三区| 日本不卡中文字幕| 视频在线观看一区| 亚洲一区二区四区蜜桃| 自拍偷在线精品自拍偷无码专区 | 精品嫩草影院久久| 欧美视频在线一区二区三区| 91蝌蚪porny九色| 不卡一卡二卡三乱码免费网站| 国产一区二区三区免费观看| 美女视频一区在线观看| 日本伊人午夜精品| 同产精品九九九| 天天影视涩香欲综合网| 亚洲自拍与偷拍| 一区二区三区欧美日| 亚洲色图清纯唯美| 亚洲猫色日本管| 亚洲素人一区二区| 亚洲精品国产高清久久伦理二区| 另类小说综合欧美亚洲| 日本免费新一区视频| 日韩黄色免费网站| 五月天欧美精品| 久久精品国产一区二区三| 国产一区二区三区电影在线观看| 国产在线精品一区二区三区不卡| 久久成人免费日本黄色| 国产激情91久久精品导航| 懂色中文一区二区在线播放| 99国产精品视频免费观看| 欧洲一区在线观看| 91精品国产综合久久久久久| 日韩免费电影一区| 国产无遮挡一区二区三区毛片日本| 国产欧美精品国产国产专区| 亚洲欧美综合在线精品| 亚洲午夜三级在线| 久久精品国产免费看久久精品| 国产伦精品一区二区三区免费迷| 成人精品鲁一区一区二区| 在线视频一区二区免费| 欧美日韩国产综合草草| 欧美tickling挠脚心丨vk| 国产亚洲欧美色| 中文字幕亚洲一区二区av在线| 亚洲国产成人porn| 国产精品一二三| 一本色道亚洲精品aⅴ| 日韩欧美一二三区| 一区免费观看视频| 日韩电影在线看| 成人精品一区二区三区中文字幕| 在线观看国产一区二区| 日韩欧美国产成人一区二区| 国产精品盗摄一区二区三区| 日日摸夜夜添夜夜添亚洲女人| 国产精品系列在线播放| 欧美性感一区二区三区| 久久精品欧美一区二区三区不卡 | 久久青草国产手机看片福利盒子| 亚洲图片你懂的| 久久激情综合网| 一本久久a久久精品亚洲| 欧美tk丨vk视频| 亚洲福利国产精品| 成人av在线观| 精品久久人人做人人爰| 亚洲国产精品综合小说图片区| 国产河南妇女毛片精品久久久| 欧美日韩一区二区三区免费看 | 日日欢夜夜爽一区| 91在线国产福利| 久久久久久亚洲综合| 午夜激情综合网| 成人动漫精品一区二区| 精品蜜桃在线看| 五月婷婷激情综合| 欧美视频完全免费看| 国产精品高潮久久久久无| 免费av成人在线| 欧美高清你懂得| 夜夜精品浪潮av一区二区三区| av高清不卡在线| 国产精品丝袜久久久久久app| 国产真实精品久久二三区| 欧美精品tushy高清| 亚洲国产日韩综合久久精品| 色哟哟一区二区三区| 国产精品国产三级国产普通话蜜臀| 久草在线在线精品观看| 欧美人与z0zoxxxx视频| 亚洲国产成人精品视频| 欧美影院精品一区| 国产麻豆日韩欧美久久| 久久亚洲精精品中文字幕早川悠里| 午夜a成v人精品| 欧美一区二区三区小说| 性做久久久久久免费观看欧美| 在线观看免费成人| 亚洲影视在线观看| 欧美视频日韩视频在线观看| 一区二区三区在线视频播放| 色乱码一区二区三区88| 一区二区三区波多野结衣在线观看| 91女神在线视频|