NdisOpenAdapter

VOID

  NdisOpenAdapter(

    OUT PNDIS_STATUS  Status,

    OUT PNDIS_STATUS  OpenErrorStatus,

    OUT PNDIS_HANDLE  NdisBindingHandle,

    OUT PUINT  SelectedMediumIndex,

    IN PNDIS_MEDIUM  MediumArray,

    IN UINT  MediumArraySize,

    IN NDIS_HANDLE  NdisProtocolHandle,

    IN NDIS_HANDLE  ProtocolBindingContext,

    IN PNDIS_STRING  AdapterName,

    IN UINT  OpenOptions,

    IN PSTRING  AddressingInformation  OPTIONAL,

    );

NdisOpenAdapter È£ÃâÇÏ´Â ÇÁ·ÎÅäÄݰú ƯÁ¤ ¾Æ·¡ °èÃþ NIC µå¶óÀ̹ö¿Í NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö¿Í ¹ÙÀεùÀ» ¼³Á¤ÇÑ´Ù.

¸Å°³º¯¼ö

Status
ÀÌ ÇÔ¼ö·ÎºÎÅÍ ¸®ÅÏÇÏ´Â ´ÙÀ½°ú °°Àº °ªµéÁß Çϳª°¡ µÉ ¼ö Àִ ȣÃâÀÚ Á¦°ø º¯¼ö¸¦ °¡¸£Å²´Ù.

STATUS_SUCCESS
¿ä±¸µÈ ¹ÙÀεùÀÌ ¼³Á¤µÇ°í È£ÃâÀÚ´Â NdisXxx¿¡ ´ëÇÑ °è¼ÓÀûÀΠȣÃâ¿¡¼­ NdisBindHandle°ú SelectedMediumIndex¿¡ ¸®ÅÏµÈ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

NDIS_STATUS_PENDING
¿ä±¸µÈ ¿¬»êÀÌ ºñµ¿±âÀûÀ¸·Î 󸮰¡ µÇ°í, È£ÃâÀÚÀÇ ProtocolOpenAdapterComplete ÇÔ¼ö°¡ ¿ÀÇÂÀÌ ¿Ï¼ºµÆÀ» ¶§ È£ÃâµÇ¾îÁø´Ù.

NDIS_STATUS_RESOURCES
¿ä±¸µÈ ¿¬»êÀÌ NDIS°¡ ÃæºÐÇÑ ¸Þ¸ð¸®°¡ ÇÒ´çµÇ¾îÁöÁö ¾Ê°Å³ª ¿ÀÇ ¹ÙÀεùÀ» ÃßÀûÇϴµ¥ »ç¿ëµÇ¾îÁö´Â »óŸ¦ ÃʱâÈ­ÇÏÁö ¸øÇ߱⠶§¹®¿¡ ½ÇÆÐÇß´Ù.

NDIS_STATUS_ADAPTER_NOT_FOUND
¿ä±¸µÈ ¿¬»êÀÌ AdapterName¿¡¼­ÀÇ À̸§ÀÌ ½Ã½ºÅÛ °´Ã¼ ³×ÀÓ½ºÆäÀ̽º¿¡¼­ ¹ß°ßµÉ ¼ö ¾ø±â ¶§¹®¿¡ ½ÇÆÐÇß´Ù.

NDIS_STATUS_UNSUPPORTED_MEDIA
MediumArrayÀÇ ¹è¿­Àº NDIS¿¡¼­³ª ȤÀº ¾Æ·¡ °èÃþ µå¶óÀ̹ö¿¡ ÀÇÇØ Áö¿øÇÏ´Â ¾î¶² ¹Ìµð¾öÀ» ÁöÁ¤ÇÏÁö ¾ÊÇß´Ù.

NDIS_STATUS_CLOSING
È£ÃâÀÚ³ª AdapterName¿¡ ÁöÁ¤µÈ ¹°¸®ÀûÀΠȤÀº °¡»óÀûÀÎ ÀåÄ¡°¡ ´ÝÇß´Ù.

