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 Ŭ¶óÀÌ¾ðÆ®³ª µå¶óÀ̹ö¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù.
|