NdisMCmRegisterAddressFamily

NDIS_STATUS

  NdisMCmRegisterAddressFamily(

    IN NDIS_HANDLE  MiniportAdapterHandle,

    IN PCO_ADDRESS_FAMILY  AddressFamily,

    IN PNDIS_CALL_MANAGER_CHARACTERISTICS  CmCharacteristics,

    IN UINT  SizeOfCmCharacteristics

    );

NdisMCmRegisterAddressFamilyÇÔ¼ö´Â MCMµå¶óÀ̹ö ÁöÁ¤ ¾îµå·¹½º Æä¹Ð¸®·ÎÀÇ ¿¬°áÁöÇâ Åë½Å¿¡´ëÇÑ ÄݸŴÏÀú ÇÔ¼öÀÇ ¼³Á¤À» µî·ÏÇÑ´Ù.

¸Å°³º¯¼ö

MiniportAdapterHandle
¹Ì´ÏÆ÷Æ®ÀÇ ´ÐÀ» È®ÀÎÇÏ´Â NDISÁ¦°ø ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ÇÚµéÀº ´Ð µå¶óÀ̹öÀÇ MiniportInitializeÇÔ¼ö¿¡´ëÇÑ ÀÔ·Â ÆÄ¶ó¹ÌÅÍÀÌ´Ù. À̰ÍÀº NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

AddressFamily
MCMµå¶óÀ̹ö°¡ Á¦°øÇÏ´Â ¾îµå·¹½º ÆÐ¹Ð¸®¸¦ È®ÀÎÇÏ´Â CO_ADDRESS_FAMILYÀÇ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ.

ÁÖ¾îÁø AddressFamily´Â ÀÌ MCMµå¶óÀ̹ö¿¡°Ô ¹ÙÀεùµÈ ¸ðµç Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolCoAfRegisterNotifyÇÔ¼ö¿¡´ëÇÑ ÀÔ·Â ÆÄ¶ó¹ÌÅͰ¡ µÈ´Ù.

CmCharacteristics
È£ÃâÀÚ¿¡ÀÇÇØ ¼³Á¤µÇ´Â NDIS_CALL_MANAGER_CHARACTERISTICS±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ. CmCharacteristics¿¡ ±¸Á¶Ã¼´Â ´ÙÀ½Ã³·³ Á¤ÀǵȴÙ.:

typedef struct _NDIS_CALL_MANAGER_CHARACTERISTICS {

    UCHAR  MajorVersion;

    UCHAR  MinorVersion;

    USHORT  Filler;           // reserved for system use

    UINT    Reserved;         // reserved for system use

    CO_CREATE_VC_HANDLER  CmCreateVcHandler;

    CO_DELETE_VC_HANDLER  CmDeleteVcHandler;

    CM_OPEN_AF_HANDLER  CmOpenAfHandler;

    CM_CLOSE_AF_HANDLER  CmCloseAfHandler;

    CM_REG_SAP_HANDLER  CmRegisterSapHandler;

    CM_DEREG_SAP_HANDLER  CmDeregisterSapHandler;

    CM_MAKE_CALL_HANDLER  CmMakeCallHandler;

    CM_CLOSE_CALL_HANDLER  CmCloseCallHandler;

    CM_INCOMING_CALL_COMPLETE_HANDLER

                             CmIncomingCallCompleteHandler;

    CM_ADD_PARTY_HANDLER  CmAddPartyHandler;

    CM_DROP_PARTY_HANDLER  CmDropPartyHandler;

    CM_ACTIVATE_VC_COMPLETE_HANDLER  CmActivateVcCompleteHandler;

    CM_DEACTIVATE_VC_COMPLETE_HANDLER

                             CmDeactivateVcCompleteHandler; 

    CM_MODIFY_CALL_QOS_HANDLER  CmModifyCallQoSHandler;

    CO_REQUEST_HANDLER  CmRequestHandler;

    CO_REQUEST_COMPLETE_HANDLER  CmRequestCompleteHandler;

} NDIS_CALL_MANAGER_CHARACTERISTICS, *PNDIS_CALL_MANAGER_CHARACTERISTICS;

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

MajorVersion
ÀÌ ±¸Á¶Ã¼ÀÇ ¸ÞÀÌÁ® ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÇöÀç ¹öÀüÀº 0x05ÀÌ´Ù.

MinorVersion
ÀÌ ±¸Á¶Ã¼ÀÇ ¸¶ÀÌ³Ê ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÇöÀç ¹öÀüÀº 0x00ÀÌ´Ù.

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

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

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

