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¸¦ ´ÃÀ̵µ·Ï °¿äÇÒ ¼ö ¾ø´Ù.
|