TdiBuildSetInformation

VOID
   TdiBuildSetInformation (
       IN PIRP Irp,
       IN PDEVICE_OBJECT DevObj,
       IN PFILE_OBJECT FileObj,
       IN PVOID CompRoutine,
       IN PVOID Contxt,
       IN UINT SType,
       IN PMDL MdlAddr
  
   );

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

¸Å°³º¯¼ö

Irp
TdiBuildInternalDeviceControlIrp ÇÔ¼ö¸¦ °¡Áö°í ÇÒ´çµÈ Ŭ¶óÀÌ¾ðÆ® Á¦°ø IRP¸¦ °¡¸®Å²´Ù.

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

FileObj
ÁÖ¼Ò, ¿¬°á ¿£µåÆ÷ÀÎÆ®, ÅëÁ¦ ä³ÎÀ» ±¸ÇöÇÏ´Â ÆÄÀÏ °´Ã¼¸¦ °¡¸®Å²´Ù. ÀÌ ÆÄÀÏ °´Ã¼´Â ÁÖ¾îÁø STypeÀÇ ÀûÀýÇÑ °ªÀ̾î¾ßÇÑ´Ù.

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

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

SType
Ŭ¶óÀÌ¾ðÆ®°¡ ¼³Á¤ÇϰíÀÚÇÏ´Â Á¤º¸ÀÇ Å¸ÀÔÀ» ¼­¼úÇÑ´Ù. ÀÌ ¸Å°³º¯¼ö´Â Æ®·£½ºÆ÷Æ® Á¤ÀÇ È¤Àº ´ÙÀ½ÀÇ ½Ã½ºÅÛ Á¤ÀÇ °ªÁß¿¡ ÇϳªÀÏ ¼ö ÀÖ´Ù:

TDI_QUERY_ADDRESS_INFO
ÁÖ¼Ò¿¡ ´ëÇØ¼­ Á¦°øµÈ Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù. MdlAddr¿¡ ¸ÊµÈ ¹öÆÛ´Â TDI_ADDRESS_INFO ±¸Á¶Ã¼·Î½á Æ÷¸ËµÈ´Ù.

TDI_QUERY_CONNECTION_INFO
¿¬°á ¿£µåÆ÷ÀÎÆ®¿¡ ´ëÇØ¼­ Á¦°øµÈ Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù. MdlAddr¿¡ ¸ÊµÈ ÀÌ ¹öÆÛ´Â TDI_CONNECTION_INFO ±¸Á¶Ã¼·Î½á Æ÷¸ËµÈ´Ù.

TDI_QUERY_PROVIDER_INFO
ÅëÁ¦ ü³Î¿¡ ´ëÇØ¼­ Á¦°øµÈ Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù. MdlAddr¿¡ ¸ÊµÈ ¹öÆÛ´Â TDI_PROVIDER_INFO ±¸Á¶Ã¼·Î½á Æ÷¸ËµÈ´Ù. ±×·¯³ª Ŭ¶óÀÌ¾ðÆ®´Â ½ÇÁ¦·Î Æ®·£½ºÆ÷Æ®¿¡ ÀÇÇØ¼­ Áö¿øµÇÁö ¾Ê´Â ¹«¾ð°¡·Î Æ®·£½ºÆ÷Æ®ÀÇ Á¦°øÀÚ Á¤º¸¸¦ ¸®¼ÂÇÒ ¼ö ¾ø´Ù.

TDI_QUERY_PROVIDER_STATISTICS
ÅëÁ¦ ü³Î¿¡ ´ëÇØ¼­ Á¦°øµÈ Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù. MdlAddr¿¡ ¸ÊµÈ ¹öÆÛ´Â TDI_PROVIDER_STATISTICS ±¸Á¶Ã¼·Î½á Æ÷¸ËµÈ´Ù. ±×·¯³ª Ŭ¶óÀÌ¾ðÆ®´Â ½ÇÁ¦·Î Æ®·£½ºÆ÷Æ®¿¡ ÀÇÇØ¼­ À¯ÁöµÇÁö ¾Ê´Â ¹«¾ð°¡·Î Ŭ¶óÀÌ¾ðÆ® ´ç »óŶó±â º¸´Ù´Â ÀüüÀÇ »óÅÂÀÎ Æ®·£½ºÆ÷Æ®ÀÇ Åë°è¸¦ ¸®¼ÂÇÒ ¼ö ¾ø´Ù.

ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â µå¶óÀ̹ö °³¹ßÀÚÀÇ °áÁ¤¿¡¼­ Á¤º¸ ¼³Á¤ ¸®Äù½ºÆ®ÀÇ Ãß°¡ÀûÀΠŸÀÔÀ» Áö¿øÇÒ ¼ö ÀÖ´Ù. ±×·¯ÇÑ Æ®·£½ºÆ÷Æ®´Â °¡Àå Áß¿äÇÑ ºñÆ®°¡ ¼³Á¤µÈ TDI_QUERY_XXX Äڵ带 Á¤ÀÇÇØ¾ßÇÑ´Ù.

MdlAddr
¼³Á¤µÇ´Â µ¥ÀÌŸ¸¦ Æ÷ÇÔÇϴ Ŭ¶óÀÌ¾ðÆ® Á¦°ø ¹öÆÛ¸¦ ¸ÅÇÎÇÏ´Â MDLÀ» °¡¸®Å²´Ù. ÀÌ ¹öÆÛÀÇ Æ÷¸Ë°ú ³»¿ëÀº ÁÖ¾îÁø SType¿¡ ÀÇÁ¸ÇÑ´Ù.

ÁÖ¼®

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

Ŭ¶óÀÌ¾ðÆ®´Â TdiBuildSetInformation ÇÔ¼ö·Î Àü´ÞµÇ´Â SType¿¡ ÀÇÁ¸ÇÏ¿© ÁÖ¼Ò, ¿¬°á, ÅëÁ¦ ä³Î¿¡ ´ëÇØ¼­ Á¤º¸¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ÁÖ¾îÁø ÆÄÀÏ °´Ã¼´Â ÁÖ¾îÁø SType °ªÀ» ÀûÀýÈ÷ ÇØ¾ßÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é Æ®·£½ºÆ÷Æ®´Â ¸®Äù½ºÆ®¸¦ ½ÇÆÐÇÑ´Ù.

¶ÇÇÑ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â MdlAddr¿¡ ¹öÆÛ¾È¿¡ ºÎÀûÀýÇÑ °ªÀ» Á¦°øÇϴ Ŭ¶óÀÌ¾ðÆ®¸¦ À§Çؼ­ ¸®¼ÂÀ» °ÅÀýÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¸é Ŭ¶óÀÌ¾ðÆ®´Â ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®·Î ÇÏ¿©±Ý ¾Õ¼± Á¤º¸ Äõ¸® ¸®Äù½ºÆ®¿¡¼­ Æ®·£½ºÆ÷Æ®¿¡ ÀÇÇØ¼­ ¸®ÅÏµÈ TDI_PROVIDER_INFO ±¸Á¶Ã¼ÀÇ ¸â¹ö¸®¼ÂÀ» ½ÃµµÇÏ´Â Á¤º¸ ¼³Á¤ ¸®Äù½ºÆ®¸¦ Á¦½ÃÇÏ¹Ç·Î½á Æ®·£½ºÆ÷Æ® °áÁ¤ÀÇ Á¦ÇѾȿ¡¼­ MaxSendSize ȤÀº MaxDatagramSize¸¦ ´ÃÀ̵µ·Ï °­¿äÇÒ ¼ö ¾ø´Ù.