NDIS_STATUS_OPEN_FAILED
¿ÀÇ ½Ãµµ°¡ ¼±Çà Æ¯Á¤ ÀÌÀ¯ÀÇ ¾Æ¹«°Íµµ ¾ø´Â °Í ¶§¹®¿¡ ½ÇÆÐÇß´Ù. ¿¹¸¦ µé¸é, °¡´ÉÇÑÇÑ NDIS°¡ ¼±ÅÃµÈ ¹Ìµð¾öÀ» À§ÇØ ÇÊÅÍ ÆÐŰÁö°¡ ÃʱâÈ­µÉ ¼ö ¾ø´Ù.

OpenErrorStatus
NdisOpenAdapter°¡ Status¿¡¼­ ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù¸éÀº ´õ ¸¹Àº Á¤º¸¸¦ Á¦°øÇÏ´Â NDIS_STATUS_XXX ¿¡·¯¸¦ Æ÷ÇÔÇÒ ¼ö Àִ ȣÃâÀÚ Á¦°ø º¯¼ö¸¦ °¡¸®Å²´Ù. ¿¹¸¦ µé¸é, Token Ring NICÀÇ µå¶óÀ̹ö´Â ÀÌ·¯ÇÑ º¯¼ö¿¡ ¸µ ¿¡·¯¸¦ ¸®ÅÏÇÒ °ÍÀÌ´Ù.

NdisBindingHandle
È£ÃâÀÚ¿Í AdapterName¿¡ ÁöÁ¤µÈ ÁÖ¾îÁø ¹°¸®ÀûÀΠȤÀº °¡»ó NIC »çÀÌ¿¡ ¼º°øÀûÀÎ ¹ÙÀεùÀ» Ç¥ÇöÇÏ´Â ÇÚµéÀ» ¸®ÅÏÇϴ ȣÃâÀÚ Á¦°ø º¯¼ö¸¦ °¡¸®Å²´Ù.

SelectedMedimIndex
NDIS´Â ¾Æ·¡ °èÃþ NDIS µå¶óÀ̹ö°¡ »ç¿ëÇÏ´Â ¹Ìµð¾î ŸÀÔÀ» ÁöÁ¤ÇÏ´Â ¹è¿­ ¿ä¼Ò À妽º¸¦ ¸®ÅÏÇϴ ȣÃâÀÚ Á¦°ø º¯¼ö¸¦ °¡¸®Å²´Ù.

MediumArray
È£ÃâÀÚ°¡ Á¦°øÇÒ ¼ö ÀÖ´Â ¹Ìµð¾î ŸÀÔÀ» ÁöÁ¤ÇÏ´Â NDIS_MEDIUM ŸÀÔ °ª ¹è¿­À» °¡¸®Å²´Ù.

NdisMedium802_3
ÀÌ´õ³Ý(802.3) ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù.

NdisMedium802_5
ÅäÅ«¸µ(802.5) ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù.

NdisMediumFddi
Fiber Distributed Data Interface(FDDI) ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù.

NdisMediumWan
wide area ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ Å¸ÀÔÀº ´Ù¾çÇÑ ÇüÅÂÀÇ point-to-point¿Í WAN NICµéÀ» Ä¿¹öÇÑ´Ù. ¸¶Âù°¡Áö·Î ´Ù¾çÇÑ ÁÖ¼Ò¿Í Çì´õ Æ÷¸ËµéÀ» ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿Í ¹ÙÀεùÀÌ ¼³¸³µÈ ÈÄ ¾Æ·¡ °èÃþ µå¶óÀ̹ö »çÀÌ¿¡ ±³¼·µÇ¾îÁø´Ù.

NdisMediumLocalTalk
LocalTalk ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù.

NdisMediumDix
µå¶óÀ̹ö°¡ DIX ÀÌ´õ³Ý Çì´õ Æ÷¸ËÀ» »ç¿ëÇϱâ À§ÇØ ÀÌ´õ³Ý ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù.

NdisMediumArcnetRaw
ARCNET ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù.

