TdiBuildAction

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

TdiBuildAction ÇÔ¼ö´Â ·ÎÄÃÀÇ Å¬¶óÀÌ¾ðÆ®°¡ ¸®Äù½ºÆ®µÈ µ¿ÀÛÀÌ Àû¿ëÇÏ´Â ÁÖ¼Ò, ¿¬°á ¿£µåÆ÷ÀÎÆ®, ÅëÁ¦ ä³ÎÀ» ÀÌ¹Ì ¿¬ ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®·Î TDI_ACTION ¸®Äù½ºÆ®¿¡ ´ëÇÑ ³»ºÎÀÇ ÀåÄ¡ ÅëÁ¦ IRP¸¦ ¼³Á¤ÇÑ´Ù.

¸Å°³º¯¼ö

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

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

FileObj
ÁÖ¼Ò, ¿¬°á ¿£µåÆ÷ÀÎÆ®, ÅëÁ¦ ä³ÎÀ» ±¸ÇöÇÏ´Â ÆÄÀÏ °´Ã¼¸¦ °¡¸®Å²´Ù.

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

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

MdlAddr
Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ¼­ ¼³Á¤µÈ µ¿ÀÛ ¸Å°³º¯¼ö ºí·°À» Æ÷ÇÔÇϴ Ŭ¶óÀÌ¾ðÆ® Á¦°ø ¹öÆÛ¸¦ ¸ÅÇÎÇÏ´Â MDL üÀÎÀÇ Çìµå¸¦ °¡¸®Å²´Ù. ÀÌ ¹öÆÛ´Â Æ®·£½ºÆ÷Æ® °áÁ¤ Á¤º¸°¡ µ¿ÀÛ ¸®Äù½ºÆ®¸¦ ¼öÇàÇϱâ À§Çؼ­ ÇÊ¿äÇÑ °ÍÀÌ ¹«¾ùÀÎÁö¿¡ ÀÇÇØ¼­ ÆÇ°¡¸§µÇ´Â ½Ã½ºÅÛ Á¤ÀÇ Çì´õ¸¦ Æ÷ÇÔÇÑ´Ù.

ÁÖ¼®

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

Ŭ¶óÀÌ¾ðÆ®´Â ÁÖ¼Ò, ¿¬°á, ÅëÁ¦ ä³Î¿¡ °É¸Â´Â Æ®·£½ºÆ÷Æ® Á¦°ø È®ÀåÀ» À§Çؼ­ µ¿ÀÛ ¸®Äù½ºÆ®¸¦ ÇÒ ¼ö ÀÖ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â µ¿ÀÛ ¸Å°³º¯¼ö ºí·°¾È¿¡ ±×·¯ÇÑ ¸®Äù½ºÆ®¿¡ °üÇÏ¿© ¸ðµç Æ®·£½ºÆ÷Æ® ¿ä±¸ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛ¸¦ Á¦°øÇÑ´Ù.

¸ðµç µ¿ÀÛ ¸Å°³º¯¼ö ºí·°Àº Æ®·£½ºÆ÷Æ® ½Äº°ÀÚ¿Í µ¿ÀÛ Äڵ带 Æ÷ÇÔÇÏ´Â ½Ã½ºÅÛ Á¤ÀÇ TDI_ACTION_HEADER ±¸Á¶Ã¼¸¦ °¡Áö°í ½ÃÀÛÇÑ´Ù. ±×·¯ÇÑ ¸®Äù½ºÆ® ¹Þ±â¿¡¼­ Æ®·£½ºÆ÷Æ®´Â ¸®Äù½ºÆ®¸¦ ½ÂÀÎÇϱâ À§Çؼ­ ÀÌ Çì´õ¾È¿¡ TransportId °ªÀ» »ç¿ëÇÑ´Ù. ActionCode ¸â¹ö´Â ¸Å°³º¯¼ö ºí·°ÀÇ ³ª¸ÓÁö¸¦ À§Çؼ­ Æ®·£½ºÆ÷Æ® ¿ä±¸ ³»¿ëÀ» °áÁ¤ÇÏ°í ¼öÇàÇÏ´Â Æ®·£½ºÆ÷Æ® Á¤ÀÇ ¿¬»êÀ» ¼­¼úÇÑ´Ù. ÇϺÎÀÇ Æ®·£½ºÆ÷Æ®´Â »ç¿ë°¡´ÉÇÑ µ¿ÀÛ ÄÚµåÀÇ ÁýÇÕ°ú °¢°¢ÀÇ µ¿ÀÛÀ» À§Çؼ­ À¯ÁöµÇ´Â ¸Å°³º¯¼ö ºí·°ÀÇ ¿ä±¸µÈ Æ÷¸ËÀ» Á¤ÀÇÇÑ´Ù.

¾î¶² Ŭ¶óÀ̾ðÆ®ÀÇ µ¿ÀÛ ¸®Äù½ºÆ®¿¡ ´ëÇÑ ¼º°øÀûÀÎ ¿Ï·á´Â Æ®·£½ºÆ÷Æ® Á¦°ø È®ÀåÀ» ±× Ŭ¶óÀÌ¾ðÆ®¿¡ Àû¿ëµÇ°Ô ÇÑ´Ù. ÇÏÁö¸¸ ´Ù¸¥ TDI Ŭ¶óÀÌ¾ðÆ®³ª µå¶óÀ̹ö¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù.