TDI_CONNECTION_INFO

typedef struct _TDI_CONNECTION_INFO {

    ULONG          State;

    ULONG          Event;

    ULONG          TransmittedTsdus;

    ULONG          ReceivedTsdus;

    ULONG          TransmissionErrors;

    ULONG          ReceiveErrors;

    LARGE_INTEGER  Throughput;

    LARGE_INTEGER  Delay;

    ULONG          SendBufferSize;

    ULONG          ReceiveBufferSize;

    BOOLEAN        Unreliable;

} TDI_CONNECTION_INFO, *PTDI_CONNECTION_INFO;

TDI_CONNECTION_INFO´Â IrpSp->Parameters.QueryTypeÀÌ TDI_QUERY_CONNECTION_INFO·Î ¼³Á¤µÈ TDI_QUERY_INFORMATION ¸®Äù½ºÆ®¿¡ ´ëÇØ¼­ ¸®ÅÏµÈ ±¸Á¶Ã¼ÀÇ Á¤º¸¸¦ Á¤ÀÇÇÑ´Ù.

¸â¹ö

State
³×Æ®¿÷ »ó¿¡¼­ ¿¬°áÀÇ ÇöÀç »óŸ¦ ¼­¼úÇÑ´Ù.

Event
TDI µå¶óÀ̹ö°¡ °¡Àå ÃÖ±Ù¿¡ Ŭ¶óÀÌ¾ðÆ®·Î ÀεðÄÉÀÌÆ®ÇÑ À̺¥Æ®ÀÇ Å¸ÀÔÀ» ¼­¼úÇÑ´Ù. °ªÀº TDI_EVENT_XXX ÄÚµå·Î Ç¥ÇöµÈ´Ù.

TransmittedTsdus
¿¬°á ¿£µåÆ÷ÀÎÆ®»ó¿¡¼­ Àü¼ÛµÈ TSDU ¼ö¸¦ ¼­¼úÇÑ´Ù.

ReceivedTsdus
¿¬°á ¿£µåÆ÷ÀÎÆ®»ó¿¡¼­ ¸®½ÃºêµÈ TSDU ¼ö¸¦ ¼­¼úÇÑ´Ù.

TransmissionErrors
¿¬°á ¿£µåÆ÷ÀÎÆ®»ó¿¡¼­ Àü¼ÛÁß¿¡ ¿¡·¯¸¦ °¡Áø TSDU ¼ö¸¦ ¼­¼úÇÑ´Ù.

ReceiveErrors
¿¬°á ¿£µåÆ÷ÀÎÆ®»ó¿¡¼­ ¼ö½ÅÁß¿¡ ¿¡·¯¸¦ °¡Áø TSDU ¼ö¸¦ ¼­¼úÇÑ´Ù.

Throughput
¼Û¼ö½ÅÀ» À§Çؼ­ ÃÊ´ç ¹ÙÀÌÆ®·Î Ç¥ÇöµÇ´Â ¿¬°á¿¡¼­ ¾î¸²ÀâÀº 󸮷®À» ¼­¼úÇÑ´Ù. ZeroÀº µå¶óÀ̹ö°¡ 󸮷®À» °è»êÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀεðÄÉÀÌÆ®ÇÑ´Ù.

Delay
À½¼ö·Î Ç¥ÇöµÇ´Â ¿¬°á¿¡¼­ ¾î¸²ÀâÀº Áö¿¬À» ¼­¼úÇÑ´Ù. ÆÐŶ »çÀÌÁî¿Í´Â °ü°è¾øÀÌ ¿ø·¡ »ó¼öÀÎ Delay´Â ¿ø°ÝÁö·Î º¸³»Áø °¢°¢ÀÇ TSDUÀÇ Àü¼Û½Ã°£¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù.

SendBufferSize
Æ®·£½ºÆ÷Æ® ¹öÆÛ°¡ ³»ºÎÀûÀ¸·Î º¸³½´Ù¸é º¸³»±â ¹öÆÛÀÇ ¹ÙÀÌÆ® »çÀÌÁ ¼­¼úÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÀÌ ¸â¹ö´Â 0ÀÌ´Ù.

ReceiveBufferSize
Æ®·£½ºÆ÷Æ® ¹öÆÛ°¡ ³»ºÎÀûÀ¸·Î ¹Þ´Â´Ù¸é ¹Þ±â ¹öÆÛÀÇ ¹ÙÀÌÆ® »çÀÌÁ ¼­¼úÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÀÌ ¸â¹ö´Â 0ÀÌ´Ù.

