TdiBuildSendDatagram

VOID
   TdiBuildSendDatagram (
       IN PIRP Irp,
       IN PDEVICE_OBJECT DevObj,
       IN PFILE_OBJECT FileObj,
       IN PVOID CompRoutine,
       IN PVOID Contxt,
       IN PMDL MdlAddr,
       IN ULONG SendLen,
       IN PTDI_CONNECTION_INFORMATION SendDatagramInfo
  
   );

TdiBuildSendDatagram ÇÔ¼ö´Â ·ÎÄà Ŭ¶óÀÌ¾ðÆ®°¡ ÁÖ¼Ò¸¦ ±¸ÇöÇÏ´Â ÆÄÀÏ °´Ã¼¸¦ ÀÌ¹Ì ¿¬ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®·Î TDI_SEND_DATAGRAM ¸®Äù½ºÆ®¸¦ À§ÇÑ ³»ºÎÀÇ ÀåÄ¡ ÅëÁ¦ IRP¸¦ ¼³Á¤ÇÑ´Ù.

¸Å°³º¯¼ö

Irp
´õ »óÀ§ ·¹º§ ³×Æ®¿÷ ÄÄÆ÷³ÍÆ®¿¡¼­ ¹ß»ýÇϰųª TdiBuildInternalDeviceControlIrp ÇÔ¼ö¸¦ °¡Áö°í ÇÒ´çµÈ Ŭ¶óÀÌ¾ðÆ® Á¦°ø IRP¸¦ °¡¸®Å²´Ù.

DevObj
ÇϺÎÀÇ TDI Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö¿¡ ÀÇÇØ¼­ »ý¼ºµÈ ÀåÄ¡ °´Ã¼¸¦ °¡¸®Å²´Ù.

FileObj
ÁÖ¼Ò¸¦ ±¸ÇöÇÏ´Â ÆÄÀÏ °´Ã¼¸¦ °¡¸®Å²´Ù.

CompRoutine
Ŭ¶óÀÌ¾ðÆ® Á¦°ø IoCompletion ·çƾÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ¼­¼úÇϰųª NULLÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ ¸Å°³º¯¼ö¸¦ NULL·Î ¼³Á¤ÇÏÁö ¾Ê´Â´Ù¸é ÁÖ¾îÁø IRP°¡ ¿Ï·áµÉ ¶§ I/O ¸Å´ÏÀú´Â ÀÌ ·çƾÀ» È£ÃâÇÑ´Ù.

Contxt
Ŭ¶óÀÌ¾ðÆ® °áÁ¤ ÄÁÅØ½ºÆ®¸¦ °¡¸®Å²´Ù. ÀÌ Å¬¶óÀÌ¾ðÆ® Á¦°ø Æ÷ÀÎÅÍ´Â ¿Ï·áµÈ IRP¸¦ °¡Áö°í È£ÃâµÉ ¶§ IoCompletion ·çƾÀ¸·Î Àü´ÞµÈ´Ù. CompRoutineÀÌ NULLÀ̸é Contxt´Â NULLÀÌ´Ù.

MdlAddr
Æ®·£½ºÆ÷Æ®°¡ º¸³»Áö´Â µ¥ÀÌŸ±×·¥À» Àü¼ÛÇϴ Ŭ¶óÀÌ¾ðÆ® Á¦°ø ¹öÆÛ¸¦ ¸ÅÇÎÇϴ üÀÎÈ­µÈ MDLÀÇ Ã³À½ MDLÀ» °¡¸®Å²´Ù.

SendLen
MdlAddr¿¡ ¸ÊµÈ ¹öÆÛÀÇ ¹ÙÀÌÆ® »çÀÌÁ ¼­¼úÇÑ´Ù. ÃÖ´ë µ¥ÀÌŸ±×·¥ »çÀÌÁî´Â ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®¿¡ ÀÇÁ¸ÇÑ´Ù. ¤ÀÀÌ À¯È¿ÇÑ °ªÀÎÁö ¶ÇÇÑ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®¿¡ ÀÇÁ¸ÇÑ´Ù.

