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¿¡¼ µ¿À۵ɼöÀÖ´Ù.
|