ProtocolBindAdapter
VOID
ProtocolBindAdapter(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE BindContext,
IN PNDIS_STRING DeviceName,
IN PVOID SystemSpecific1,
IN PVOID SystemSpecific2
);
|
ProtocolBindAdapter ÇÔ¼ö´Â Plug and Play¸¦ Áö¿øÇϱâ À§ÇØ ÇÊ¿äÇÑ µå¶óÀ̹ö ÇÔ¼öÀÌ´Ù.
¸Å°³º¯¼ö
- Status
- ´ÙÀ½°ú °°Àº Çϳª·Î ProtocolBindAdapter ÇÔ¼ö´Â ¿¬»êµéÀÇ »óŸ¦ ¸®ÅÏÇÏ´Â º¯¼ö¸¦ °¡¸®Å²´Ù.
- NDIS_STATUS_SUCCESS
- µå¶óÀ̹öÀÇ ¿Ï¼ºµÈ ÃʱâÈ´Â ¼º°øÀûÀ̰í DeviceName°ú ÁöÁ¤µÈ ÁÖ¾îÁø NIC µå¶óÀ̹ö¿¡ ´ëÇØ ¹ÙÀε尡 ¼º°øÀûÀÌ´Ù.
- NDIS_STATUS_PENDING
- ÇÁ·ÎÅäÄÝÀº ¾Æ·¡ µå¶óÀ̹ö·ÎºÎÅÍ ¼ö½ÅµéÀ» Çã¶ôÇϱâ À§ÇØ ±×¸®°í ¾Æ·¡ µå¶óÀ̹ö¿¡ ¿ä±¸µéÀ» ¼³Á¤Çϰí Äõ¸®Çϰí Àü¼ÛÀ» º¸³»±â À§ÇØ ÁغñÇÒ ¶§ NdisCompleteBindAdapter ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ·Î ºñµ¿±âÀûÀ¸·Î ¹ÙÀÎµå ¿¬»êÀ» ¿Ï¼ºÇÒ °ÍÀÌ´Ù.
- NDIS_STATUS_XXX ȤÀº NTSTATUS_XXX
- ¹ÙÀεùÀ» ¼³Á¤Çϱâ À§ÇÑ ÇÁ·ÎÅäÄÝÀÇ ½Ãµµ°¡ ½ÇÆÐÇϰųª ÇÁ·ÎÅäÄÝÀÌ ³×Æ®¿öÅ© I/O ¿¬»êµéÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇÒ ¼ö ¾ø´Ù. Ç×»ó, ±×·¯ÇÑ ¿¡·¯ »óÅ´ NdisXxx ÇÔ¼ö ȤÀº Ä¿³Î ¸ðµå Áö¿ø ·çƾÀ¸·ÎºÎÅÍ Àü´ÞµÇ¾îÁø´Ù.
- BindContext
- ÇÁ·ÎÅäÄÝÀÌ ¿¬¼ÓÀûÀÎ NdisCompleteBindAdapter ÇÔ¼ö¿¡ ´ëÇØ Àü´ÞÇÏ´Â NDIS¿¡ ÀÇÇØ Àü°øµÈ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- DeviceName
- ProtocolBindAdapter ÇÔ¼ö°¡ ¹ÙÀεåÇØ¾ß ÇÏ´Â °¡»ó NIC µå¶óÀ̹ö ȤÀº ¾Æ·¡ NIC µå¶óÀ̹ö¸¦ ¸í¸íÇÏ´Â ¹öÆÛÈµÈ Unicode ¹®ÀÚ¿À» °¡¸®Å²´Ù.
- SystemSpecific1
- NdisOpenProtocolConfiguration ÇÔ¼ö¿¡ ´ëÇÑ ¿ä±¸µÈ ¸Å°³º¯¼öÀÎ ·¹Áö½ºÆ®¸® °æ·Î Æ÷ÀÎÅ͸¦ ÁöÁ¤ÇÑ´Ù. È£ÃâÀÚ´Â ¾î¶² ´Ù¸¥ ¸ñÀûÀ» À§ÇØ ÀÌ·¯ÇÑ Æ÷ÀÎÅ͸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
- SystemSpecific2
- ½Ã½ºÅÛ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ´Ù. È£ÃâÀÚ´Â ¾î¶² ¸ñÀûÀ» À§ÇØ ÀÌ·¯ÇÑ Æ÷ÀÎÅ͸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
ÁÖ¼®
ProtocolBindAdapter ÇÔ¼ö´Â ÇÁ·ÎÅäÄÝÀÌ ¹ÙÀεåÇÒ ¼ö ÀÖ´Â ¾Æ·¡ NICÀÌ ÀÌ¿ëÇÒ ¼ö ÀÖÀ» ¶§¸¶´Ù µ¿Àû ¹ÙÀεù ¿¬»êµéÀ» ÇàÇÑ´Ù. Ãß°¡ÀûÀ¸·Î, ProtocolBindAdapter ÇÔ¼ö´Â plug and play¸¦ Áö¿øÇϱâ À§ÇØ DriverEntry ÇÔ¼ö·ÎºÎÅÍ Áö¿¬µÈ µå¶óÀ̹ö ÃʱâÈ ¿¬»êµéÀ» °è¼ÓÇÑ´Ù. ProtocolBindAdapter ÇÔ¼ö´Â ¹ÙÀεù´ç ·±Å¸ÀÓ »óŸ¦ À¯ÁöÇϱâ À§ÇØ ÃæºÐÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ¾Æ·¡ µå¶óÀ̹ö¿¡ ´ëÇØ ¹ÙÀεåÇϱâ À§ÇØ ÁÖ¾îÁø BindContext¿Í DeviceNameÀ¸·Î NdisOpenAdapter ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
¸¸¾à NdisOpenAdapter ÇÔ¼ö°¡ NDIS_STATUS_PENDINGÀ» ¸®ÅÏÇÑ´Ù¸é, µå¶óÀ̹öÀÇ ProtocolOpenComplete ÇÔ¼ö°¡ ¹ÙÀεù ¿¬»êÀÌ ¿Ï¼ºµÉ ¶§, °è¼ÓÀûÀ¸·Î È£ÃâµÉ °ÍÀÌ´Ù. ProtocolBindAdapter ÇÔ¼ö°¡ ¹ÙÀεù´ç »óŸ¦ À§ÇØ ÇÒ´çµÈ ¿µ¿ª¿¡¼ ÀÔ·Â BindContext ÇÚµéÀ» ÀúÀåÇØ¾ß ÇÑ´Ù. NdisOpenAdapter ÇÔ¼ö¿¡ Á¦°øµÈ ProtocolBindContext ÇÚµéÀÌ °è¼ÓÀûÀÎ NdisCompleteBindAdapter ÇÔ¼ö¿¡ ´ëÇÑ BindContext ÇÚµé·Î Àü´ÞÇØ¾ß ÇÏ´Â µå¶óÀ̹öÀÇ ProtocolOpenadAdapterComplete ÇÔ¼ö¿¡ ´ëÇÑ ÀÔ·Â ¸Å°³º¯¼öÀÌ´Ù. ¾Æ·¡ NIC µå¶óÀ̹ö´Â open ¿¬»êÀÌ Áö¿¬µÇ´Â µ¿¾È ¼ö½ÅÇÏ´Â ¾î¶² ¿ä±¸µéÀ» À§ÇØ NDIS_STATUS_ADAPTER_NOT_READY¸¦ ¸®ÅÏÇÑ´Ù. °á°úÀûÀ¸·Î, ProtocolBindAdapter ÇÔ¼ö´Â ¸¸¾à NdisOpenAdapter ÇÔ¼ö°¡ NDIS_STATUS_PENDING À» ¸®ÅÏÇÑ´Ù¸é ¾Æ·¡ µå¶óÀ̹ö¸¦ Äõ¸®Çϱâ À§ÇØ Ndis(Co)Request ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù.
ÀÌ·¯ÇÑ È¯°æ¿¡¼, ProtocolBindAdapter ÇÔ¼ö´Â ´ÜÁö NDIS_STATUS_PENDING¿¡ ´ëÇÑ Status·Î ¼³Á¤ÇÏ°í ¹ÙÀεù ƯÁ¤ »óÅ·Π¼³Á¤Çϱâ À§ÇØ ±×¸®°í ¸¸¾à ÀÌ·¯ÇÑ ÇÔ¼ö°¡ NDIS_STATUS_SUCCESSÀÇ ÀÔ·Â Status·Î È£ÃâµÈ´Ù¸é ProtocolOpenAdapterComplete ÇÔ¼ö·Î ¹ÙÀεù ƯÁ¤ ÀÚ¿øµéÀ» ÇÒ´çÇϱâ À§ÇØ ÃëÇØÁø ÇൿµéÀÌ ¹«¾ùÀ̵çÁö°£¿¡ Áö¿¬Çϰí Á¦¾î¸¦ ¸®ÅÏÇÑ´Ù.
À¯»çÇϰÔ, ¸¸¾à NdisOpenAdapter ÇÔ¼ö°¡ ¿¡·¯ »óŸ¦ ¸®ÅÏÇÑ´Ù¸é, ProtocolBindAdapter ÇÔ¼ö°¡ ¸®ÅÏµÈ °ªÀ¸·Î Status¸¦ ¼³Á¤ÇÏ°í µå¶óÀ̹ö°¡ ÇÒ´çÇÑ ¾î¶² ¹ÙÀεù´ç ÀÚ¿øµéÀ» ÇØÁ¦Çϰí Áï½Ã Á¦¾î¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ¼º°øÀûÀÎ ¹ÙÀεùÀº ¼³¸³µÇ°í ÇÁ·ÎÅäÄÝÀº Protocol(Co)Status, Protocol(Co)ReceivePacket, ProtocolReceive ÇÔ¼öµé·Î ¾Æ·¡ µå¶óÀ̹ö·ÎºÎÅÍ ÀεðÄÉÀ̼ǵéÀ» ¼ö½ÅÇÒ ¼ö ÀÖ´Ù.
°á°úÀûÀ¸·Î, NdisOpenAdapter ÇÔ¼ö°¡ NDIS_STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù¸é, ProtocolBindAdapter ÇÔ¼ö°¡ µå¶óÀ̹ö°¡ ¹ÙÀεùµÈ ³×Æ®¿öÅ© I/O¸¦ ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇϰí ÇÁ·ÎÅäÄÝÀÌ ³×Æ®¿öÅ© I/O ¿¬»êµéÀ» ÃßÀûÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¹ÙÀεù ƯÁ¤ ·±Å¸ÀÓ »óŰ¡ ¹«¾ùÀεçÁö °£¿¡ ¼³Á¤ÇÑ´Ù. ¸¸¾à µå¶óÀ̹öÀÇ ¼³Ä¡ ½ºÅ©¸³Æ®°¡ ·¹Áö½ºÆ®¸®ÀÇ ÇÁ·ÎÅäÄÝ ¼½¼Ç³»¿¡ ¾î´ðÅÍ Æ¯Á¤ ±¸¼º Á¤º¸¸¦ ¼³Ä¡ÇÑ´Ù¸é, ProtocolBindAdapter ÇÔ¼ö´Â ÀÌ·¯ÇÑ Á¤º¸¸¦ °Ë»öÇϱâ À§ÇØ NdisOpenProtocolConfiguration ÇÔ¼ö¿Í NdisReadConfiguration ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. µå¶óÀ̹ö ¼³Ä¡ ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ À§ÇØ Setup, Plug and Play, Power Management Design Guide¿Í Reference¸¦ ºÁ¶ó.
¾Æ·¡ ¹Ìµð¾î¿¡ ÀÇÁ¸Çؼ ProtocolBindAdapter ÇÔ¼ö´Â ¶ÇÇÑ ÃÖ´ë ÇÁ·¹ÀÓ Å©±â, Àü¼Û/¼ö½Å ¹öÆÛ °ø°£, µîµî ¹ÙÀεùÀ» À§ÇØ Àû´çÇÑ »óŸ¦ ¼³Á¤Çϱâ À§ÇÑ ¾Æ·¡ µå¶óÀ̹öÀÇ NIC ƯÁ¤ Á¦Çѵ鿡 ´ëÇØ ¾Æ·¡ µå¶óÀ̹ö (ȤÀº NDIS)¸¦ Äõ¸®Çϱâ À§ÇØ NdisCoRequest ȤÀº NdisRequest ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.
¿¬°á ÁöÇâ NIC µå¶óÀ̹ö¿¡ ¹ÙÀεùµÈ ¾î¶² ÇÁ·ÎÅäÄÝÀº ¾Æ·¡ ¹Ì´ÏÆ÷Æ®°¡ ¸ÖƼÆÐŶ º¸³»±âµéÀ» Áö¿øÇϰí full-ÆÐŶ ¼ö½ÅµéÀ» ÀεðÄÉÀÌÆ®ÇÏ´Â Áö¸¦ ÃßÃøÇÒ ¼ö ÀÖ´Ù.
ºñ¿¬°á ÁöÇâ NIC ¹Ì´ÏÆ÷Æ®¿Í ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝÀº ¾Æ·¡ µå¶óÀ̹ö°¡ µå¶óÀ̹ö°¡ ÇÁ·ÎÅäÄÝÀÌ NdisRequest ÇÔ¼ö¿¡ Àü´ÞÇÏ´Â OID_GEN_CURRENT_LOOKAHEAD ¿Í OID_GEN_RECEIVE_BLOCK_SIZE Äõ¸®µéÀ» À§ÇØ ¸®ÅÏÇÏ´Â °ªµéÀ» ºñ±³ÇÔÀ¸·Î½á full-packet ¼ö½ÅµéÀ» ÀεðÄÉÀÌÆ®ÇÑ´Ù. ¸¸¾à ±×µéÀÌ µ¿ÀÏÇÏ´Ù¸é, ÇÁ·ÎÅäÄÝÀÌ ÀÌ·¯ÇÑ ¹ÙÀεù½Ã NdisTransferData ÇÔ¼ö·Î È£ÃâµéÀ» ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÇÁ·ÎÅäÄÝÀº ¾Æ·¡ µå¶óÀ̹ö°¡ OID_GEN_MAXIMUM_SEND_PACKETS Äõ¸®·Î ¸ÖƼ ÆÐŶ º¸³»±âµéÀ» Áö¿øÇÏ´ÂÁö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª, ¸¸¾à ¾Æ·¡ µå¶óÀ̹ö°¡ MiniportSendPackets ÇÔ¼ö¸¦ °¡ÁöÁö ¾Ê´Â´Ù´Â °ÍÀ» °¡¸®Å°´Â Çϳª¸¦ ¸®ÅÏÇÑ´Ù¸é, ÇÁ·ÎÅäÄÝÀº ÇÁ·ÎÅäÄÝÀº º¸³»±âµéÀ» À§ÇØ ÇÒ´çÇÑ ÆÐŶ µð½ºÅ©¸³Å͵鿡 ´ë¿ª¿Ü Á¤º¸¸¦ Á¦°øÇÏÁö ¾Ê´Â ÇÑ ¹ÙÀεù ½Ã¿¡ NdisSendPackets ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. NDIS´Â ±×·¯ÇÑ ¾Æ·¡ ºñ¿¬°á ÁöÇâ NIC µå¶óÀ̹ö¿¡ ¹ÙÀεåµÈ ÇÁ·ÎÅäÄݵé·ÎÀÇ ÆÐŶ ¹è¿µéÀÇ Á¦Ãâ(submissions)µéÀ» ´Ù·é´Ù. ÇÁ·ÎÅäÄÝÀº ¾Æ·¡ µå¶óÀ̹ö°¡ ÇÁ·ÎÅäÄÝ Á¦°ø ´ë¿ª¿Ü µ¥ÀÌÅ͸¦ ´Ù·ç´Â ´É·ÂÀ» °¡Áö´Â °ÍÀ» È®½ÇÈ÷ Çϱâ À§ÇÑ Ã¥ÀÓÀÌ ÀÖ´Ù.
ÀϹÝÀûÀÌ°í ¹Ìµð¾ö ƯÁ¤ OID ¿ä±¸µé¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ À§ÇØ, Part 2¸¦ ºÁ¶ó.
µå¶óÀ̹öÀÇ Protocol(Co)ReceivePacket ÇÔ¼ö ȤÀº ProtocolReceive ÇÔ¼ö´Â ¹ÙÀεùÀ» À§ÇÑ OID_GEN_CURRENT_PACKET_FILTER·Î ÆÐŶ ÇÊÅ͸¦ ¼³Á¤ÇÏÀÚ¸¶ÀÚ È£ÃâµÉ ¼ö ÀÖ´Ù. NULL ÇÊÅ͸¦ À§ÇØ, ¼ö½Å ÀεðÄÉÀ̼ǵéÀº NdisOpenAdapter ÇÔ¼ö¿¡ ´ëÇØ ¼º°øÀûÀΠȣÃâ·ÎºÎÅÍ ¸®ÅÏÇÏÀÚ¸¶ÀÚ °¡´ÉÀ¸·Î µÈ´Ù.
¸ðµç NDIS ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â °è¼ÓÀûÀÎ ³×Æ®¿öÅ© Àü¼ÛµéÀ» À§ÇØ ±×¸®°í °¡´ÉÇÑ °è¼ÓÀûÀÎ transfer data ¿ä±¸µéÀ» À§ÇØ ¾Æ·¡ µå¶óÀ̹ö°¡ NdisMIndicateReceivePacket ÇÔ¼ö ȤÀº NdisMCoIndicateReceivePacket ÇÔ¼ö·Î full-packet ¼ö½ÅµéÀ» ÀεðÄÉÀÌÆ®ÇÏ´Â °Í¿¡ ÀÇÁ¸ÇÏ¸é¼ ÆÐŶ µð½ºÅ©¸³Å͵é°ú ¹öÆÛ µð½ºÅ©¸³Å͵éÀ» ÇÒ´çÇϱâ À§ÇÑ °ÍÀ¸·ÎºÎÅÍ ÃæºÐÇÑ ÆÐŶ pool°ú ¹öÆÛ poolÀ» ÇÒ´çÇØ¾ß ÇÑ´Ù.
¿¬°á ÁöÇâ ÄÝ ¸Å´ÏÀú ȤÀº MCM µå¶óÀ̹öÀÇ ProtocolBindAdapter ÇÔ¼ö´Â NDIS¿¡ ÀÌ·¯ÇÑ ¾î´ðÅ͸¦ À§ÇØ ½Ã±×³Î¸µ ¼ºñ½ºµé°ú ProtocolCmXxx ÇÔ¼öµéÀ» µî·ÏÇϱâ À§ÇØ °¢°¢, NdisCmRegisterAddressFamily ÇÔ¼ö ȤÀº NdisMCmRegisterAddressFamily ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. NDIS´Â °¢ ÀáÀçÀûÀÎ ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®°¡ DriverEntry ÇÔ¼ö·ÎºÎÅÍ NdisRegisterProtocol ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ µî·ÏÇÏ´Â ±×µéÀÇ ProtocolCoAfRegisterNotify ÇÔ¼öµéÀ» È£ÃâÇÔÀ¸·Î½á °¡´ÉÇÑ Å¬¶óÀÌ¾ðÆ® ÇÁ·ÎÅäÄݵ鿡 ´ëÇÑ ÄÝ ¸Å´ÏÀúÀÇ ¼ºñ½ºµéÀ» ±¤°íÇÒ °ÍÀÌ´Ù.
¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ® ÇÁ·ÎÅäÄݵéÀº ProtocolBindAdapter ÇÔ¼öµé·ÎºÎÅÍ NdisClOpenAddressFamily ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÁÖ¸ñÇ϶ó. ±× ´ë½Å¿¡, ÀÌ·¯ÇÑ ÇÁ·ÎÅäÄݵéÀº ±×µéÀÇ ProtocolCoAfRegisterNotify ÇÔ¼öµé·ÎºÎÅÍ NDIS¿Í ÇÔ²² ±×µéÀÇ ProtocolClXxx ÇÔ¼öµéÀ» µî·ÏÇϱâ À§ÇØ ÀÌ·¯ÇÑ È£ÃâµéÀ» ÇÑ´Ù. NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹öÀÇ ProtocolBindAdapter ÇÔ¼ö´Â Â÷·Ê·Î µå¶óÀ̹öÀÇ MiniportIntialize ÇÔ¼ö¸¦ È£ÃâÇÏ´Â NdisIMInitializeDeviceInstanceEx ȤÀº NdisIMIntializeDeviceInstance ÇÔ¼ö¸¦ È£ÃâÇÔÀ¸·Î½á µå¶óÀ̹öÀÇ °¡»ó NICÀÇ Ãʱâȸ¦ promptÇÒ Ã¥ÀÓÀÌ ÀÖ´Ù. ±×·¯ÇÑ µå¶óÀ̹ö´Â ProtocolBindAdapter(ȤÀº ProtocolBindAdapterComplete) ÇÔ¼ö°¡ DeviceName¿¡ ÁöÁ¤µÈ ¾Æ·¡ µå¶óÀ̹ö¿¡ ¹ÙÀεùÀ» ¼³¸³ÇÑ ÈÄ ÃʱâÈÇØ¾ß ÇÑ´Ù. ¾ÆÁ÷ »óÀ§ ·¹º§ ÇÁ·ÎÅäÄݵéÀº °¡»ó NICÀÌ ÃʱâȵDZâ±îÁö ±×·¯ÇÑ ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö¿¡ ¹ÙÀεåÇÒ ¼ö ¾ø´Ù. ¸¸¾à ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â NdisIMIntializeDeviceInstanceEx ÇÔ¼ö·Î ÀåÄ¡ ÄÁÅØ½ºÆ® ¿µ¿ªÀ» ¼³Á¤ÇÑ´Ù¸é, °¡»ó NICÀÌ ¿¬¼ÓÀûÀ¸·Î ±×µéÀ» ¹ÙÀεåÇÏ´Â »óÀ§ ·¹º§ ÇÁ·ÎÅäÄݵéÀº ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö°¡ Á¦°øÇÏ´Â Á¤º¸¸¦ Äõ¸®Çϱâ À§ÇØ NdisIMGetBindingContext ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.
¸¸¾à ProtocolBindAdapter ÇÔ¼ö°¡ °è¼ÓÀûÀÎ ³×Æ®¿öÅ© I/O ¿¬»êµéÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇÒ ¼ö ¾ø´Ù¸é, ÀÌ¹Ì ÇÒ´çµÈ ¸ðµç ÀÚ¿øµéÀ» ÇØÁ¦ÇؾßÇϰí Status¿¡ Àû´çÇÑ ¿¡·¯ °ªÀ» ¼³Á¤Çϰí Á¦¾î¸¦ ¸®ÅÏÇÑ´Ù.
¸¸¾à µå¶óÀ̹ö°¡ ¼³¸³µÈ ¹ÙÀεù¿¡ ´ëÇÑ ³×Æ®¿öÅ© I/O¸¦ ½ÇÇàÇϱâ À§ÇÑ Áغñ°¡ µÇ¸é ProtocolBindAdapter ÇÔ¼ö´Â Status¿Í OpenStatus ¸Å°³º¯¼öµéÀ» À§ÇØ NDIS_STATUS_SUCCESS·Î NdisCompleteBindAdapter ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
µðÆúÆ®·Î, ProtocolBindAdapter ÇÔ¼ö´Â ½Ã½ºÅÛ ¾²·¹µåÀÇ ÄÁÅØ½ºÆ®¿¡¼ IRQL PASSIVE_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|