NdisClOpenAddressFamily

NDIS_STATUS 

  NdisClOpenAddressFamily(

    IN NDIS_HANDLE  NdisBindingHandle,

    IN PCO_ADDRESS_FAMILY  AddressFamily,

    IN NDIS_HANDLE  ProtocolAfContext,

    IN PNDIS_CLIENT_CHARACTERISTICS  ClCharacteristics,

    IN UINT  SizeOfClCharacteristics,

    OUT PNDIS_HANDLE  NdisAfHandle

    );

NdisClOpenAddressFamilyÇÔ¼ö´Â Ưº°ÇÑ ÄÝ ¸Þ´ÏÁ®¿¡ÀÇÇØ µî·ÏµÇ´Â ¾îµå·¹½º ÆÐ¹Ð¸®¸¦ »ç¿ëÇϴ Ưº°ÇÑ NICÀ» ÅëÇØ ¿¬°áÁöÇâ Åë½Å¿¡´ëÇÑ Å¬¶óÀÌ¾ðÆ® Á¦°ø ÇÔ¼öµéÀÇ ¼³Á¤À» µî·ÏÇÑ´Ù.

¸Å°³º¯¼ö

NdisBindingHandle
Ÿ°Ù ´ÐÀ» È®ÀÎÇϰųª È£ÃâÀÚ°¡ ¹ÙÀεùµÈ ´ÙÀ½ ÇÏÀ§µå¶óÀ̹öÀÇ °¡»ó ¾Æ´äÅ͸¦ È®ÀÎÇÏ´Â NdisOpenAdapterÇÔ¼ö¿¡ÀÇÇØ ¸®ÅÏµÈ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

AddressFamily
¿­·ÁÁø ¾îµå·¹½º ÆÐ¹Ð¸®¿Í ÄݸŴÏÀú¸¦ ¼³¸íÇÏ´Â CO_ADDRESS_FAMILYŸÀÔÀÇ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ.

ÀÌ Æ÷ÀÎÅʹ Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolCoAfRegisterNotifyÇÔ¼ö¿¡´ëÇÑ ÀÔ·Â ÆÄ¶ó¹ÌÅÍÀÌ´Ù. À̰ÍÀº NdisClOpenAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

ProtocolAfContext
Ŭ¶óÀÌ¾ðÆ®°¡ ¿­·ÁÁøÈÄ ÀÌ ¾îµå·¹½º ÆÐ¹Ð¸®¿¡´ëÇÑ »óŸ¦ À¯ÁöÇϴ ȣÃâÀÚ Á¦°ø »óÁÖ ÄÁÅýºÆ® ¿µ¿ª¿¡´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ¸¸¾à NdisClOpenAddressFamilyÇÔ¼öÀÇ È£ÃâÀÌ ¼º°øÇϸé, NDIS´Â ÀÌÇÚµéÀ» ´Ù½Ã ÀÌ ¾îµå·¹½º ÆÐ¹Ð¸®·Î »ý°¢ÇÏ´Â ¸ðµç ¼øÂ÷ÀûÀΠȣÃâ³»ÀÇ Å¬¶óÀÌ¾ðÆ®¿¡°Ô ³Ñ°ÜÁØ´Ù.

ClCharacteristics
È£ÃâÀÚ¿¡ÀÇÇØ ¼³Á¤µÇ´Â NDIS_CLIENT_CHARACTERISTICSÀÇ Æ÷ÀÎÅÍ. ClCharacteristicsÀÇ ±¸Á¶Ã¼´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵȴÙ.:

