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¿¡¼ ½ÇÇàÇÑ´Ù.
|