ProtocolCmRegisterSap

NDIS_STATUS 

  ProtocolCmRegSap(

      IN NDIS_HANDLE  CallMgrAfContext,

      IN PCO_SAP  Sap,

      IN NDIS_HANDLE  NdisSapHandle,

      OUT PNDIS_HANDLE  CallMgrSapContext

      );

ProtocolCmRegisterSap ÇÔ¼ö´Â ÄÝ ¸Å´ÏÀú°¡ ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇØ SAP(Service Access Point)¸¦ µî·ÏÇÏ´Â °ÍÀ» ¿ä±¸Çϱâ À§ÇØ NDIS¿¡ ÀÇÇØ È£ÃâµÇ´Â ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù.

¸Å°³º¯¼ö

CallMgrAfContext
ÄÝ ¸Å´ÏÀú´Â open´ç AF »óŸ¦ À¯ÁöÇÏ´Â µ¥ ÄÝ ¸Å´ÏÀú ÇÒ´çµÈ ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ÄÝ ¸Å´ÏÀú´Â ÀÌ ÇÚµéÀ» ProtocolCmOpenAf ÇÔ¼ö·ÎºÎÅÍ NDIS¿¡°Ô ÀÌ ÇÚµéÀ» Á¦°øÇÑ´Ù.

Sap
¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®°¡ µî·ÏÇϴ ƯÁ¤ SAP¸¦ Æ÷ÇÔÇÏ´Â ¹Ìµð¾î ƯÁ¤ CO_SAP ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù.

NdisSapHandle
À¯ÀÏÇÏ°Ô ÀÌ·¯ÇÑ SAPÀ» ÁöÁ¤ÇÏ´Â NDIS¿¡ ÀÇÇØ Á¦°øµÈ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ÇÚµéÀº ÄÝ ¸Å´ÏÀú¿¡°Ô ºÒºÐ¸íÇϰí NDIS ¶óÀ̺귯¸® »ç¿ëÀ» À§ÇØ ¿¹¾àµÇ¾ú´Ù.

CallMgrSapContext
¸®ÅÏÇÏÀÚ¸¶ÀÚ, ÄÝ ¸Å´ÏÀú°¡ ÀÌ·¯ÇÑ SAP¿¡ ´ëÇÑ »óŸ¦ À¯ÁöÇÏ´Â ÄÝ ¸Å´ÏÀú Á¦°ø ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

¸®Åϰª

ProtocolCmRegisterSap ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº Çϳª·Î ¿¬»êµéÀÇ »óÅ·Π¸®ÅÏÇÑ´Ù.

NDIS_STATUS_SUCCESS
ÄÝ ¸Å´ÏÀú´Â ¼º°øÀûÀ¸·Î SAP¸¦ µî·ÏÇϰí À¯ÁöÇϱâ À§ÇØ ¾î¶² ÇÊ¿äÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇϰí ÃʱâÈ­ÇÏ´Â °ÍÀ» °¡¸®Å²´Ù. Ãß°¡ÀûÀ¸·Î, ¶ÇÇÑ SAP´Â ÄÝ ¸Å´ÏÀú°¡ Áö¿øÇÏ´Â ³×Æ®¿öÅ© ¹Ìµð¾î¿¡ ÀÇÇØ ÇÊ¿äÇÑ ¸¸Å­ ¼º°øÀûÀ¸·Î µî·ÏµÆ´Ù´Â °ÍÀ» °¡¸®Å²´Ù.

NDIS_STATUS_PENDING
ÄÝ ¸Å´ÏÀú´Â ºñµ¿±âÀûÀ¸·Î ÀÌ·¯ÇÑ ¿ä±¸ÀÇ Ã³¸®¸¦ ¿Ï¼ºÇÒ °ÍÀ» °¡¸®Å²´Ù. ÄÝ ¸Å´ÏÀúµéÀº ¸ðµç 󸮰¡ µî·ÏÀÌ ¸¶ÃÆ´Ù´Â °ÍÀ» NDIS¿¡°Ô ½Ã±×³Î¸µÇϱâ À§ÇØ ¿Ï¼ºµÉ ‹š NdisCmRegisterSapComplete ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

