ProtocolClOpenAfComplete

VOID 

  ProtocolClOpenAfComplete(

      IN NDIS_STATUS  Status,

      IN NDIS_HANDLE  ProtocolAfContext,

      IN NDIS_HANDLE  NdisAfHandle

      );

¸ðµç ¿¬°á ÁöÇâ NDIS Ŭ¶óÀÌ¾ðÆ®µéÀº ±×µéÀÌ NdisClOpenAddressFamily·Î ÃʱâÈ­ÇÑ ºñµ¿±â ¿¬»êµéÀ» ¿Ï¼ºÇϱâ À§ÇØ ProtocolClOpenAfComplete ÇÔ¼öµéÀ» °¡Á®¾ß ÇÑ´Ù.

¸Å°³º¯¼ö

Status
´ÙÀ½°ú °°Àº ¾î¶² °ªÀÌ µÉ ¼ö ÀÖ´Â NdisClOpenAddressFamily ÇÔ¼ö¿¡ ´ëÇÑ Å¬¶óÀ̾ðÆ®ÀÇ È£ÃâÀÇ ¸¶Áö¸· »óŸ¦ ÁöÁ¤ÇÑ´Ù.

NDIS_STATUS_SUCCESS
ÁÖ¼Ò ÆÐ¹Ð¸®°¡ ¿­·ÁÀ־ Ŭ¶óÀÌ¾ðÆ®´Â NdisCoRequest, NdisCoCreateVc, NdisClRegisterSap ÇÔ¼ö°°Àº NDIS ÇÔ¼öµé¿¡ ´ëÇÑ ¿¬¼ÓÀûÀΠȣÃâ¿¡¼­ ¸®ÅÏµÈ NdisAfHandleÀ» »ç¿ëÇÒ ¼ö ÀÖ°í ProtocolAfContext¿¡ »óŸ¦ È£±âÈ­ÇÒ ¼ö ÀÖ´Ù.

NDIS_STATUS_RESOURCES
¿ä±¸µÈ ¿¬»êÀÌ NDIS ȤÀº ÄÝ ¸Å´ÏÀú°¡ ÃæºÐÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ ¼ö ¾ø°Å³ª ±×µéÁß Çϳª°¡ ÀÌ·¯ÇÑ ÁÖ¼Ò ÆÐ¹Ð¸®ÀÇ Å¬¶óÀ̾ðÆ®ÀÇ openÀ» ÃßÀûÇϱâ À§ÇØ »ç¿ëÇÑ »óŸ¦ ÃʱâÈ­ÇÒ ¼ö ¾ø´Ù.

NDIS_STATUS_FAILURE
NDIS´Â ´ÙÀ½°ú °°Àº ÀÌÀ¯µé Áß Çϳª·Î ÀÌ·¯ÇÑ È£ÃâÀ» ½ÇÆÐÇÑ´Ù.

  • ÁÖ¾îÁø ÁÖ¼Ò ÆÐ¹Ð¸®°¡ È£Ãâ°¡ ¹ÙÀεåµÈ ¾Æ·¡ NIC ¹Ì´ÏÆ÷Æ®¸¦ À§ÇØ µî·ÏµÈ AF¿Í ÀÏÄ¡ÇÏÁö ¾Ê´Ù.
  • È£ÃâÀÚ°¡ NdisClOpenAddressFamily ÇÔ¼ö¿¡ ClCharacteristics¿¡ À¯È¿ÇÏÁö ¾Ê°Å³ª ºÒÃæºÐÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù.
  • È£ÃâÀÚÀÇ ¾î´ðÅÍ ¹ÙÀεùÀÌ ´ÝÇôÀÖ´Ù.
  • ÁÖ¾îÁø ÁÖ¼Ò ÆÐ¹Ð¸®¸¦ µî·ÏÇÑ ÄÝ ¸Å´ÏÀú´Â ¾î´ðÅÍ ¹ÙÀεùÀ» ´Ý´Â´Ù.

ProtocolAfContext
ÀÌ·¯ÇÑ ÁÖ¼Ò ÆÐ¹Ð¸®¸¦ À§ÇÑ AF´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ Å¬¶óÀÌ¾ðÆ® Á¦°ø ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ·¯ÇÑ ¿µ¿ªÀ» ÇÒ´çÇϰí NdisClOpenAddressFamily ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ¿¡¼­ NDIS¿¡°Ô ÀÌ·¯ÇÑ ÇÚµéÀ» Àü´ÞÇÑ´Ù.

NdisAfHandle
¸¸¾à Status°¡ NDIS_STATUS_SUCCESSÀ̸é, Ŭ¶óÀÌ¾ðÆ®¿Í °°Àº ¿¬°á ÁöÇâ NIC µå¶óÀ̹ö¿¡ ¹ÙÀεåµÈ ƯÁ¤ ÄÝ ¸Å´ÏÀú »çÀÌ¿¡ NDIS¿Í ¼³¸³µÈ °ü·ÃÀ» Ç¥½ÃÇÏ´Â ÀÌ·¯ÇÑ ÁÖ¼Ò ÆÐ¹Ð¸®¿¡ ´ëÇÑ NIDS Á¦°ø À¯È¿ÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÀÌ·¯ÇÑ ¸Å°³º¯¼ö´Â NULLÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â Ç×»ó NdisCl/CoXxx ÇÔ¼öµé¿¡ ´ëÇÑ °è¼ÓÀûÀΠȣÃâ¿¡¼­ ProtocolAfContext ¿µ¿ª¿¡ Ç×»ó À¯È¿ÇÑ ÇÚµéÀ» ÀúÀåÇØ¾ß ÇÑ´Ù.

