1.6.4.1 È£ÃâÇϱâ

±×¸² 1.23Àº ÄÝ ¸Å´ÏÀú·ÎºÎÅÍ ³ª°¡´Â È£ÃâÀ» Çϴ Ŭ¶óÀÌ¾ðÆ®¸¦ º¸¿©ÁØ´Ù.

±×¸² 1.23 ÄÝ ¸Å´ÏÀú¸¦ ÅëÇÑ È£Ãâ

±×¸² 1.24´Â MCMÀ» ÅëÇØ ³ª°¡´Â È£ÃâÀ» Çϴ Ŭ¶óÀÌ¾ðÆ®¸¦ º¸¿©ÁØ´Ù.

±×¸² 1.24 MCMÀ» ÅëÇÑ È£Ãâ

³ª°¡´Â È£ÃâÀ» Çϱâ Àü¿¡, ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®´Â ´ÙÀ½°ú °°Àº ÀÏÀ» ÇØ¾ß ÇÑ´Ù:

  • ŸÀÔ CO_CALL_PARAMETERSÀÇ ±¸Á¶Ã¼¿¡ ÄÝ ¸Å°³º¯¼öµéÀ» ÃʱâÈ­ÇÑ´Ù. ÄÝ ¸Å´ÏÀú ȤÀº MCMÀº ÀüÇüÀûÀ¸·Î È£ÃâÀ» ¼³Á¤ÇÏ°í ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ »ç¿ëµÈ ¹Ìµð¾î ¸Å°³º¯¼öµéÀ» ¾ò±â À§ÇØ(derive) Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ÁöÁ¤µÈ ÄÝ ¸Å°³º¯¼öµéÀ» »ç¿ëÇÑ´Ù.
  • NdisCoCreateVc(Section 1.6.3.1À» ºÁ¶ó.)·Î VC ¸¸µå´Â °ÍÀ» ÃʱâÈ­ÇÑ´Ù.
NdisCoCreateVcÀÇ ¼º°øÀûÀÎ ¸®ÅÏÇÏÀÚ ¸¶ÀÚ, Ŭ¶óÀÌ¾ðÆ®´Â È£ÃâÀ» ÃʱâÈ­Çϱâ À§ÇØ NdisClMakeCallÀ» È£ÃâÇÑ´Ù. (±×¸² 1.23 °ú 1.24¸¦ ºÁ¶ó.)

NdisClMakeCall¿¡ ´ëÇÑ È£Ãâ·Î, Ŭ¶óÀÌ¾ðÆ®´Â Àü¿¡ ÃʱâÈ­µÈ CO_CALL_PARAMETERS ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ Àü´ÞÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®°¡ È£ÃâÀ» À§ÇØ µ¥ÀÌÅ͸¦ º¸³¾(±×¸®°í ¹ÞÀ») VC¸¦ ÁöÁ¤ÇÏ´Â NdisVcHandle(NdisCoCreateVc¿¡ ÀÇÇØ ¸®ÅϵÈ)¸¦ Àü´ÞÇÑ´Ù. ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ ¸ÖƼÆ÷ÀÎÆ® È£ÃâÀ» ÇÑ´Ù¸éÀº (ÇϳªÀÇ ¸®¸ðÆ® party ÀÌ»ó¿¡ ´ëÇÑ È£Ãâ), Ŭ¶óÀÌ¾ðÆ®°¡ ¸ÖƼÆ÷ÀÎÆ® VC¿¡¼­ Ãʱâ party¸¦ À§ÇØ party »óÅ´ç À¯ÁöÇÒ Å¬¶óÀÌ¾ðÆ® ÇÒ´ç »óÁÖ ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÏ´Â ProtocolPartyContext¸¦ Àü´ÞÇÑ´Ù.

NdisClMakeCall¿¡ ´ëÇÑ È£ÃâÀº NDIS°¡ Ŭ¶óÀÌ¾ðÆ®°¡ ÁÖ¾îÁø NdisVcHandle¸¦ °øÀ¯ÇÏ´Â ÄÝ ¸Å´ÏÀú ȤÀº MCMÀÇ ProtocolCmMakeCall ÇÔ¼ö¿¡ ´ëÇÑ ÀÌ·¯ÇÑ ¿ä±¸¸¦ Æ÷¿öµåÇϵµ·Ï ÇÑ´Ù. ProtocolCmMakeCallÀº Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ¼³Á¤µÈ ÀÔ·Â ÄÝ ¸Å°³º¯¼öµåÀ» À¯È¿È­ÇØ¾ß ÇÑ´Ù.(validate)