NDIS_STATUS_RESOURCES
Sap¿¡ Á¦°øµÈ »ç¾çÀÌ À¯È¿ÇÏÁö ¾Ê°Å³ª Á¦°øµÉ ¼ö ¾ø´Ù´Â °ÍÀ» °¡¸®Å²´Ù.

NDIS_STATUS_XXX
ÄÝ ¸Å´ÏÀú´Â ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇØ SAPÀ» µî·ÏÇÏ´Â °ÍÀ» ½ÃµµÇÏ´Â °ÍÀÌ ¿¡·¯¸¦ ¸¸³µ´Ù´Â °ÍÀ» °¡¸®Å²´Ù.¸®ÅÏ ÄÚµå´Â ¿¡·¯¿¡ ¸ÂÃçÁö°í ¶ÇÇϳªÀÇ NDIS ¶óÀ̺귯¸® ÇÔ¼ö·ÎºÎÅÍ Àü´ÞµÈ ¸®ÅÏ Äڵ尡 µÉ °ÍÀÌ´Ù.

ÁÖ¼®

ProtocolCmMakeCall ÇÔ¼ö´Â ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇÑ ³×Æ®¿öÅ©¿¡¼­ Sap¸¦ ÁöÁ¤ÇÑ °Íó·³ SAP¸¦ µî·ÏÇϱâ À§ÇØ ÇÊ¿äÇÏ´Ù¸é, ´Ù¸¥ ¹Ìµð¾î ƯÁ¤ ¿¡ÀÌÀüÆ®µé ȤÀº ³×Æ®¿öÅ© Á¦¾î ÀåÄ¡µé°ú Åë½ÅÇÑ´Ù. ±×·¯ÇÑ ÇൿµéÀº Á¦ÇÑÀûÀÌÁö ¾ÊÁö¸¸ ½ºÀ§Äª Çϵå¿þ¾î¿Í Åë½ÅÇÏ´Â °Í, ³×Æ®¿öÅ© Á¦¾î ½ºÅ×À̼ÇÀ» Åë½ÅÇÏ´Â °Í ȤÀº ³×Æ®¿öÅ© ¹Ìµð¾ö¿¡ Àû´çÇÑ ´Ù¸¥ ÇൿµéÀ» Æ÷ÇÔÇÑ´Ù.