ÁÖ¼®

ProtocolClOpenAfComplete ÇÔ¼ö¿¡ ´ëÇÑ È£ÃâÀº ´ÙÀ½°ú °°Àº °ÍÀÇ ¸î¸î ȤÀº ¸ðµç ¹ß»ýÇÏ´Â °ÍÀ» °¡¸®Å²´Ù.

  • NDIS´Â Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolCoAfRegisterNotify ÇÔ¼ö°¡ NdisClOpenAddressFamily ÇÔ¼ö·Î Àü´ÞÇÏ´Â ¸î¸î ¸Å°³º¯¼öµéÀ» °Ë»çÇÑ´Ù. ¸¸¾à ¸ðµç °ÍÀÌ À¯È¿ÇÏ´Ù¸é, NDIS´Â Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolClXxx ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» ÀúÀåÇÑ´Ù. ±×·¯¸é, NDIS´Â NDIS¿¡°Ô ƯÁ¤ ÁÖ¼Ò ÆÐ¹Ð¸®¸¦ µî·ÏÇÑ ÄÝ ¸Å´ÏÀúÀÇ ProtocolCmOpenAf ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
  • ÄÝ ¸Å´ÏÀú´Â (ȤÀº ¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ ÅëÇÕ ÄÝ °ü¸® ±â´ÉÀ» °¡Áø NICÀ» Á¦¾îÇÑ´Ù¸é MCM µå¶óÀ̹ö) Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolCoAfRegisterNotify ÇÔ¼ö°¡ AddressFamily¿¡ NdisClAddressFamily·Î Àü´ÞÇÏ´Â ±×¸®°í ÀÌ·¯ÇÑ ÄÝ ¸Å´ÏÀú°¡ NDIS¿¡°Ô À¯È¿ÇÑÁö¸¦ ¸®ÅÏÇÏ´Â »ç¾çÀ» Á¶»çÇÑ´Ù.
¸¸¾à Ŭ¶óÀ̾ðÆ®ÀÇ ÁÖ¼Ò ÆÐ¹Ð¸®¸¦ ¿©´Â ½Ãµµ°¡ ½ÇÆÐÇÑ´Ù¸é, NDIS´Â Ŭ¶óÀÌ¾ðÆ®°¡ NdisClOpenAddressFamily ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ·Î ÇÒ´çÇÑ ÀÚ¿øµéÀ» ÇØÁ¦ÇÒ ¼ö Àְųª ȤÀº Àç»ç¿ëÀ» À§ÇØ ÁغñÇÒ ¼ö ÀÖ´Â ProtocolClOpenAfComplete ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ÀúÀåµÈ »óŸ¦ Áö¿ö¾ß ÇÑ´Ù.

±×·¸Áö ¾ÊÀ¸¸é, ProtocolClOpenAfComplete ÇÔ¼ö´Â Ŭ¶óÀÌ¾ðÆ®°¡ »õ·Ó°Ô ¿­¸° AF¿¡¼­ °è¼ÓÀûÀÎ ¿¬»êµéÀ» À§ÇØ ÇÊ¿äÇÒ Å¬¶óÀÌ¾ðÆ® °áÁ¤ »óŰ¡ ¹«¾ùÀ̵çÁö ¼³Á¤ÇØ¾ß ÇÑ´Ù. ƯÈ÷, Ŭ¶óÀÌ¾ðÆ®´Â Ç×»ó Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolAfContext ¿µ¿ª³»¿¡ ÀÔ·Â NdisAfHandle¸¦ ÀúÀåÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, ProtocolClOpenAfComplete ÇÔ¼ö´Â ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®°¡ °è¼ÓÇØ¼­ ÇÊ¿äÇÒ SAP´ç, VC´ç, party´ç ÄÁÅØ½ºÆ® ¿µ¿ªµéÀÇ µ¿Àû ÇÒ´ç°ú ÇØÁ¦µéÀ» À§ÇØ Çѹø ȤÀº ¿©·¯¹ø Áغñ·Î NdisInitializeNPagedLookasideList ÇÔ¼ö¸¦ È£ÃâÇÒ °ÍÀÌ´Ù.

¸¸¾à µé¾î¿À´Â È£ÃâµéÀ» ¼ö¶ôÇÑ´Ù¸é, Ŭ¶óÀÌ¾ðÆ®´Â SAP´ç »óÅ ¿µ¿ªÀ» ÇÒ´çÇϴ ó¸®¸¦ ÇÒ °ÍÀ̰í NdisClRegisterSap ÇÔ¼ö¸¦ È£ÃâÇÒ °ÍÀÌ´Ù. ¸¸¾à ³ª°¡´Â È£ÃâµéÀ» ÇÑ´Ù¸é, Ŭ¶óÀÌ¾ðÆ®´Â VC´ç »óŸ¦ ÇÒ´çÇϱâ À§ÇØ Ã³¸®ÇÒ °ÍÀÌ°í ¸®¸ðÆ® ³ëµå¿¡ ³ª°¡´Â È£ÃâÀ» ÇÏ´Â ÀÚ½ÅÀÇ Å¬¶óÀÌ¾ðÆ®µéÀÇ Çϳª·ÎºÎÅÍ µé¾î¿À´Â ¿ä±¸ÀÇ ±â´ë·Î NdisCoCreateVc ÇÔ¼ö·Î VC¸¦ ¸¸µé °ÍÀÌ´Ù.

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