NdisCmMakeCallComplete
VOID
NdisCmMakeCallComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE NdisVcHandle,
IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
IN NDIS_HANDLE CallMgrPartyContext OPTIONAL,
IN PCO_CALL_PARAMETERS CallParameters
);
|
NdisCmMakeCallCompleteÇÔ¼ö´Â ³ª°¡´Â È£ÃâÀ» ¸¸µé±âÀ§ÇØ ÄݸŴÏÀú°¡ ÀÌÁ¨¿¡ NDIS_STATUS_PENDINGÀ» ¸®ÅÏÇѰͿ¡´ëÇÑ Å¬¶óÀ̾ðÆ®ÀÇ ¿äû¿¡´ëÇÑ ¸¶Áö¸· »óŸ¦ ¸®ÅÏÇÑ´Ù.
¸Å°³º¯¼ö
- Status
- ¿¬°áÀ» ¸¸µé±âÀ§ÇÑ ½ÃµµÀÇ ¸¶Áö¸· »óŸ¦ ÁöÁ¤ÇÑ´Ù. NDIS_STATUS_SUCCESSȤÀº NDIS_STATUS_PENDINGÀ» Á¦¿ÜÇÑ ¾î¶² CMÀÇÁ¸ NDIS_STATUS_XXX
- NdisVcHandle
- ÄÝ ¸Å´ÏÀú´Â óÀ½¿¡ ProtocolCoCreateVcÇÔ¼öÀÇ ÀÔ·Â ÆÄ¶ó¹ÌÅÍ·Î½á ¾òÀº Ŭ¶óÀÌ¾ðÆ®°¡ »ý¼ºÇÑ VCÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ´õ ÃÖ±Ù¿¡ CMÀº ProtocolCmMakeCallÇÔ¼ö³»·Î ³Ñ°ÜÁø CallMgrVcContext¿¡ÀÇÇØ ¼³°èµÈ VC´ç »óÅ·κÎÅÍ ÀÌ ÇÚµéÀ» ¾ò´Â´Ù.
- NdisPartyHandle
- ÄÝ ¸Å´ÏÀú´Â ProtocolCmMakeCallÇÔ¼ö·ÎÀÇ ÀÔ·Â ÆÄ¶ó¹ÌÅÍ·Î½á ¾ò´Â Ŭ¶óÀÌ¾ðÆ®°¡ »ý¼ºÇÑ ¸ÖƼÆ÷ÀÎÆ® VCÀÇ Ãʱâ party¿¡´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- CallMgrPartyContext
- CMÀÌ party´ç »óÅ Á¤º¸¸¦ À¯ÁöÇÒ È£ÃâÀÚ°¡ ÇÒ´çÇÑ »óÁÖ ÄÁÅýºÆ® ¿µ¿ª¿¡´ëÇÑ CMÁö¿ø ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ¸¸¾à NdisPartyHandle°¡ NULLÀ̸é NULLÀÌ´Ù. ¸ÖƼÆ÷ÀÎÆ® VC¿¡´ëÇØ, NDIS´Â ¸ðµç ¼øÂ÷ÀûÀΠȣÃâµé¿¡¼ÀÇ CMÁö¿ø CallManagerPartyContextÇÚµéÀ» ÀÌ party·Î °£ÁÖÇÏ´Â ProtocolCmXxxÇÔ¼ö¿¡°Ô ³Ñ°ÜÁØ´Ù.
- CallParameters
- ¸¸¾à »óŰ¡ NDIS_STATUS_SUCCESSÀ̸é, ÀÌ ¿¬°áÀ» ¼³Á¤ÇÏ´Â ÄÝ ÆÄ¶ó¹ÌÅ͵éÀ» ÁöÁ¤ÇÏ´Â CO_CALL_PARAMETERSŸÀÔ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ.
ÁÖ¼®
µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú´Â ´ÜÁö ÇÏÀ§ ´Ð ¹Ì´ÏÆ÷Æ®°¡ VC¿¡´ëÇÑ µ¥ÀÌŸ Æ®·£½ºÆÛµé ¸¸µé±âÀ§ÇØ ÁغñµÅ¾úÀ»¶§¸¸ NDIS_STATUS_SUCCESS·Î NdisMCmMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇØ¾ß¸¸ ÇÑ´Ù. Áï, ÄÝ ¸Å´ÏÀú´Â VC¿¡´ëÇÑ ÄÝ ÆÄ¶ó¹ÌÅ͵éÀ» ¼º¸³ÇϱâÀ§ÇØ ³×Æ®¿÷°ú Çù»óÇÏ°í ¼º°øÀûÀ¸·Î NdisCmActivateVcÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
¸¸¾à ProtocolCmMakeCallÇÔ¼ö°¡ ÁÖ¾îÁø NdisVcHandle¿¡´ëÇØ ÀÌÀü¿¡ NDIS_STATUS_PENDINGÀ» ¸®ÅÏÇß´Ù¸é µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú´Â NdisCmMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇØ¾ß¸¸ ÇÑ´Ù. CMÀÌ NDIS_STATUS_SUCCESS·Î NdisCmMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇÒ¶§±îÁö Áö¿¬µÈ ³ª°¡´Â È£ÃâÀ» ÃʱâÈÇϴ Ŭ¶óÀÌ¾ðÆ®´Â Àü¼ÛÀ» ¸¸µé±âÀ§ÇØ VC¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
½ÉÁö¾î ½ÃµµµÈ ¿¬°áÀÌ ½ÇÆÐÇÑ´Ù¸é, CMÀÇ NdisCmMakeCallCompleteÇÔ¼öÀÇ È£ÃâÀÌ ±× Ŭ¶óÀ̾ðÆ®ÀÇProtocolClMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÒ¶§±îÁö, NDIS¿Í Ŭ¶óÀÌ¾ðÆ®°¡ ±×µéÀÌ »óŸ¦ À¯ÁöÇϱâÀ§ÇØ ÇÒ´çÇÑ ¸®¼Ò½ºµéÀ» ÇØÁ¦ÇÒ ¼ö ¾ø´Ù. »ç½Ç ±×·± ¿¬°áÀ» ¼³Á¤ÇÏ´Â ½ÇÆÐÇÑ ½Ãµµ¿¡´ëÇÑ NdisCmMakeCallCompleteÇÔ¼öÀÇ È£ÃâÀ» ¹«½ÃÇϴ°ÍÀº ÄÝ ¸Þ´ÏÀú³»ÀÇ ¸Þ¸ð¸® ´©ÃâÀ» ¾ß±âÇÑ´Ù. ¶ÇÇÑ ±×°ÍÀº ³ª°¡´Â È£ÃâÀ» ½ÇÆÐÇѰͿ¡´ëÇØ »ý¼ºµÈ VC¸¦ ÇØÁ¦Çϴ°ÍÀ¸·ÎºÎÅÍ Å¬¶óÀÌ¾ðÆ®¸¦ ¿¹¹æÇÏ¿© CMÀÌ VC¿¡´ëÇØ ÇÒ´çÇÑ ¸®¼Ò½ºµéÀ» ÇØÁ¦ÇϱâÀ§ÇÑ È£ÃâÇÏÁö¾Ê´Â´Ù.
¸¸¾à CMÀÌ »óÅ¿¡´ëÇØ NDIS_STATUS_FAILURE¿Í °°Àº ¿¡·¯¸¦ ³Ñ±ä´Ù¸é, NdisCmMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇÏÀÚ¸¶ÀÚ NdisPartyHandleÀ» ¹«È¿ÇÏ´Ù°í °£ÁÖÇÑ´Ù. CMÀº NdisCmMakeCallCompleteÇÔ¼ö°¡ ÄÁÃß·²À» ¸®ÅÏÇÒ¶§ ÁÖ¾îÁø party¿¡´ëÇÑ »óŸ¦ À¯ÁöÇϱâÀ§ÇØ ÇÒ´çÇÑ ¾î¶² ¸®¼Ò½ºµéÀ» ÇØÀç(ȤÀº Àç»ç¿ëÀ» À§ÇÑ ÀçÃʱâÈ)¸¦ ÇÒ¼ö ÀÖ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ ÃʱâÈÇÑ ³ª°¡´Â È£ÃâÀ» ¼³Á¤ÇÏ´Â ÄÚ½º¿¡¼, CMÀº óÀ½¿¡ ProtocolCmMakeCallÇÔ¼ö¿¡°Ô ³Ñ°ÜÁØ Å¬¶óÀÌ¾ðÆ® Á¦°ø ÄÝ ÆÄ¶ó¹ÌÅ͵éÀ» ¼öÁ¤ÇÒ¼ö ÀÖ´Ù. ¸¸¾à ±×·¸°Ô ÇÑ´Ù¸é, CMÀº NdisCmMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇÒ¶§ ±× ¼öÁ¤º»À» CallParametersÀÇ ¹öÆÛ¿¡ ³Ñ°Ü¾ß¸¸ÇÑ´Ù. ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ ¼öÁ¤µÈ ÄÝ ÆÄ¶ó¹ÌÅ͵éÀ» ¹Þ¾ÆµéÀϼö ¾ø´Ù¸é, ±× ÄÝÀ» ÇØÁ¦ÇÒ°ÍÀÌ´Ù. À̰ÍÀº ¶ÇÇÑ ProtocolCoDeleteVcÇÔ¼öÀÇ È£ÃâÀ» ¾ß±âÇÑ´Ù.
½º½º·Î NDIS·Î ÇÁ·ÎÅäÄݷμ µî·ÏÇÏ´Â µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú¸¸ÀÌ NdisCmMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇÒ¼ö ÀÖ´Ù. ÅëÇÕ ÄÝ ¸Å´ÏÁö¸ÕÆ®¸£ Áö¿øÇÏ´Â ´Ð ¹Ì´ÏÆ÷Æ®µéÀº ´ë½Å NdisMCmMakeCallCompleteÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
NdisCmMakeCallCompleteÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼ µ¿À۵ɼö ÀÖ´Ù.
|