typedef struct _NDIS_CLIENT_CHARACTERISTICS {

    UCHAR   MajorVersion;

    UCHAR   MinorVersion;

    USHORT  Filler;           // ½Ã½ºÅÛ »ç¿ëÀ» À§ÇØ ¿¹¾à

    UINT    Reserved;         // ½Ã½ºÅÛ »ç¿ëÀ» À§ÇØ ¿¹¾à

    CO_CREATE_VC_HANDLER  ClCreateVcHandler;

    CO_DELETE_VC_HANDLER  ClDeleteVcHandler;

    CO_REQUEST_HANDLER  ClRequestHandler;

    CO_REQUEST_COMPLETE_HANDLER  ClRequestCompleteHandler;

    CL_OPEN_AF_COMPLETE_HANDLER  ClOpenAfCompleteHandler;

    CL_CLOSE_AF_COMPLETE_HANDLER  ClCloseAfCompleteHandler;

    CL_REG_SAP_COMPLETE_HANDLER  ClRegisterSapCompleteHandler;

    CL_DEREG_SAP_COMPLETE_HANDLER  ClDeregisterSapCompleteHandler;

    CL_MAKE_CALL_COMPLETE_HANDLER  ClMakeCallCompleteHandler;

    CL_MODIFY_CALL_QOS_COMPLETE_HANDLER

                                    ClModifyCallQoSCompleteHandler;

    CL_CLOSE_CALL_COMPLETE_HANDLER  ClCloseCallCompleteHandler;

    CL_ADD_PARTY_COMPLETE_HANDLER  ClAddPartyCompleteHandler;

    CL_DROP_PARTY_COMPLETE_HANDLER  ClDropPartyCompleteHandler;

    CL_INCOMING_CALL_HANDLER  ClIncomingCallHandler;

    CL_INCOMING_CALL_QOS_CHANGE_HANDLER

                                    ClIncomingCallQoSChangeHandler;

    CL_INCOMING_CLOSE_CALL_HANDLER  ClIncomingCloseCallHandler;

    CL_INCOMING_DROP_PARTY_HANDLER  ClIncomingDropPartyHandler;

    CL_CALL_CONNECTED_HANDLER  ClCallConnectedHandler;

} NDIS_CLIENT_CHARACTERISTICS, *PNDIS_CLIENT_CHARACTERISTICS;

µå¶óÀ̹ö´Â ÀÌ ±¸Á¶Ã¼¸¦ ´ÙÀ½ ¸â¹ù¸£ÀÇ ¼³Á¤Àü¿¡ 0À¸·Î ÃʱâÈ­ ÇØ¾ßÇÑ´Ù.:

MajorVersion
Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÏ´Â ÀÌ ±¸Á¶Ã¼ÀÇ ¸ÞÀÌÁ® ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÇöÀç °ªÀº 0x05ÀÌ´Ù.

MinorVersion
Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÑ´À ÀÌ ±¸Á¶Ã¼ÀÇ ¸¶ÀÌ³Ê ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÇöÀç °ªÀº 0x00ÀÌ´Ù.

Filler ¿Í Reserved
È£ÃâÀÚ´Â ÀÌ ±¸Á¶Ã¼¸¦ 0À¸·Î ÃʱâÈ­ ÇÑÈÄ ÀÌ·¯ÇÑ ¸â¹öµéÀ» ¹«½ÃÇØ¾ß¸¸ÇÑ´Ù.

ClCreateVcHandler
È£ÃâÀÚÀÇ ProtocolCoCreateVcÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClDeleteVcHandler
È£ÃâÀÚÀÇ ProtocolCoDeleteVcÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClRequestHandler
È£ÃâÀÚÀÇ ProtocolCoRequestÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClRequestCompleteHandler
È£ÃâÀÚÀÇ ProtocolCoRequestCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClOpenAfCompleteHandler
È£ÃâÀÚÀÇ ProtocolClOpenAfCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClCloseAfCompleteHandler
È£ÃâÀÚÀÇ ProtocolClCloseAfCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClRegisterSapCompleteHandler
È£ÃâÀÚÀÇ ProtocolClRegisterSapCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¸®¸ðÆ® ¸Ó½ÅÀ¸·ÎºÎÅÍ µé¾î¿À´Â È£ÃâÀ» ¹Þ¾ÆµéÀ̱âÀ§ÇØ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

