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)°ú °°ÀÌ °è»êµÉ ¼ö ÀÖ´Ù.
|