¸¸¾à ÄÝ ¸Å´ÏÀú°¡ ³×Æ®¿öÅ© Á¦¾î ¿¡ÀÌÀüÆ®µé°ú(³×Æ®¿öÅ© ½ºÀ§Ä¡) Åë½ÅÇϱâ À§ÇØ ÇÊ¿äµÈ´Ù¸é, ProtocolBindAdapter ÇÔ¼ö·Î ¼³¸³µÈ ³×Æ®¿öÅ© Á¦¾î ¿¡ÀÌÀüÆ®¿Í °¡»ó ¿¬°áÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. È¥ÀÚÀÎ ÄÝ ¸Å´ÏÀúµéÀº NdisCoSendPackets ÇÔ¼ö¸¦ È£ÃâÇÔÀ¸·Î½á ¾Æ·¡ NIC ¹Ì´ÏÆ÷Æ®¸¦ ÅëÇØ Åë½ÅÇÑ´Ù. ÅëÇÕ ÄÝ °ü¸® Áö¿øÀ» ÇÏ´Â NIC ¹Ì´ÏÆ÷Æ®µéÀº °áÄÚ NdisCoSendPackets ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù. ±× ´ë½Å¿¡ ±×µéÀº ³×Æ®¿öÅ©·Î Á÷Á¢ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù. Ãß°¡ÀûÀ¸·Î, ProtocolCmRegisterSap ÇÔ¼ö´Â ÄÝ ¸Å´ÏÀú°¡ ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇØ SAP¿¡ ´ëÇÑ »óÅ Á¤º¸¸¦ À¯ÁöÇÏ´Â µ¥ ÇÊ¿äÇÑ µ¿Àû ÀÚ¿øµé°ú ±¸Á¶Ã¼µéÀÇ ¾î¶² ÇÊ¿äÇÑ ÇÒ´çµéÀ» ÇàÇØ¾ß ÇÑ´Ù. ±×·¯ÇÑ ÀÚ¿øµéÀº ´ÙÀ½°ú °°Àº °Íµé·Î Á¦ÇÑÀûÀÌÁö ¾ÊÁö¸¸ ¸Þ¸ð¸® ¹öÆÛµé, µ¥ÀÌÅÍ ±¸Á¶Ã¼µé, À̺¥Æ®µé, ´Ù¸¥ ±×·¯ÇÑ À¯»çÇÑ ÀÚ¿øµéÀ» Æ÷ÇÔÇÑ´Ù. ÄÝ ¸Å´ÏÀú´Â¶ÇÇÑ NDIS¿¡°Ô Á¦¾î¸¦ ¸®ÅÏÇϱâ Àü¿¡ ÇÒ´çÇÑ ¾î¶² ÀÚ¿øµéÀ» ÃʱâÈ­ÇØ¾ß ÇÑ´Ù. ÄÝ ¸Å´ÏÀúµéÀº ¹Ì·¡ »ç¿ëÀ» À§ÇØ ±×µéÀÇ ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ NdisSapHandle·Î Á¦°øµÈ SAP¸¦ ÁöÁ¤ÇÏ´Â NDIS Á¦°ø ÇÚµéÀ» ÀúÀåÇØ¾ß ÇÑ´Ù.

¸¸¾à ProtocolCmRegisterSap ÇÔ¼ö°¡ NDIS_STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù¸é, SAP´ç »óÅ ¿µ¿ªÀ» ÇÒ´çÇÑ ÈÄ NDIS¿¡°Ô Á¦¾î¸¦ ¸®ÅÏÇϱâ Àü¿¡ CallMgrSapContextÀÎ ÀÌ·¯ÇÑ »óÅ ¿µ¿ª³»ÀÇ ÁÖ¼Ò¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ Çϱâ À§ÇØ, CallMgrSapContext¸¦ ÂüÁ¶ÇÏ´Â °ÍÀ» ÇØÁ¦Çϰí ÇÚµéÀÇ °ªÀ¸·Î¼­ µ¥ÀÌÅÍ ¿µ¿ª¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ÀúÀåÇÑ´Ù. ¿¹¸¦ µé¾î :


*CallMgrSapContext = SomeBuffer;

¸¸¾à ÀÌ¹Ì ¶ÇÇϳªÀÇ ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ µî·ÏµÈ ÁÖ¾îÁø SAPÀ̸é ÄÝ ¸Å´ÏÀú´Â ¿ä±¸¸¦ ½ÇÆÐÇØ¾ß Çϰí NDIS_STATUS_INVALID_DATA¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù.

ÄÝ ¸Å´ÏÀú°¡ ¿¬°á ÁöÇâ Ŭ¶óÀ̾ðÆ®À» À§ÇØ SAPÀ» µî·ÏÇÑ ÈÄ, ±×·¯ÇÑ Å¬¶óÀÌ¾ðÆ®¿¡°Ô NdisCmDispatchIncomingCall ÇÔ¼ö¸¦ È£ÃâÇÔÀ¸·Î½á ±×·¯ÇÑ SAP·Î º¸³»¾îÁö´Â µé¾î¿À´Â È£Ãâ Á¦ÀǸ¦ ¾Ë¸°´Ù.

ProtocolCmRegisterSap ÇÔ¼ö´Â IRQL DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¾²¿©Á®¾ß ÇÑ´Ù.