ClDeregisterSapCompleteHandler
È£ÃâÀÚÀÇ ProtocolClDeregisterSapCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClMakeCallCompleteHandler
È£ÃâÀÚÀÇ ProtocolClMakeCallCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¸®¸ðÆ® ¸Ó½ÅÀ¸·Î ³ª°¡´Â´Â È£ÃâÀ» ¸¸µé±âÀ§ÇØ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

ClModifyCallQoSCompleteHandler
È£ÃâÀÚÀÇ ProtocolClModifyCallQoSCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¼º¸³µÈ VC¿¡´ëÇÑ ¼­ºñ½º Áú¿¡ º¯È­¸¦ µ¿ÀûÀ¸·Î ¸¸µé±â À§ÇØ ÀÌÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ȤÀº ÄݸŴÏÀú¿Í µé¾î¿À´Â È£ÃâÀ» ¼³Á¤ÇÒ¶§ QoS¸¦ ¼³Á¤ÇϱâÀ§ÇÑ Çù»óÀ» ÇϱâÀ§ÇØ È£ÃâÇÑ´Ù.

ClCloseCallCompleteHandler
È£ÃâÀÚÀÇ ProtocolClCloseCallCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClAddPartyCompleteHandler
È£ÃâÀÚÀÇ ProtocolClAddPartyCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¸®¸ðÆ® ¸Ó½ÅÀ¸·Î ³ª°¡´Â È£Ãâ¿¡´ëÇÑ Æ÷ÀÎÆ®-TO-¸ÖƼÆ÷ÀÎÆ®¸¦ ¼³Á¤ÇϱâÀ§ÇØ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

ClDropPartyCompleteHandler
È£ÃâÀÚÀÇ ProtocolClDropPartyCompleteÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClIncomingCallHandler
È£ÃâÀÚÀÇ ProtocolClIncomingCallÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¸®¸ðÆ® ¸Ó½ÅÀ¸·ÎºÎÅÍ µé¾î¿À´Â È£ÃâÀ» ¹Þ¾ÆµéÀ̱âÀ§ÇØ ÀÌÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

ClIncomingCallQoSChangeHandler
È£ÃâÀÚÀÇ ProtocolClIncomingCallQoSChangeÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â º¸³»±â Ŭ¶óÀÌ¾ðÆ®°¡ QoS¸¦ µ¿ÀûÀ¸·Î º¯È­½Ãų¼ö Àִٴ°Ϳ¡´ëÇØ ¸®¸ðÆ® ¸Ó½ÅÀ¸·ÎºÎÅÍ µé¾î¿À´Â È£ÃâÀ» ¹Þ¾ÆµéÀ̱âÀ§ÇØ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

ClIncomingCloseCallHandler
È£ÃâÀÚÀÇ ProtocolClIncomingCloseCallÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClIncomingDropPartyHandler
È£ÃâÀÚÀÇ ProtocolClIncomingDropPartyÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù.

ClCallConnectedHandler
È£ÃâÀÚÀÇ ProtocolClCallConnectedÇÔ¼öÀÇ Æ÷ÀÎÅÍ ¿£Æ®¸®¸¦ ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¸®¸ðÆ® ¸Ó½ÅÀ¸·Î ºÎÅÍ µé¾î¿À´Â È£ÃâÀ» ¹Þ¾ÆµéÀ̱âÀ§ÇØ ÀÌÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

SizeOfClCharacteristics
ClCharacteristicsÀÇ ±¸Á¶Ã¼ÀÇ ¹ÙÀÌÆ® »çÀÌÁ ÁöÁ¤ÇÑ´Ù.

NdisAfHandle
ÀÌÇÔ¼ö°¡ »õ·Ó°Ô ¿­¸° ¾îµå·¹½º ÆÐ¹Ð¸®¸¦ ³ªÅ¸³»´Â ÇÚµéÀ» ¸®ÅÏÇÏ´Â °Í¿¡¼­ÀÇ È£ÃâÀÚ Á¦°ø º¯¼öÀÇ Æ÷ÀÎÅÍ.

¸®Åϰª

