1.6.2.1 ÁÖ¼Ò ÆÐ¹Ð¸® µî·Ï°ú ¿­±â

ÄÝ ¸Å´ÏÀú´Â ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®µé¿¡°Ô ÄÝ ¸Å´ÏÀú ¼­ºñ½ºµéÀ» Á¦°øÇÏ´Â °Í¿¡ ´ëÇØ °¢ NICÀ» À§ÇØ address family¸¦ µî·ÏÇØ¾ß ÇÑ´Ù. À¯»çÇϰÔ, MCM µå¶óÀ̹ö´Â °ü¸®ÇÏ´Â NICÀ» À§ÇØ address family¸¦ µî·ÏÇØ¾ß ÇÑ´Ù.

address family¸¦ µî·ÏÇÔÀ¸·Î½á, ÄÝ ¸Å´ÏÀú ȤÀº MCMÀº NDIS¿¡°Ô ÄÝ ¸Å´ÏÀú ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇØ¾ß Çϰí NDIS°¡ ¾î´ðÅÍ¿¡ ¹ÙÀεåµÈ ¸ðµç ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®µé¿¡°Ô ÄÝ ¸Å´ÏÀúÀÇ È¤Àº MCMÀÇ ¼­ºñ½ºµéÀ» ±¤°íÇϵµ·Ï ÇÑ´Ù.(advertise)

¸¸¾à ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®´Â ÄÝ ¸Å´ÏÀú ȤÀº MCM¿¡ ÀÇÇØ ±¤°íµÇ¾îÁö´Â ¼­ºñ½ºµéÀ» »ç¿ëÇÑ´Ù¸éÀº, ÄÝ ¸Å´ÏÀú ȤÀº MCM¿¡ address family¸¦ ¿­ ¼ö ÀÖ´Ù.

Registering an Address Family from a Call Manager

    ProtocolBindAdapter ÇÔ¼ö°¡ NdisOpenAdapter ·Î ¾Æ·¡ ÀÖ´Â NIC ¹Ì´ÏÆ÷Æ®¿Í ¹ÙÀεåÇÑ ÈÄ, ÄÝ ¸Å´ÏÀú´Â ¹ÙÀεùÀ» À§ÇØ address family¸¦ µî·ÏÇϱâ À§ÇØ NdisCmRegisterAddressFamily¸¦ È£ÃâÇÑ´Ù. (Figure 1.3¸¦ ºÁ¶ó.)

    ±×¸² 1.3 ÄÝ ¸Å´ÏÀú¸¦ °¡Áö°í ÁÖ¼Ò ÆÐ¹Ð¸®¸¦ µî·ÏÇÏ°í ¿­±â

    NdisCmRegisterAddressFamily¿¡ ´ëÇÑ È£ÃâÀº ÄÝ ¸Å´ÏÀú¸¦ À§ÇØ ÄÝ ¸Å´ÏÀú ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇÏ°í ¶ÇÇÑ ÄÝ ¸Å´ÏÀúÀÇ Æ¯Á¤ ½Ã±×³Î¸µ ¼­ºñ½ºµéÀ» ±¤°íÇÑ´Ù. ÄÝ ¸Å´ÏÀú´Â ProtocolBindAdapter ÇÔ¼ö°¡ È£ÃâµÇ¾îÁö°í ¼º°øÀûÀ¸·Î NdisOpenAdapter·Î NICÀ» ¹ÙÀεåÇÒ ¶§¸¶´Ù address family¸¦ µî·ÏÇØ¾ß ÇÑ´Ù.

    ÄÝ ¸Å´ÏÀú´Â ¹ÙÀεåµÈ ¸ðµç NIC µå¶óÀ̹öµé·Î Çϳª³ª ±× ÀÌ»óÀÇ address family¸¦ Áö¿øÇÒ ¼ö ÀÖ´Ù. ÄÝ ¸Å´ÏÀú´Â ¶ÇÇÑ ¹ÙÀεåµÈ ÇϳªÀ¸ NIC¿¡ ´ëÇØ Çϳª³ª ±× ÀÌ»óÀÇ address family¸¦ Áö¿øÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡, ±×·¯³ª, ÄÝ ¸Å´ÏÀú´Â ¹ÙÀεùµÈ °¢ address family¸¦ À§ÇØ °°Àº ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇØ¾ß ÇÑ´Ù. ´ÜÁö ÇϳªÀÇ ÄÝ ¸Å´ÏÀú´Â ¾î¶² ƯÁ¤ NIC µå¶óÀ̹ö¿¡ ¹ÙÀεåµÈ Ŭ¶óÀÌ¾ðÆ®µéÀ» À§ÇØ Æ¯Á¤ ŸÀÔÀÇ address family¸¦ Áö¿øÇÒ ¼ö ÀÖ´Ù.