CmOpenAfHandler
È£ÃâÀÚÀÇ ProtocolCmOpenAfÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmCloseAfHandler
È£ÃâÀÚÀÇ ProtocolCmCloseAfÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmRegisterSapHandler
È£ÃâÀÚÀÇ ProtocolCmRegisterSapÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmDeregisterSapHandler
È£ÃâÀÚÀÇ ProtocolCmDeregisterSapÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmMakeCallHandler
È£ÃâÀÚÀÇ ProtocolCmMakeCallÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmCloseCallHandler
È£ÃâÀÚÀÇ ProtocolCmCloseCall ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmIncomingCallCompleteHandler
È£ÃâÀÚÀÇ ProtocolCmIncomingCallComplete ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmAddPartyHandler
È£ÃâÀÚÀÇ ProtocolCmAddParty ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmDropPartyHandler
È£ÃâÀÚÀÇ ProtocolCmDropParty ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmActivateVcCompleteHandler
È£ÃâÀÚÀÇ ProtocolCmActivateVcComplete ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmDeactivateVcCompleteHandler
È£ÃâÀÚÀÇ ProtocolCmDeactivateVcComplete ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CmModifyCallQoSHandler
È£ÃâÀÚÀÇ ProtocolCmModifyCallQoS ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

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

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

SizeOfCmCharacteristics
CmCharacteristics¿¡ ±¸Á¶Ã¼ÀÇ ¹ÙÀÌÆ®³»ÀÇ »çÀÌÁ ÁöÁ¤ÇÑ´Ù.

¸®Åϰª

NdisMCmRegisterAddressFamilyÇÔ¼ö´Â ´ÙÀ½Áß ¾î¶² °ÍÀ» ¸®ÅÏÇÒ¼ö ÀÖ´Ù.:

NDIS_STATUS_SUCCESS
¹Ì´ÏÆ÷Æ®´Â NDIS·Î ÁÖ¾îÁø ¾îµå·¹½º ÆÐ¹Ð·Î¿¡´ëÇØ ÄÝ ¸Å´ÏÀú·Î½á µî·ÏµÇ¾ú´Ù. ±×·¡¼­ NDIS´Â ÀÌ MCM ´Ð µå¶óÀ̹ö¿¢ ½º½º·Î ¹ÙÀεùÇÏ´Â ¸ðµç Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolCoAfRegisterNotifyÇÔ¼ö¸¦ È£ÃâÇÒ °ÍÀÌ´Ù.

NDIS_STATUS_RESOURCES
¿äûµÈ ¿¬»êÀº ½ÇÆÐÇß´Ù. ¿Ö³ÄÇϸé, NDIS°¡ ÃæºÐÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´ç ÇÒ ¼ö ¾ø°Å³ª ÀÌ ¾îµå·¹½º ÆÐ¹Ð¸®ÀÇ ÄÝ ¸Å´ÏÀú·Î¼­ MCMµå¶óÀ̹ö¸¦ Æ®·¢ÇϱâÀ§ÇØ »ç¿ëÇÏ´Â »óŸ¦ ÃʱâÇϱ⶧¹®ÀÌ´Ù.

NDIS_STATUS_FAILURE
NDIS´Â ÀÌ È£ÃâÀ» ½ÇÆÐÇÑ´Ù. ´ÙÀ½ ÀÌÀ¯Áß ÇϳªÀÏ °¡´É¼ºÀÌ ÀÖ´Ù.:

  • È£ÃâÀÚ´Â ¿¬°áÁöÇâ ¹Ì´ÏÆ÷Æ®·Î½á µî·Ï µÇÁö ¾Ê¾Ò´Ù.
  • CmCharacteristics¿¡ È£ÃâÀÚ Á¦°øÀÇ ¹«È¿Çϰųª ºÒÃæºÐÇÑ Á¤º¸.

ÁÖ¼®

½Ã½ºÅÛ³»ÀÇ ¹Ìµð¾ö ŸÀÔ ÁöÁ¤ µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú°¡ ¾Æ´Ñ ¿¬°áÁöÇâ ´Ð À» ´Ù·ç´Â µå¶óÀ̹öµé ¶ÇÇÑ NdisMRegisterMiniportÇÔ¼öÀÇ È£ÃâÈÄ NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ÀçÀåÇü ¿¬°áÁöÇ⠽ñ׳θµ Áö¿øÀ» °¡Áö°í ÀÖ´Â ´Ð µå¶óÀ̹ö´Â ½º½º·Î¸¦ È£ÃâÀ» ´Ù·ç´Âµ¥ ÀÖ¾î ´õ ÁÁÀº ÆÛÆ÷¸Õ½º¿¡´ëÇÑ MCMµå¶óÀ̹ö·Î µî·ÑÇÒ ¼ö ÀÖ´Ù. MCMµå¶óÀ̹ö·Î½á µî·Ï Çϴ°ÍÀº ¾î¶² µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú¸¦ ´Ð µå¶óÀ̹ö ¼ÒÀ¯ÀÇ ÄÝ ¸Å´ÏÁö¸ÕÆ® Áö¿øÀ¸·Î ´ë½ÅÇÑ´Ù.