ProtocolCmMakeCallÀº ¿¬°áÀ» Çϱâ À§ÇØ ³×Æ®¿öÅ© Á¦¾î ÀåÄ¡µé°ú Åë½ÅÇÑ´Ù.( ½Ã±×³Î¸µ ¸Þ½ÃÁöµéÀ» ±³È¯ÇÑ´Ù.) ÄÝ ¸Å´ÏÀú´Â ±×·¯ÇÑ ±³È¯À» ÃʱâÈ­Çϱâ À§ÇØ NdisCoSendPacketsÀ» È£ÃâÇÑ´Ù.(Section 1.6.7.1¸¦ ºÁ¶ó.) MCMÀº °áÄÚ NdisCoSendPacketsÀ» È£ÃâÇÏÁö ¾Ê´Â´Ù. ±× ´ë½Å¿¡, Á÷Á¢ ³×Æ®¿öÅ©À» °¡·ÎÁú·¯ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù.

ÄÝ ¸Å´ÏÀú ȤÀº MCMÀº °ü·ÃµÈ ³×Æ®¿öÅ© ºÎºÐµé°ú ±³¼·ÇÏ´Â µ¿¾È Ŭ¶óÀÌ¾ðÆ® Á¦°ø ÄÝ ¸Å°³º¯¼öµéÀ» ¼öÁ¤ÇÒ ¼ö ÀÖ°í Ŭ¶óÀÌ¾ðÆ®°¡ ¿ø·¡ NdisClMakeCall¿¡ Á¦°øÇÏ´Â ´Ù¸¥ Æ®·¡ÇÈ ¸Å°³º¯¼öµéÀ» ¸®ÅÏÇÒ ¼ö ÀÖ´Ù. (Section 1.6.5.2¸¦ ºÁ¶ó.)

ProtocolCmMakeCall¿¡ Àü´ÞµÇ¾îÁö´Â ¿Ü¿¬ÀûÀÎ NdisPartyHandleÀº Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ¸¸µé¾îÁø VC°¡ ¸ÖƼÆ÷ÀÎÆ® È£ÃâÀ» À§ÇØ »ç¿ëµÇ¾îÁú °ÍÀ» °¡¸®Å²´Ù. ÄÝ ¸Å´ÏÀú ȤÀº MCMÀº ¸ÖƼÆ÷ÀÎÆ® È£ÃâÀ» Á¦¾îÇϰí party´ç »óÅ Á¤º¸¸¦ À¯ÁöÇϱâ ÇÊ¿äÇÑ ¾î¶² ÇÊ¿äÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇϰí ÃʱâÈ­ÇØ¾ß ÇÑ´Ù.

ÄÝ ¸Å´ÏÀú°¡ ¹Ìµð¾ö¿¡ ÀÇÇØ ÇÊ¿ä·Î ÇÏ´Â ³×Æ®¿öÅ· Çϵå¿þ¾î¿Í ¸ðµç ÇÊ¿äÇÑ Åë½ÅÀ» ÇàÇÑ ÈÄ¿¡, È£Ãâ µ¥ÀÌÅͰ¡ º¸³»¾îÁö°í ¼ö½ÅµÇ¾îÁú VCÀÇ È°¼ºÈ­¸¦ ÃʱâÈ­Çϱâ À§ÇØ NdisCmActivateVc¸¦ È£Ãâ ÇØ¾ß ÇÑ´Ù.(Section 1.6.3.2¸¦ ºÁ¶ó.) MCMÀº NdisMCmActivateVc¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