NdisMediumarcnet878_2
ARCNET(878.2) ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù.

NdisMediumAtm
ÀÌ °ªÀº ¹Ì·¡ »ç¿ëÀ» À§ÇØ ¿¹¾àµÇ¾ú´Ù. ÇöÀç NICµå¶óÀ̹öµéÀº LAN ¿¡¹Ä·¹À̼ÇÀ» ÅëÇØ ATMÀ» Áö¿øÇÑ´Ù. (LanE 1.0Àº ATM Æ÷·³ 1.0 »ç¾ç°ú UNI 3.1 ½Ã±×³Î¸µ¿¡¼­ Á¤ÀǵǾú´Ù.) ±×·¯ÇÑ µå¶óÀ̹ö´Â NdisMedium802_3À̳ª NdisMedium802_5·Î¼­ ¹Ìµð¾î ŸÀÔÀ» º¸°íÇØ¾ß ÇÑ´Ù.

NdisMediumWirelessWan
wireless ³×Æ®¿öÅ©¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ Å¸ÀÔÀº NdisMediumIrda·Î ÁöÁ¤µÈ infrared wireless¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â ´Ù¾çÇÑ wireless media¸¦ Ä¿¹öÇÑ´Ù.

NdisMediumIrda
ÀÌ °ªÀº À©µµ¿ìÁî NT µå¶óÀ̹ö¿¡¼­ ¹Ì·¡ »ç¿ëÀ» À§ÇØ ¿¹¾àµÇ¾ú´Ù.

MediumArraySize
MediumArray¿¡ ¿ä¼Ò ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

NdisProtocolHandle
NdisRegisterProtocol¿¡ ÀÇÇØ ¸®ÅÏµÈ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ProtocolBindingContext
ÇÁ·ÎÅäÄÝÀÌ ¹ÙÀεùÀÌ ¼³¸³µÈ ÈÄ ÀÌ·¯ÇÑ ¹ÙÀεù¿¡ ´ëÇÑ »óŸ¦ À¯ÁöÇϴ ȣÃâÀÚ Á¦°ø »óÁÖ ÄÁÅØ½ºÆ® ¿µ¿ªÀ» À§ÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

AdapterName
upper-edge(MiniportXxx) ÇÔ¼öµé ÁýÇÕ¿¡ ÀͽºÆ÷Æ®µÈ ¾Æ·¡ °èÃþ NDIS µå¶óÀ̹öÀÇ °¡»ó ¾î´ðÅͳª NICÀ» ¸í¸íÇÏ´Â ½Ã½ºÅÛ µðÆúÆ® ¹®ÀÚ ¼ÂÀ¸·Î ÁöÁ¤µÇ¾îÁö´Â ¼ýÀÚÈ­µÈ ¹®ÀÚ¿­À» °¡¸®Å²´Ù. Windows NT µå¶óÀ̹ö¿¡ ´ëÇØ ÀÌ·¯ÇÑ ¼ýÀÚÈ­µÈ ¹®ÀÚ¿­Àº À¯´ÏÄÚµå ¹®ÀÚµéÀ» Æ÷ÇÔÇÑ´Ù.

OpenOptions
NIC µå¶óÀ̹ö·Î ÃßÃøµÇ¾îÁö´Â È£ÃâÀÚ°¡ ´ÙÀ½ ³·Àº µå¶óÀ̹ö¿¡ Àü´ÞÇÏ´Â Ç÷¡±×¸¦ Æ÷ÇÔÇÏ´Â ºñÆ®¸¶½ºÅ©¸¦ ÁöÁ¤ÇÑ´Ù. ÇöÀç ÀÌ ¸Å°³º¯¼ö´Â ½Ã½ºÅÛ »ç¿ëÀ¸·Î ¿¹¾àµÇ¾îÁ³´Ù.