¿¹¸¦µé¾î, ½Ã½ºÅÛÀÌ ¸ðµç ATM´Ð µå¶óÀ̹öµé¿¡´ëÇØ µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú¸¦ Á¦°øÇϱ⶧¹®¿¡, ÀÚ½ÅÀÇ ¹Ìµð¾öÀ» NdisMediumAtmÀ¸·Î½á ¾Ë¸®´Â ´Ð µå¶óÀ̹ö´Â NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÒ°Í °°Áö ¾Ê´Ù. ±×·¯³ª, ±×·± ATM´Ð µå¶óÀ̹ö´Â ¸¸¾à ÀÚ½ÅÀÇ ¾Æ´äÅͰ¡ ³»ÀåÇü ¿¬°áÁöÇ⠽ñ׳θµ Áö¿øÀ» °¡Áö°í ÀÖ´Ù¸é, NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£Ãâ ÇÒÁö ¸ð¸¥´Ù.

MCM´Ð µå¶óÀ̹ö´Â ÀÚ½ÅÀÇ ´ÐÀÌ ¿ÏÀüÈ÷ »ç¿ë°¡´ÉÇÏ¿© µå¶óÀ̹ö°¡ ³×Æ®¿÷ I/O¿¬»êÀ» ¼öÇàÇÒ¼ö ÀÖÀºÈÄ¿¡ ½º½º·Î¸¦ NDIS¿¡°Ô ÄÝ ¸Å´ÏÀú·Î½á µî·ÏÇϱâÀ§ÇØ MiniportInitializeÇÔ¼ö·ÎºÎÅÍ NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. °á°úÀûÀ¸·Î, ±×·± MCMµå¶óÀ̹ö´Â ½º½º·Î¸¦ ÄÝ ¸Å´ÏÀú·Î½á µî·ÏÇϰí MiniportInitializeÇÔ¼ö°¡ NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÒ¶§, ¼øÂ÷ÀûÀ¸·Î °°Àº ³«¿¡°Ô ½º½º·Î ¹ÙÀεùµÈ ¸ðµç Ŭ¶óÀÌ¾ðÆ®¿¡´ëÇÑ ÀÚ½ÅÀÇ Æ¯Á¤ÇÑ ½Ã±×³Î¸µ ¼­ºñ½º¸¦ ¾Ë¸°´Ù.

MiniportInitializeÇÔ¼ö°¡ ÄÝ ¸Å´ÏÀú·Î½á ¼º°øÀûÀÎ µî·ÏÀ¸·Î ÄÁÃß·²À» ¸®ÅÏÇÑÈÄ, NDIS´Â ÀáÀçÀûÀΠŬ¶óÀ̾ðÆ®ÀÇ ProtocolBindAdapterÇÔ¼ö¸¦ È£ÃâÇÏ¿©, Ŭ¶óÀÌ¾ðÆ® ½º½º·Î¸¦ MCMµå¶óÀ̹öÀÇ ´Ð¿¡°Ô ¹ÙÀεùÇÏ´Â ¸ðµç Ŭ¶óÀÌ¾ðÆ®µéÀÇ ProtocolCoRegisterAfNotifyÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ÀÌ·¯ÇÑ Å¬¶óÀÌ¾ðÆ®µéÀº ±³´ë·Î NDIS·ÎÇÏ¿©±Ý MCM´Ð µå¶óÀ̹ö°¡ ÀڽŵéÀÇ ¾îµå·¹½º ÆÐ¹Ð¸®¿¡´ëÇØ ¸· µî·ÏÇÑ ProtocolCmOpenAfÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù.