Unreliable
Æ®·£½ºÆ÷Æ®°¡ ¿¬°áÀÌ ½Å·ÚÇÒ ¼ö ¾ø´Ù°í °áÁ¤ÇÑ´Ù¸é TRUE¸¦ ¼­¼úÇÑ´Ù. ÀÌ ¸â¹ö°¡ TRUE¶ó¸é Æ®·£½ºÆ÷Æ®´Â Ŭ¶óÀÌ¾ðÆ®·Î ¿¬°áÇØÃ¼ À̺¥Æ®¸¦ º¸³½´Ù. ±×¸®°í ÀÌ ¿¬°á¿¡¼­ º¸³»°í ¹Þ±â´Â ½ÇÆÐÇÑ´Ù.

ÁÖ¼®

ZwCreateFile ÇÔ¼ö¸¦ °¡Áö°í ¿¬°áÀ» ±¸ÇöÇÏ´Â ÆÄÀÏ °´Ã¼¸¦ ¿¬ Ä¿³Î ¸ðµå Ŭ¶óÀÌ¾ðÆ®´Â ·ÎÄà ¿¬°áÀÇ ÇöÀç »óŸ¦ °áÁ¤Çϱâ À§Çؼ­ Äõ¸®ÇÒ ¼ö ÀÖ´Ù. ±×·¯ÇÑ Å¬¶óÀÌ¾ðÆ®´Â TdiBuildQueryInformation ÇÔ¼ö¸¦ °¡Áö°í IRP¸¦ ¼³Á¤Çϰí QType TDI_QUERY_CONNECTION_INFO·Î Àü´ÞÇØ¼­ ÀÌ Á¤º¸¸¦ ¾ò°íÀÚÇÏ´Â ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®·Î IRP¸¦ Á¦ÃâÇÑ´Ù.

TDI_CONNECTION_INFO´Â ±×·¯ÇÑ Äõ¸®¸¦ À§Çؼ­ ¸®Äù½ºÆ®µÈ Á¤º¸¸¦ ¸®ÅÏÇÏ´Â Æ®·£½ºÆ÷Æ®ÀÇ Æ÷¸ËÀ» Á¤ÀÇÇÑ´Ù.

Ŭ¶óÀÌ¾ðÆ®°¡ ¿ø°ÝÁö¿Í ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀ» ¼º¸³ÇßÀ» ¶§ ÀÌ Á¤º¸ÀÇ ¼­ºê¼Â¸¸ÀÌ ³»ºÎÀû ¹öÆÛÈ­¸¦ Áö¿øÇÏ´Â ÇϺΠƮ·£½ºÆ÷Æ®ÀÇ SendBufferSize¿Í ReceiveBufferSizeó·³ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ÀáÀçÀûÀ¸·Î À¯¿ëÇÏ´Ù. ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀÌ ¾ÆÁ÷ ¼º¸³µÇÁö ¾Ê¾Ò´Ù¸é TDI Æ®·£½ºÆ÷Æ®´Â Äõ¸® Á¤º¸ ¸®Äù½ºÆ®¸¦ ½ÇÆÐÇϰųª ¾ÆÁ÷ °ü·ÃµÇÁö ¾ÊÀº ¸â¹ö¸¦ À§Çؼ­ µðÆúÆ® ȤÀº ÃʱâÈ­ °ªÀ¸·Î ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.

°á±¹ Ä¿³Î ¸ðµå Ŭ¶óÀÌ¾ðÆ®´Â ¿ø°ÝÁö¿Í ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® ¿¬°áÀÌ ¼º¸³µÆÀ» ¶§ ±×µéÀÇ Æ®·£½ºÆ÷Æ®·Î ÀÌ ¸®Äù½ºÆ®¸¦ Á¦ÃâÇÑ´Ù. ¿¹¸¦µé¾î ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®°¡ 0À» ¸®ÅÏÇÏÁö ¾Ê´Â´Ù´Â °¡Á¤ÇÏ¿¡ Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ Äù¸®¿¡ ´ëÇØ¼­ ¸®ÅÏµÈ Delay¿Í ThroughputÀ» »ç¿ëÇÏ¿© ³×Æ®¿÷À¸·Î º¸³»±âÀ§ÇÑ Àü¼Û½Ã°£À» ¾î¸²ÀâÀ» ¼ö ÀÖ´Ù. TSDUÀÇ ¹ÙÀÌÆ® »çÀÌÁ Àü¼ÛÇϱâ À§Çؼ­ ¾î¸²ÀâÀº ½Ã°£Àº SendTime = Delay + (n * Throughput)°ú °°ÀÌ °è»êµÉ ¼ö ÀÖ´Ù.