ProtocolRequestComplete

VOID

  ProtocolRequestComplete(

      IN NDIS_HANDLE  ProtocolBindingContext,

      IN PNDIS_REQUEST  NdisRequest,

      IN NDIS_STATUS  Status

      );

ProtocolRequstComplete ÇÔ¼ö´Â NdisRequest ÇÔ¼ö°¡ NDIS_STATUS_PENDINGÀ¸·Î ¸®ÅÏµÈ ÇÁ·ÎÅäÄÝ Ãʱâ Äõ¸® ȤÀº ¼³Á¤ÀÇ Ã³¸®¸¦ ¿Ï¼ºÇÏ´Â µ¥ ÇÊ¿äÇÑ µå¶óÀ̹ö ÇÔ¼öÀÌ´Ù.

NdisRequest ÇÔ¼ö°¡ ¾Æ´Ñ NdisCoRequest ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¿¬°á ÁöÇâ ÇÁ·ÎÅäÄÝÀº ProtocolRequestComplete ÇÔ¼ö º¸´Ù ¿ÀÈ÷·Á ¿ÏÀüÈ÷ ±â´ÉÀûÀÎ ProtocolCoRequestComplete ÇÔ¼ö¸¦ °¡Á®¾ß ÇÑ´Ù.

¸Å°³º¯¼ö

ProtocolBindingContext
ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¹ÙÀεù´ç ·±Å¸ÀÓ »óŸ¦ À¯ÁöÇÏ´Â ÇÁ·ÎÅäÄÝ ÇÒ´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. µå¶óÀ̹ö´Â NdisOpenAdapter ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÀÌ ÇÚµéÀ» Á¦°øÇÑ´Ù.

NdisRequest
NdisRequest ÇÔ¼ö¿¡ Àü¿¡ Àü´ÞµÈ ÇÁ·ÎÅäÄÝ Á¦°ø ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù.

Status
¾Æ·¡ µå¶óÀ̹ö ȤÀº NDIS¿¡ ÀÇÇØ ¼³Á¤µÈ ¿ä±¸ÀÇ ¸¶Áö¸· »óŸ¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ¸Å°³º¯¼ö´Â ProtocolRequestComplete ÇÔ¼ö°¡ NdisRequest ÇÔ¼ö¿¡ ±× Á¤º¸·Î ¾î¶² ÀÏÀ» Çß´ÂÁö °áÁ¤ÇÑ´Ù.

ÁÖ¼®

ProtocolRequestComplete ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº ÀÔ·Â Status °ªÀ» »ç¿ëÇÑ´Ù:

  • ¸¸¾à ÀÌ ¸Å°³º¯¼ö°¡ NDIS_STATUS_SUCCESS¶ó¸éÀº, NDIS_REQUEST ±¸Á¶Ã¼ÀÇ BytesRead ȤÀº BytesWritten ¸â¹öÀ̸éÀº ¾ó¸¶³ª ¸¹Àº ÇÁ·ÎÅäÄÝ Á¦°ø Á¤º¸°¡ ¼³Á¤ ¿¬»ê¿¡¼­ NIC¿¡°Ô InformationBuffer ¹öÆÛ·ÎºÎÅÍ Àü¼ÛµÇ´ÂÁö ȤÀº Äõ¸® ¿¬»ê¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î InformationBuffer ¿¡ ¾ó¸¶³ª ¸¹Àº Á¤º¸°¡ ¸®ÅϵǴÂÁö¸¦ ÁöÁ¤Çϱâ À§ÇØ ¾Æ·¡ µå¶óÀ̹ö ȤÀº NDIS¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

    ¸¸¾à ÇÁ·ÎÅäÄÝÀÌ Äõ¸®¸¦ ÇÑ´Ù¸éÀº, ProtocolRequestComplete ÇÔ¼ö´Â Oid ¸â¹öÀÇ °ª¿¡ ÀÇÁ¸Çϸ鼭 ¾î¶² ÇÁ·ÎÅäÄÝ °áÁ¤ ¹æ¹ýÀ¸·Î InformationBuffer¿¡ ¸®ÅÏµÈ µ¥ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

    ¿¹¸¦ µé¾î, ¸¸¾à ÇÁ·ÎÅäÄÝÀÌ ¿ø·¡ OID_GEN_MAXIMUM_SEND_PACKET Äõ¸®¿¡ ÃʱâÈ­µÇ¾îÁø´Ù¸éÀº, ProtocolRequestComplete ÇÔ¼ö´Â ProtocolBindingContext ¿µ¿ª¿¡ µå¶óÀ̹ö´Â NdisSendPackets ÇÔ¼ö¿¡ ´ëÇÑ °è¼ÓÀûÀΠȣÃâµéÀ» À§ÇØ µå¶óÀ̹ö°¡ ¼³Á¤ÇÒ ¹ß»ýÇÏ´Â º¸³»±âµéÀÇ ¼ö¸¦ ¸·±â À§ÇØ ProtocolBindingContext ¿µ¿ª¿¡ »óÅ º¯¼öµéÀ» ¼³Á¤ÇÒ °ÍÀÌ´Ù.

  • ¸¸¾à ÀÌ·¯ÇÑ ¸Å°³º¯¼ö´Â NDIS_STATUS_INVALID_LENGTH ȤÀº NDIS_STATUS_BUFFER_TOO_SHORTÀ̸éÀº, BytesNeeded ¸â¹ö´Â ¿ä±¸µÈ ¿¬»êÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ InformationBufferLength ÀÇ Oid ƯÁ¤ °ªÀ» ÁöÁ¤ÇÑ´Ù.

    ÀÌ·¯ÇÑ È¯°æµé¿¡¼­, ProtocolRequestComplete ÇÔ¼ö´Â ¿ä±¸¸¦ À§ÇØ ÃæºÐÇÑ ¹öÆÛ °ø°£À» ÇÒ´çÇÒ ¼ö ÀÖ°í, ÇÊ¿äÇÑ InformationBufferLength¿Í °°Àº Oid·Î ¶Ç ÇϳªÀÇ NDIS_REQUEST ±¸Á¶Ã¼¸¦ ¼³Á¤Çϰí NdisRequest ÇÔ¼ö¿¡ ´ëÇÑ È£ÃâÀ» ´Ù½Ã ½ÃµµÇÑ´Ù.

  • ¸¸¾à ÀÌ·¯ÇÑ ¸Å°³º¯¼ö´Â ȸº¹ÇÒ ¼ö ¾ø´Â ¿¡·¯ÀÎ NDIS_STATUS_XXX À̸éÀº, ProtocolReqeustComplete ÇÔ¼ö´Â NDIS_REQUEST ±¸Á¶Ã¼¸¦ À§ÇØ ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇØ¾ß Çϰí, µå¶óÀ̹ö°¡ NdisReset ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÏ´ÂÁö¸¦ °áÁ¤ÇØ¾ß Çϰí, ¹ÙÀεùÀ» ´Ý¾Æ¾ß Çϰí ȤÀº ¹ÙÀεù½Ã¿¡ °è¼ÓµÈ ³×Æ®¿öÅ© I/O ¿¬»êµéÀ» ´Ù·ç±â À§ÇØ ¹ÙÀεù ƯÁ¤ »óÅ Á¤º¸¸¦ Á¶Á¤ÇؾßÇÑ´Ù.