AddressingInformation
NIC µå¶óÀ̹ö°¡ ³ÝÄ«µå¿¡ ÇÁ·Î±×·¥ÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ´Â ¾Æ·¡ °èÃþ NIC¿¡ ´ëÇÑ Æ¯Á¤ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ¼±ÅÃÀûÀÎ °¡º¯ ±æÀÌ ¼ýÀÚÈ­µÈ ¹®ÀÚ¿­À» °¡¸®Å²´Ù. ÀÌ Æ÷ÀÎÅÍ´Â NULLÀÌ µÉ ¼ö ÀÖ´Ù.

¸¸¾à Á¦°øµÇ¾îÁø´Ù¸éÀº, ¾îµå·¹½Ì Á¤º¸´Â open ¿¬»êÀÌ ¿Ï¼ºµÉ ¶§±îÁö À¯È¿ÇÏ°Ô ³²¾Æ¾ß ÇÑ´Ù. ºñµ¿±â ¸ðµ©À» Áö¿øÇÏ´Â ¾Æ·¡ °èÃþ NIC µå¶óÀ̹ö´Â ´ÙÀ̾ó¸µÀ» À§ÇØ ÀÌ·¯ÇÑ Á¤º¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ÁÖ¼®

ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀº ±×µéÀÇ DriverEntry³ª ProtocolBindAdapterÇÔ¼ö·ÎºÎÅÍ NdisOpenAdapter¸¦ È£ÃâÇÑ´Ù. NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹öµéÀº Ç×»ó ±×µéÀÇ ProtocolBindAdapterÇÔ¼ö·ÎºÎÅÍ ÀÌ È£Ã⸦ ÇØ¾ß ÇÑ´Ù.

AdapterName ¹®ÀÚ¿­Àº ½ÉÁö¾î Status°¡ NDIS_STATUS_PENDING¸¦ ¸®ÅÏÇØµµ NdisOpenAdapter°¡ ¸®ÅÏÇÒ ¶§±îÁö ´ÜÁö À¯È¿ÇÑ °ªÀ¸·Î ³²´Â´Ù.

NdisBindingHandle°ú SelectedMediumIndex º¯¼öµéÀº NdisOpenAdapter°¡ NDIS_STATUS_PENDING¸¦ ¸®ÅÏÇÑ´Ù¸éÀº ProtocolOpenAdapterCompleteÇÔ¼ö°¡ È£ÃâµÉ ¶§±îÁö ¹«½ÃµÇ¾îÁú ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ º¯¼öµéÀº ProtocolOpenAdapterCompleteÀÌ È£ÃâµÇ¾îÁú ¶§ À¯È¿ÇÏÁö ¾ÊÀº °ªÀ¸·Î ³²¾Æ Àֱ⠶§¹®¿¡ ±×µéÀº ½ºÅÿ¡ ÀÖÀ» ¼ö ¾ø´Ù. Ç×»ó, ÀÌ·¯ÇÑ º¯¼ö´Â ÀÌ ÇÚµéÀÌ ProtocolOpenAdapterComplete¿¡ ÀÔ·Â ¸Å°³º¯¼öÀÏ ¶§ ProtocolBindingContext ¿µ¿ª¿¡ »óÁÖÇÑ´Ù.

ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â NdisProtocolHandle¿¡ ¸®ÅÏµÈ ÇÚµéÀ» À¯ÁöÇØ¾ß ÇÑ´Ù. ±×°ÍÀº µå¶óÀ̹ö°¡ ¾ÕÀ¸·Î °è¼ÓÇØ¼­ È£ÃâÇÒ ´Ù¸¥ NdisXxx ÇÔ¼öµé¿¡°Ô ÇÊ¿äÇÑ ¸Å°³º¯¼ö°¡ µÈ´Ù. Á¦°øµÈ ProtocolBindingContext´Â È£ÃâÀÚÀÇ ProtocolXxx ÇÔ¼öµéÀÇ ÀÔ·Â ¸Å°³º¯¼öÀÌ´Ù.