MCMµå¶óÀ̹ö´Â NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÒ¶§, ½ÉÁö¾î µé¾î¾î´Â È£Ãâ°ú ³ª°¡´Â È£Ãâ ȤÀº Æ÷ÀÎÆ®-¸ÖƼÆ÷ÀÎÆ® ¿¬°áÀ» Áö¿øÇÏÁö ¾Ê´õ¶óµµ, NDIS_CALL_MANAGER_CHARACTERISTICS±¸Á¶Ã¼³»ÀÇ ¸ðµç CmXxx¸â¹ö¸¦ È£ÃâÀÚ Á¦°ø ProtocolCm/CoXxxÇÔ¼ö·Î ¼³Á¤Çؾ߸¸ ÇÑ´Ù. MCMµå¶óÀ̹ö°¡ Áö¿øÇÏÁö ¾Ê´Â ¿¬°áÁöÇâ ±â´ÉÁß Çϳª°¡ Áö¿øÇÏÁö°ÍÀÌ ÀÖÀ»¶§¸¶´Ù, ProtocolCmXxxÇÔ¼ö´Â °£´ÜÈ÷ NDIS_STATUS_NOT_SUPPORTEDÇÔ¼ö¸¦ ¸®ÅÏÇÑ´Ù. ¿¹¸¦µé¾î, NDIS´Â °áÄÚ MCMµå¶óÀ̹öÀÇ µî·ÏµÈ ProtocolCmActivate/DeactivateVcCompleteÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù. ±×·¡¼­ ÀÌ·¯ÇÑ °ÍÀº NDIS_STATUS_NOT_SUPPORTED¸¦ Áï½Ã ¸®ÅÏÇÒ¼ö ÀÖÁö¸¸ characteristics±¸Á¶Ã¼³»¿¡ ÀÚ¸®¸¦ Àâ°í ÀÖ´Ù.

MCMµå¶óÀ̹ö´Â ProtocolCoCreateVc ¿ÍProtocolCoDeleteVcÇÔ¼ö¸¦ °¡Á®¾ß¸¸ ÇÏ°í ±×µéÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ NdisMCmRegisterAddressFamilyÇÔ¼ö¿¡°Ô ³Ñ°ÜÁö´Â NDIS_CALL_MANAGER_CHARACTERISTICS±¸Á¶Ã¼³»¿¡ ¼³Á¤Çؾ߸¸ ÇÑ´Ù. ¸¸¾à µå¶óÀ̹ö°¡ NdisMRegisterMiniportÇÔ¼ö¸¦ È£ÃâÇÒ¶§, ÀÌÀü¿¡ iniportCoCreate/DeleteVcÇÔ¼ö¸¦ µî·ÏÇß´Ù¸é, NDIS´Â MCMµå¶óÀ̹öÀÇ NdisMCmRegisterAddressFamilyÇÔ¼öÈ£Ãâ ÈÄ, ÀÌ·±ÇÑ ¿£Æ®¸®¸¦ ¹«½ÃÇÑ´Ù. NDIS°¡ VC¸¦ ¸¸µé°í Áö¿ì±âÀ§ÇØ MCMµå¶óÀ̹ö¸¦ È£ÃâÇÒ¶§¸¶´Ù, NDIS´Â µ¶¸³ÀûÀÎ ¹Ì´ÏÆ÷Æ®ÀÇ MiniportCoCreate/DeleteVcÇÔ¼ö¿¡°Ô ³Ñ±â´Â MiniportAdapterContextÇڵ麸´Ù´Â ¹Ì´ÏÆ÷Æ®Á¦°ø ProtocolCoCreate/DeleteVcÇÔ¼ö¿¡°Ô óÀ½ ÆÄ¶ó¹ÌÅͷνá NdisAfHandleÀ» ³Ñ±ä´Ù.