SendDatagramInfo
È£ÃâÀÚ Á¦°ø µ¥ÀÌŸ±×·¥ÀÌ º¸³»Áö´Â ¿ø°ÝÁöÀÇ ÁÖ¼Ò¸¦ ¼­¼úÇÏ´Â TDI_CONNECTION_INFORMATION ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù.

ÁÖ¼®

TdiBuildSendDatagram ÇÔ¼ö´Â ÁÖ¾îÁø IRPÀÇ Æ®·£½ºÆ÷Æ® I/O ½ºÅà ·ÎÄÉÀ̼Ǿȿ¡ MajorFunction·Î½á IRP_MJ_INTERNAL_DEVICE_CONTROLÀ» ¼³Á¤Çϰí MinorFunction·Î½á TDI_SEND_DATAGRAMÀ» ¼³Á¤ÇÑ´Ù.

TDI Æ®·£½ºÆ÷Æ®´Â °áÄÚ µ¥ÀÌŸ±×·¥À» ´ÜÆíÈ­ÇÒ ¼ö ¾ø´Ù. °á±¹ ±×µéÀÇ Å¬¶óÀÌ¾ðÆ®´Â ÁÖ¾îÁø ¸ñÀûÁö ÁÖ¼Ò·Î ºñ¿¬°áÁöÇâ µ¥ÀÌŸ Àü¼ÛÀ» À§Çؼ­ ƯÁ¤ ¸®Äù½ºÆ® ¸¸À» °¡Áö°í ¿¬°üµÇ´Â °¢°¢ÀÇ µ¥ÀÌŸ±×·¥À» Àü¼ÛÇϱâ À§Çؼ­ ÇѹøÀÇ µ¥ÀÌŸ±×·¥ º¸³»±â ¸®Äù½ºÆ®¸¦ ÇÑ´Ù. SendLenÀ» À§Çؼ­ °¡´ÉÇÑ ÃÖ´ëÀÇ °ªÀ» °áÁ¤Çϱâ À§Çؼ­ Ŭ¶óÀÌ¾ðÆ®´Â º¸Åë QTypeÀÇ °ªÀÌ TDI_QUERY_PROVIDER_INFO, TDI_QUERY_DATAGRAM_INFO, ȤÀº TDI_QUERY_MAX_DATAGRAM_INFOÀÎ °Í¿¡ ´ëÇØ¼­ TdiBuildQueryInformation ÇÔ¼ö¸¦ °¡Áö°í ¼³Á¤µÈ Á¤º¸ Äõ¸® ¸®Äù½ºÆ®¸¦ Á¦½ÃÇÑ´Ù.

¾î¶² ºñ¿¬°áÁöÇâ Àü¼ÛÀº ¿ø·¡ ºñ½Å·ÚÀûÀÌ´Ù. ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö °³¹ßÀÚÀÇ °áÁ¤¿¡¼­ ÁÖ¾îÁø µ¥ÀÌŸ±×·¥À» ¼Õ½ÇÇϰųª º¹»çÇÒ ¼ö ÀÖ´Ù.

Ŭ¶óÀÌ¾ðÆ®°¡ µ¥ÀÌŸ±×·¥ º¸³»±â ¸®Äù½ºÆ®¸¦ Á¦½ÃÇÒ ¶§ Æ®·£½ºÆ÷Æ®´Â ³»ºÎÀûÀ¸·Î ¸®Äù½ºÆ®¸¦ Å¥¿¡ ÀúÀåÇÑ´Ù. ±×·¯ÇÑ Æ®·£½ºÆ÷Æ®´Â FIFO ¼ø¼­·Î µ¥ÀÌŸ±×·¥ º¸³»±â ¸®Äù½ºÆ®¸¦ ó¸®ÇÑ´Ù. ±×µéÀº °°Àº Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ¿£µåÆ÷ÀÎÆ® ´ë ¿£µåÆ÷ÀÎÆ® º¸³»±â ¸®Äù½ºÆ®·ÎºÎÅÍ ºÐ¸®µÈ µ¥ÀÌŸ±×·¥ º¸³»±â ¸®Äù½ºÆ®¸¦ Å¥¿¡ ÀúÀåÇÑ´Ù.