NdisClOpenAddressFamilyÇÔ¼ö°¡ NDIS_STATUS_PENDINGÀÌ¿ÜÀÇ ´Ù¸¥°ÍÀ» ¸®ÅÏÇÒ¶§, Ŭ¶óÀÌ¾ðÆ° ProtocolClOpenAfCompleteÇÔ¼öÀÇ ³»ºÎÀûÀΠȣÃâÀ» ¸¸µé¾î¾ß¸¸ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, NDIS´Â Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolClOpenAfCompleteÇÔ¼ö¸¦ ÀÌ¿¬»êÀÌ ¿Ï·áµÉ¶§ È£ÃâÇÑ´Ù.

ÁÖ¼®

Ŭ¶óÀÌ¾ðÆ®°¡ Äݸ޴ÏÀú¿Í µî·ÏµÈ ¾îµå·¹½ºµéÀ» ÀÎÁ¤ÇÏ´ÂÁö¸¦ °áÁ¤ÇϱâÀ§ÇØ AddressFamilyÀÇ ÀÔ·Â ¹öÆÛ¸¦ äŷÇÑÈÄ, ¿¬°áÁöÇâ Ŭ¶óÀÌ¾ðÆ®´Â ProtocolCoAfRegisterNotifyÇÔ¼ö·Î ºÎÅÍ NdisClOpenAddressFamilyÇÔ¼ö¸¦È£ÃâÇÑ´Ù. NDIS´Â Ŭ¶óÀ̾ðÆ®ÀÇ NdisClOpenAddressFamilyÈ£ÃâÀ» ÄÝ ¸Þ´ÏÁ®ÀÇ ProtocolCmOpenAfÇÔ¼ö¿¡°Ô Æ÷¿öµåÇÑ´Ù. À̰ÍÀº Ŭ¶óÀÌ¾ðÆ®°¡ Ÿ´çÇÑ ¾îµå·¹½º ÆÐ¹Ð¸® ±¸Á¶Ã¼³»¿¡ ³Ñ°ÜÁÖ´Â °ÍÀ» È®½ÅÇÑ´Ù.

Ŭ¶óÀÌ¾ðÆ®´Â ¸ðµç ClXxx¸â¹ö¸¦ È£ÃâÀÚ Á¦°ø ProtocolCl/CoXxxÇÔ¼ö·Î NDIS_CLIENT_CHARACTERISTICS±¸Á¶Ã¼³»¿¡ ¼³Á¤Çؾ߸¸ÇÑ´Ù. NdisClOpenAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÒ¶§, ½ÉÁö¾î ¸¸¾à µé¾î¿À´Â È£Ãâ, ³ª°¡´Â È£Ãâ ȤÀº Æ÷ÀÎÅÍ-TO-¸ÖƼÆ÷ÀÎÆ® ¿¬°áÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù ÇÏ¿©µµ. ±×·± Ŭ¶óÀÌ¾ðÆ®°¡ Áö¿øÇÏÁö¾Ê´Â ¿¬°á ÁöÇâ ±â´ÉÀÇ ¾î¶°ÇÑ ºÎºÐÀÏÁö¶óµµ ProtocolCl/CoXxxÇÔ¼ö´Â °£´ÜÈ÷ NDIS_STATUS_NOT_SUPPORTED¸¦ ¸®ÅÏÇÑ´Ù.

NdisClOpenAddressFamilyÀÇ ¼º°øÀûÀΠȣÃâÀº Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ °°Àº ´Ð°ú ¹ÙÀεùÇϴ Ưº°ÇÑ ÄÝ ¸Å´ÏÀú¸¦ ÅëÇÑ ¿¬°áÁöÇâ ´Ð µå¶óÀ̹ö±îÁö ȤÀº Ŭ¶óÀÌ¾ðÆ®°¡ ¹ÙÀεùµÈ ´Ð¿¡´ëÇØ ÅëÇÕ MCMµå¶óÀ̹ö±îÁö Åë½ÅÀ» ¼³Á¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ±×¸®°í³ª¼­ ½º½º·Î NdisClRegisterSapÇÔ¼ö·Î µé¾î¿À´Â È£ÃâÀ» ¹ÞÀ» Áغñ¸¦ ÇÒ¼öÀְųª ȤÀº NdisClMakeCallÇÔ¼ö·Î ³ª°¡´Â È£ÃâÀ» ¸¸µé±âÀ§ÇØ NdisCoCreateVcÇÔ¼ö·Î °¡»ó ¿¬°áÀ» ¼³Á¤ÇÒ¼öÀÖ´Ù.