MCMµå¶óÀ̹ö´Â CmRequestHandler¸â¹ö¸¦ MiniportCoRequestÇÔ¼ö¿¡°Ô ¼³Á¤ÇÒ ¼ö ¾øÁö¸¸, NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÒ¶§, ºÐ¸®µÈ ProtocolCoRequestÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. ½ÉÁö¾î ±×·± µå¶óÀ̹ö°¡ NdisMRegisterMiniportÇÔ¼ö¸¦ È£ÃâÇÒ¶§ ÀÌ¹Ì MiniportCoRequest, MiniportQueryInformation, ¿Í MiniportSetInformationÇÔ¼ö¿¡´ëÇÑ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ Á¦°øÇß´õ¶óµµ,MCMµå¶óÀ̹ö´Â Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ CMÁöÁ¤ ¿äûµéÀ» ´Ù·ç±âÀ§ÇØ ProtocolCoRequestÇÔ¼ö¸¦ ºÐ¸®ÇÑ´Ù. MCMµå¶óÀ̹ö¿¡´ëÇØ, NDIS´Â ´ÙÀ½ÀÇ Á¤Ã¥¿¡µû¶ó µå¶óÀ̹ö Á¦°ø ¿äû Çڵ鷯ÀÇ ¼³Á¤À» È£ÃâÇÑ´Ù.:

  • ¹ÙÀεùµÈ µå¶óÀ̹ö°¡ NdisRequestÇÔ¼ö¸¦ È£ÃâÇÒ¶§, ¸¸¾à ´Ð µå¶óÀ̹ö°¡ ÀÌ·¯ÇÑ ÇÔ¼öµéÀ» NdisMRegisterMiniportÇÔ¼ö·Î µî·ÏÇÑ´Ù¸é, ÁÖ¾îÁø RequestType°ª¿¡ÀÇÁ¸ÇÏ¿©, NDIS´Â ´Ð µå¶óÀ̹öÀÇ MiniportQueryInformation ȤÀº MiniportSetInformationÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ±×·¸Áö¾ÊÀ¸¸é, NDIS´Â ´Ð µå¶óÀ̹öÀÇ µî·ÏµÈ MiniportCoRequestÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
  • ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ NULL NdisAfHandle·Î NdisCoRequestÇÔ¼ö¸¦ È£ÃâÇÒ¶§, NDIS´Â ´Ð µå¶óÀ̹öÀÇ µî·ÏµÈ MiniportCoRequestÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, NDIS´Â MCM¹Ì´ÏÆ÷Æ®°¡ NdisMCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÒ¶§ CmRequestHandler¸â¹ö³»¿¡ ¼³Á¤µÈ µå¶óÀ̹ö Á¦°ø ProtocolCoRequestÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
MCMµå¶óÀ̹ö´Â ¶ÇÇÑ NdisMCmRequestÇÔ¼ö¿¡´ëÇÑ ¼øÂ÷Àû¤·´Ï È£ÃâÀÇ ºñµ¿±âÀûÀÎ ¿Ï·á¸¦ ´Ù·ç±âÀ§ÇØ ProtocolCoRequestCompleteÇÔ¼ö¸¦ °¡Á®¾ß¸¸ ÇÑ´Ù.

MCMµå¶óÀ̹ö´Â ¹ÙÀεùµÈ ÇϳªÀÇ ´Ð¿¡´ëÇØ Çϳª ÀÌ»óÀÇ ¾îµå·¹½º ÆÐ¹Ð¸®¸¦ Áö¿ø ÇÒ ¼ö ÀÖ´Ù. MCMµå¶óÀ̹ö´Â ¹ÙÀεù¿¡ ´ëÇØ µî·ÏÇÑ °¢ ¾îµå·¹½º ÆÐ¹Ð¸®¿¡´ëÇØ Çѹø NdisCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇØ¾ß¸¸ ÇÏ°í ¹ÙÀεù¿¡´ëÇØ °¢ ¾îµå·¹½º ÆÐ¹Ð¸®¿¡´ëÇÑ °°Àº ¿£Æ®¸®Æ÷ÀÎÆ®¸¦ µî·ÏÇØ¾ß¸¸ ÇÑ´Ù. ´ÜÁö MCMµå¶óÀ̹ö¸¸ÀÌ ¾î¶² ƯÁ¤ÇÑ ´Ð¿¡ ¹ÙÀεùµÈ Ŭ¶óÀÌ¾ðÆ®¿¡´ëÇÑ Æ¯Á¤ ŸÀÔÀÇ ¾îµå·¹½º ÆÐ¹Ð¸®¸¦ Áö¿øÇÒ¼ö ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î ¿©·¯ ´Ð µå¶óÀ̹öµé¿¡ÀÇÁ¸Çϴ Ŭ¶óÀÌ¾ðÆ® µé¿¡°Ô ÄÝ ¸Å´ÏÁö¸ÕÆ® Áö¿øÀ» Á¦°øÇÏ´Â MCMµå¶ó¾î¹öµé°ú ´ëÁ¶ÀûÀ¸·Î, µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú´Â NDIS¿¡°Ô ProtocolCmXxx °ú ProtocolCoXxxÇÔ¼öµé·Î µî·ÏÇϱâÀ§ÇØ NdisCmRegisterAddressFamilyÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

NdisMCmRegisterAddressFamilyÇÔ¼öÀÇ È£ÃâÀÚ´Â ÀϹÝÀûÀ¸·Î IRQL PASSIVE_LEVEL¿¡¼­ µ¿ÀÛÇÏ°í ½Ã½ºÅÛ ½º·¹µåÀÇ ÄÁÅØ½ºÆ®³»¿¡¼­ µ¿ÀÛÇÑ´Ù. NdisMCmRegisterAddressFamilyÇÔ¼ö´Â IRQL < DISPATCH_LEVEL¿¡¼­ µ¿À۵Ǿî¾ß¸¸ ÇÑ´Ù.