¾Æ·¡ NIC ¹Ì´ÏÆ÷Æ®´Â VC¸¦ ÅëÇØ µ¥ÀÌÅÍ Àü¼ÛÀ» ÇÒ Áغñ°¡ µÉ ¶§(Áï, VC°¡ Ȱ¼ºÈ­µÈ ÈÄ¿¡), ÄÝ ¸Å´ÏÀú´Â NdisCmMakeCallComplete¸¦ È£ÃâÇϰí MCMÀº NdisMCmMakeCallComplete¸¦ È£ÃâÇÑ´Ù. ÀÌ Á¡¿¡¼­, ÄÝ ¸Å´ÏÀú ȤÀº MCMÀº VC¸¦ À§ÇÑ ÄÝ ¸Å´ÏÀúµéÀ» ¼³¸³Çϱâ À§ÇØ ³×Æ®¿öÅ©¿Í ±³¼·ÇØ¾ß ÇÏ°í ¾Æ·¡ NIC ¹Ì´ÏÆ÷Æ®´Â VC Ȱ¼ºÀ» ¿Ï¼ºÇØ¾ß ÇÑ´Ù.

Ndis(M)CmMakeCallComplete¿¡ ´ëÇÑ È£ÃâÀº NDIS°¡ ³ª°¡´Â È£ÃâÀ» Çϴ Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolClMakeCallComplete¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù. ProtocolClMakeCallComplete¿¡ ´ëÇÑ È£ÃâÀº ÄÝ ¸Å´ÏÀú°¡ NdisClMakeCall·Î °¡»ó ¿¬°áÀ» ¸¸µé±â À§ÇÑ Å¬¶óÀ̾ðÆ®ÀÇ ¿ä±¸¸¦ ó¸®ÇÏ´Â °ÍÀ» ¿Ï¼ºÇß´Ù´Â °ÍÀ» ¾Ë¸°´Ù.(indicate)

¸¸¾à ³ª°¡´Â È£ÃâÀ» ¸¸µå´Â °Í¿¡ ´ëÇÑ Å¬¶óÀ̾ðÆ®ÀÇ ½Ãµµ°¡ ¼º°øÀûÀ̶ó¸éÀº, ProtocolClMakeCallComplete´Â Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ÁöÁ¤Èº ÄÝ ¸Å°³º¯¼öµéÀÌ ¿ø·¡ ¼öÁ¤µÈ °ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§ÇØ CALL_PARAMETERS_CHANGED Ç÷¡±×¸¦ Ã¼Å©ÇØ¾ß ÇÑ´Ù. ¸¸¾à Ç÷¡±×°¡ ¼³Á¤µÈ´Ù¸éÀº, ÄÝ ¸Å°³º¯¼öµéÀÌ º¯Çß´Ù´Â °ÍÀ» ¾Ë¸®´Â, ProtocolClMakeCallComplete´Â ±×µéÀÌ ÀÌ ¿¬°áÀ» ¼ö¶ôÇÒ ¼ö ÀÖ´ÂÁö¸¦ °áÁ¤Çϱâ À§ÇØ ¸®ÅÏµÈ ÄÝ ¸Å°³º¯¼öµéÀÌ Á¶»çµÇ¾îÁø´Ù.

¸¸¾à ÄÝ ¸Å°³º¯¼öµéÀÌ ¼ö¶ôÇÒ ¼ö ÀÖ´Ù¸éÀº, ProtocolClMakeCallComplete´Â ´ÜÁö Á¦¾î¸¦ ¸®ÅÏÇÑ´Ù. ¸¸¾à ÄÝ ¸Å°³º¯¼öµéÀÌ ¼ö¶ôÇÒ ¼ö ¾ø´Ù¸éÀº ¸¸¾à ½Ã±×³Î¸µ ÇÁ·ÎÅäÄÝÀÌ ÀÌ·¯ÇÑ Æ÷ÀÎÆ®¿¡¼­ ±³¼·À» Çã¶ôÇÑ´Ù¸éÀº, Ŭ¶óÀÌ¾ðÆ®´Â ÄÝ ¸Å°³º¯¼öµé³»¿¡¼­ º¯È­¸¦ ¿ä±¸ÇÏ´Â NdisClModifyCallQos¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. (Section 1.6.5.1À» ºÁ¶ó.) ¸¸¾à ½Ã±×³Î¸µ ÇÁ·ÎÅäÄÝÀÌ ¼ö¶ôÇÒ ¼ö ¾ø´Â ÄÝ ¸Å°³º¯¼öµéÀÇ Àç±³¼·À» Çã¶ôÇÏÁö ¾Ê´Â´Ù¸éÀº, ProtocolClMakeCallCompleteÀº NdisClCloseCall·Î È£ÃâÀ» tear down ÇØ¾ß ÇÑ´Ù. (Section 1.6.8.1À» ºÁ¶ó.)