È£ÃâÀÚ´Â SelectedMediumIndex¿¡ ¸®ÅÏµÈ °ªÀ» ÈÄ¿¡ È£ÃâÇÏ´Â NdisRequest¿¡¼­ »ç¿ëÇÑ´Ù. ¿ä±¸ ÆÐŶ¿¡ ¼³Á¤µÈ OIDµéÀº ¸®ÅÏµÈ NdisMediumXxx °ª¿¡ ÀÇÁ¸ÇÑ´Ù. ¿¹¸¦ µé¾î, ¸¸¾à NdisMediumWanÀÌ SelectedMediumIndex¿¡ ¸®ÅϵǾîÁø´Ù¸éÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ »ç¿ëÇÏ´Â WAN ¹Ìµð¾î ŸÀÔµéÀ» °áÁ¤ÇÏ´Â Äõ¸®·Î OID_WAN_MEDIUM_SUBTYPEÀ» ÁöÁ¤ÇÏ´Â NdisRequest¸¦ È£ÃâÇÑ´Ù.

Àü¿¡ ¹ßÇàµÈ wireless ¹Ìµð¾î¸¦ À§ÇØ OID_NETWORK_TYPE ÀÇ ±Û·Î¹ú Äõ¸®°¡ µå¶óÀ̹ö¿Í ¾Æ·¡ °èÃþ NICÀÌ Çϳª ÀÌ»óÀÇ NdisMediumWirelessWan ŸÀÔ ¹Ìµð¾öÀ» Áö¿øÇÑ´Ù´Â °ÍÀ» Áö½ÃÇÑ´Ù¸éÀº ÇÁ·ÎÅäÄÝÀº NDIS°¡ ¹ÙÀεùÀ» ¼³Á¤ÇÏÀÚ¸¶ÀÚ ÇÁ·ÎÅäÄÝÀÌ Çì´õ Æ÷¸äÀ» ¼±ÅÃÇϱâ Àü¿¡ Áö¿øµÈ ¹Ìµð¾îÀÇ Çϳª¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù.

¶Ç ÇϳªÀÇ ¿¹´Â, ¸¸¾à MdisMedium802_3¸¦ ¸®ÅÏÇÑ´Ù¸éÀº, ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ NDIS_802_3_MAC_OPTION_PRIORITY·Î Ç÷¡±×¸¦ ¼³Á¤ÇÏ´ÂÁö¸¦ üũÇϱâ À§ÇÑ Äõ¸®·Î¼­ OID_802_3_MAC_OPTIONSÀ» ÁöÁ¤ÇÏ¿© NdisRequest¸¦ È£ÃâÇÔÀ¸·Î½á ¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ ÆÐŶ ¿ì¼±±ÇÀ» Áö¿øÇÏ´ÂÁö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ÀÌ Ç÷¡±×°¡ Äõ¸®°¡ ¿Ï¼ºµÇ¾úÀ» ¶§ ¼³Á¤µÈ´Ù¸éÀº, ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¿ì¼±È­µÈ ÆÐŶµéÀ» ¾Æ·¡ °èÃþ NIC µå¶óÀ̹ö¿¡°Ô NdisSendPacketsÀ¸·Î º¸³»Áø´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¸¸¾à ¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ ¶ÇÇÑ ¸ÖƼ ÆÐŶ ¸®½Ãºê ÀεðÄÉÀ̼ǵéÀ» Áö¿øÇÑ´Ù¸éÀº ¿ì¼±È­µÈ(prioritized) ÆÐŶµéÀÇ ÀεðÄÉÀ̼ǵéÀ» ¾ò±â À§ÇØ ProtocolReceivePacketÇÔ¼ö¸¦ ±â´ëÇÒ ¼ö ÀÖ´Ù.

ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀÌ ´ÜÁö ¹ÙÀεåµÈ NDIS µå¶óÀ̹ö¿Í ±³¼·ÇÏ´Â µ¥ »ç¿ëÇÏ´Â ÀϹÝÀûÀÌ°í ¹Ìµð¾ö ƯÁ¤ OIDµé¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â Chapter 5¸¦ º¸¶ó.

NdisOpenAdapter¿¡ ´ëÇÑ È£ÃâÀÚµéÀº IRQL PASSIVE_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.