Registering an Address Family from an MCM driver

    MCM µå¶óÀ̹ö´Â NdisMRegisterMiniport·Î ¹Ì´ÏÆ÷Æ®ÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇÑ ÈÄ MiniportInitialize ÇÔ¼ö·ÎºÎÅÍ NdisMCmRegisterAddressFamily¸¦ È£ÃâÇÑ´Ù. MCM µå¶óÀ̹ö´Â ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®µé¿¡ ´ëÇÑ ¼­ºñ½ºµéÀ» ±¤°íÇϱâ À§ÇØ NDIS·Î ÄÝ ¸Å´ÏÀú ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇϱâ À§ÇØ ÇѹøÀº NdisMCmRegisterAddressFamily¸¦ È£ÃâÇÑ´Ù.

    ±×¸² 1.4 MCMÀ» °¡Áö°í ÁÖ¼Ò ÆÐ¹Ð¸®¸¦ µî·ÏÇÏ°í ¿­±â

    on-board ¿¬°á ÁöÇ⠽ñ׳θµ Áö¿øÀ» °¡Áö´Â NICÀÇ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ºñ·Ï ÄÝ ¸Å´ÏÀú°¡ ÀÌ¿ëÇÒ ¼ö ÀÖÁö¸¸Àº ±× ÀÚü¸¦ MCM µå¶óÀ̹ö·Î µî·ÏÇÒ ¼ö ÀÖ´Ù. ±×·¸°Ô ÇÔÀ¸·Î½á, ±×·¯ÇÑ MCM µå¶óÀ̹ö´Â ±×·¯ÇÑ NICÀ» À§ÇØ ÄÝ ¸Å´ÏÀú·Î¼­ ÄÝ ¸Å´ÏÀú¸¦ ¼±Á¡ÇÑ´Ù.(preempt)