global Äõ¸®µé°ú ¼³Á¤µéÀ» À§ÇØ, NdisMQueryInformationComplete ÇÔ¼ö ȤÀº NdisMSetInformationComplete ÇÔ¼ö¿¡ ´ëÇÑ ¾Æ·¡ ºñ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®ÀÇ È£ÃâÀº NDIS°¡ ProtocolRequestComplete ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù. NDIS´Â ProtocolRequestComplete ÇÔ¼ö¿¡ ´ëÇÑ ÀÔ·Â Status·Î¼­ NdisM..InformationComplete ÇÔ¼ö¿¡ Àü´ÞµÈ ¹Ì´ÏÆ÷Æ® °áÁ¤ Status¿¡ Æ÷¿öµåÇÑ´Ù.

¹ÙÀεù ƯÁ¤ Äõ¸®µé¿¡ ´ëÇØ, NDIS´Â ProtocolRequestComplete ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. NDIS ¶óÀ̺귯¸®´Â ¸ðµç ¹Ì´ÏÆ÷Æ®µéÀ» À§ÇØ ¹ÙÀεùµéÀ» À¯ÁöÇϱ⠶§¹®¿¡, NDIS´Â ½Ã½ºÅÛÀÌ ÇÊÅÍ ¶óÀ̺귯¸®¸¦ Á¦°øÇϱâ À§ÇÑ °ÍÀ¸·Î¼­ ±×µéÀÇ ¹Ìµð¾ö ŸÀÔÀ» º¸°íÇÏ´Â ¾Æ·¡ µå¶óÀ̹ö¿¡ ´ëÇØ ´ÜÁö ¹ÙÀεù ƯÁ¤ Á¤º¸¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù. NDIS´Â ´Ù¸¥ ¹Ì´ÏÆ÷Æ®µé¿¡ ´ëÇØ ÇÁ·ÎÅäÄÝ ÃʱâÈ­µÈ ¹ÙÀεù ƯÁ¤ Äõ¸®µéÀ» À§ÇØ NDIS_STATUS_NOT_SUPPORTED¸¦ ¸®ÅÏÇÑ´Ù.

½Ã½ºÅÛ Á¤ÀÇ OIDµé¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¿¡ ´ëÇØ¼­ Part 2¸¦ ºÁ¶ó.

ProtocolRequestComplete ÇÔ¼ö´Â ÇÁ·ÎÅäÄÝÀÌ NdisRequest ÇÔ¼ö°¡ Status·Î ¸®ÅÏÇÏ´Â »óÅ Äڵ带 Á¶»çÇÒ ½Ã°£À» °¡Áö±â Àü¿¡ È£ÃâµÇ¾îÁú ¼ö ÀÖ´Ù.

µðÆúÆ®·Î, ProtocolReqeustComplete ÇÔ¼ö´Â arbitrary ¾²·¹µå ÄÁÅØ½ºÆ®³»¿¡¼­ IRQL DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.