¸¸¾à NdisClOpenAddressFamilyÇÔ¼öÀÇ È£ÃâÀÌ ½ÇÆÐÇϸé, Ŭ¶óÀÌ¾ðÆ®´Â ÇÏÀ§ ´Ð µå¶óÀ̹ö¿ÍÀÇ ¹ÙÀεùÀ» ÇØÁ¦ÇϱâÀ§ÇØ NdisCloseAdapterÇÔ¼ö¸¦ È£ÃâÇØ¾ß¸¸ÇÑ´Ù.

±×·¸Áö ¾ÊÀ¸¸é, Ŭ¶óÀÌ¾ðÆ®´Â NdisAfHandle¿¡ ¸®ÅÏµÈ ÇÚµéÀ» ÀúÀåÇØ¾ß¸¸ÇÑ´Ù. ÀÌ ÇÚµéÀº ÁÖ¾îÁø ¾îµå·¹½º ÆÐ¹Ð¸®·Î °£ÁÖÇÏ´Â ¼øÂ÷ÀûÀÎ ¿äûµé¿¡´ëÇÑ ÄݸŴÏÀú¸¦ È®ÀÎÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ ¸®ÅÏµÈ ÇÚµéÀ» ¼øÂ÷ÀûÀΠȣÃâ¿¡¼­ ¼öÁ¤µÇÁö¾Ê°í ÇØ¼®µÇÁö¾Ê´Â °ÍÀ» ¾î¶²NDIS¶óÀ̺귯¸® ÇÔ¼ö¿¡°Ô ³Ñ°ÜÁÖ´Â ¸ðÈ£ÇÑ º¯¼ö·Î½á ´Ù·ç¾î¾ß¸¸ÇÑ´Ù. ÀϹÝÀûÀ¸·Î, NdisClOpenAddressFamilyÀÇ È£ÃâÀÚ´Â NdisAfHandleÆ÷ÀÎÅ͸¦ ProtocolAfContext¿¡ Ŭ¶óÀÌ¾ðÆ® ÇÒ´ç »óÅ ¿µ¿ª³»¿¡ ÀúÀåµÈ º¯¼ö¿¡°Ô ³Ñ°ÜÁØ´Ù.

Ŭ¶óÀÌ¾ðÆ®°¡ °°Àº NdisAfHandle·Î NdisClCloseAddressFamilyÇÔ¼ö¸¦ È£Ãâ ÇÒ¶§±îÁö NDIS´Â ProtocolAfContextÆ÷ÀÎÅ͸¦ ÀÌ ¾îµå·¹½º ÆÐ¹Ð¸®·Î °£ÁÖÇÏ´Â ¸ðµç ¼øÂ÷ÀûÀΠȣÃâ³»ÀÇ Å¬¶óÀ̾ðÆ®ÀÇ µî·ÏµÈ ProtocolClXxxÇÔ¼öµé¿¡°Ô ³Ñ±ä´Ù. ¾îµå·¹½º ÆÐ¹Ð¸®°¡ ´ÝÇôÁøÈÄ, Ŭ¶óÀÌ¾ðÆ®´Â ProtocolAfContext¿¡ ÇÒ´çÇÑ ÀúÀåÀå¼Ò¸¦ ÇØÀçÇϰí Àç»ç¿ëÇÒ ¼öÀÖ´Ù.

NdisClOpenAddressFamilyÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL < DISPATCH_LEVEL¿¡¼­ µ¿À۵ɼöÀÖ´Ù.