Opening an Address Family

    Ndis(M)CmRegisterAddressFamily¿¡ ´ëÇÑ ÄÝ ¸Å´ÏÀúÀÇ È¤Àº MCMÀÇ È£ÃâÀº NDIS¿¡°Ô ¹ÙÀεù¶§ °¢ ¿¬°á ÁöÇâ Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolCoAfRegisterNotify¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù.(Figure 1.3°ú 1.4¿¡ º¸¿©Áø °Íó·³)

    ProtocolCoAfRegisterNotify´Â Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ·¯ÇÑ Æ¯Á¤ CM ȤÀº MCMÀÇ ¼­ºñ½ºµéÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö¸¦ °áÁ¤Çϱâ À§ÇØ address-family µ¥ÀÌÅ͸¦ Á¶»çÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ (M)CM Áö¿ø address-family µ¥ÀÌÅÍ¿¡¼­ ¼öÁ¤ÇÒ ¼ö ÀÖ´ÂÁö´Â ÄÝ ¸Å´ÏÀú ȤÀº MCMÀÇ Æ¯Á¤ ½Ã±×³Î¸µ ÇÁ·ÎÅäÄÝ Áö¿ø¿¡ ÀÇÁ¸ÇÑ´Ù.

    ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ ¼ö¶ôÇÒ ¼ö ÀÖ´Â Á¦°øµÈ ÄÝ °ü¸® ¼­ºñ½ºµéÀ» ¹ß°ßÇÑ´Ù¸éÀº, ProtocolCoAfRegisterNotify´Â Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇØ AF´ç ÄÁÅØ½ºÆ® ¿µ¿ªÀ» ÇÒ´çÇϰí NdisClOpenAddressFamily¸¦ È£ÃâÇÑ´Ù. NdisClOpenAddressFamily´Â NDIS¿¡°Ô Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°á ÁöÇâ ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇÑ´Ù.

    NdisClOpenAddressFamily¿¡ ´ëÇÑ È£ÃâÀº NDIS°¡ ÄÝ ¸Å´ÏÀúÀÇ È¤Àº MCMÀÇ ProtocolCmOpenAf ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù. (ÀÌ¹Ì Figures 1.3 °ú 1.4¿¡ º¸¿©Áø °Íó·³) ProtocolCmOpenAf´Â À¯È¿ÇÑ address family¿¡ Àü´ÞµÈ Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ·¯ÇÑ address familyÀÇ ÀνºÅϽº¸¦ ¿©´Â Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇØ ¿¬»êµéÀ» ÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇϰí ÃʱâÈ­ÇÏ´Â °ÍÀ» È®½ÇÈ÷ ÇÑ´Ù. ProtocolCmOpenAf´Â ¶ÇÇÑ ¿­¸° address family¸¦ À§ÇØ ÄÝ ¸Å´ÏÀú¿Í Ŭ¶óÀÌ¾ðÆ® »çÀÌ¿¡ °ü°è¸¦ Ç¥½ÃÇϱâ À§ÇØ NDIS Á¦°ø NdisAfHandle¸¦ ÀúÀåÇÑ´Ù. ProtocolCmOpenAf´Â µ¿±âÀû ȤÀº ºñµ¿±âÀûÀ¸·Î ¿Ï¼ºÇÒ ¼ö ÀÖ´Ù. ºñµ¿±âÀûÀ¸·Î ¿Ï¼ºÇϱâ À§ÇØ, ÄÝ ¸Å´ÏÀúÀÇ ProtocolCmOpenAf ÇÔ¼ö´Â NdisCmOpenAddressFamilyComplete¸¦ È£ÃâÇÑ´Ù. ; MCMÀÇ

    ProtocolCmOpenAf ÇÔ¼ö´Â NdisMCmOpenAddressFamilyComplete¸¦ È£ÃâÇÑ´Ù. Ndis(M)CmOpenAddressFamilyComplete ¿¡ ´ëÇÑ È£ÃâÀº NDIS¿¡°Ô ¿ø·¡ NdisClOpenAddressFamily¸¦ È£ÃâÇϴ Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolOpenAfComplete¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù.

    ¸¸¾à NdisClOpenAddressFamily¿¡ ´ëÇÑ Å¬¶óÀ̾ðÆ®ÀÇ È£ÃâÀÌ ¼º°øÀûÀ̶ó¸éÀº, NDIS´Â ¿­¸° address family¸¦ À§ÇØ ÄÝ ¸Å´ÏÀú¿Í Ŭ¶óÀÌ¾ðÆ® »çÀÌ¿¡ °ü°è¸¦ Ç¥½ÃÇÏ´Â NdisAfHandle¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¸®ÅÏÇÑ´Ù.

    ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ µé¾î¿À´Â È£ÃâµéÀ» ¼ö¶ôÇÑ´Ù¸éÀº, Ç×»ó NdisClOpenAddressFamily¿¡ ´ëÇÑ ¼º°øÀûÀΠȣÃâ ´ÙÀ½¿¡ NdisClRegisterSap¸¦ È£ÃâÇÔÀ¸·Î½á ProtocolClOpenAfComplete·ÎºÎÅÍ Çϳª³ª ȤÀº ±× ÀÌ»óÀÇ SAPµéÀ» µî·ÏÇØ¾ß ÇÑ´Ù. (Section 1.6.6.2¸¦ ºÁ¶ó.)

    ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ ³ª°¡´Â È£ÃâµéÀ» ÇÑ´Ù¸éÀº, ³ª°¡´Â È£ÃâÀ» ÇÏ´Â Çϳª³ª ±× ÀÌ»óÀÇ Å¬¶óÀÌ¾ðÆ®µé¿¡ ÀÇÇÑ ¿ä±¸ÀÇ ±â´ë·Î ProtocolClOpenAfComplete ÇÔ¼ö³»¿¡ Çϳª³ª ±× ÀÌ»óÀÇ VCµéÀ» ¸¸µé ¼ö ÀÖ´Ù.(Section 1.6.3.1À» ºÁ¶ó.)