ProtocolCoRequstComplete
VOID
ProtocolCoRequestComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE ProtocolAfContext OPTIONAL,
IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
IN OUT PNDIS_REQUEST NdisRequest
);
|
ProtocolCoRequestComplete ÇÔ¼ö´Â NdisMCmRequest ÇÔ¼ö¿¡ ´ëÇÑ MCM µå¶óÀ̹öÀÇ È£ÃâÀÇ È¤Àº NdisCoRequest ÇÔ¼ö¿¡ ´ëÇÑ ¿¬°á ÁöÇâ Ŭ¶óÀ̾ðÆ®ÀÇ È¤Àº È¥ÀÚÀÎ ÄÝ ¸Å´ÏÀúÀÇ È£Ãâ¿¡ ´ëÇÑ °á°úµéÀ» ÈÄó¸®ÇÏ´Â ¿ä±¸µÈ ÇÔ¼öÀÌ´Ù.
¸Å°³º¯¼ö
- Status
- ÀÌ·¯ÇÑ ¿ä±¸¸¦ ´Ù·ç´Â ÀÀ´äÇϴ Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú¿¡ ÀÇÇØ ¼³Á¤µÈ NDIS_STATUS_SUCCESS ȤÀº ½ÇÆÐ NDIS_STATUS_XXX·Î µå¶óÀ̹ö ÃʱâÈµÈ ¿ä±¸ÀÇ ¸¶Áö¸· »óŸ¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ¸Å°³º¯¼ö¸¦ °áÄÚ NDIS_STATUS_PENDINGÀÌ ¾Æ´Ï´Ù.
- ProtocolAfContext
- µå¶óÀ̹öÀÇ AF´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÄÝ ¸Å´ÏÀú¿¡°Ô ¿¬°áÇϱâ À§ÇØ NdisClOpenAddressFamily ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÀÌ ÇÚµéÀ» Á¦°øÇÑ´Ù. ÄÝ ¸Å´ÏÀú´Â ProtocolCmOpenAf ÇÔ¼ö·ÎºÎÅÍ ÀÌ ÇÚµéÀ» Á¦°øÇϰí ÀÌ ÇÚµéÀº È¿À²ÀûÀ¸·Î À̿䱸°¡ Áö½ÃµÇ´Â ƯÁ¤ Ŭ¶óÀÌ¾ðÆ®¸¦ ÁöÁ¤ÇÑ´Ù.
- ProtocolVcContext
- Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú´Â ¸¸¾à ¿ä±¸°¡ VC ƯÁ¤À̸é Á¤º¸¸¦ ¿ä±¸Çϰųª ¼³Á¤ÇÏ´Â ¸ÖƼÆ÷ÀÎÆ® VC¿¡ ´ëÇÑ party¸¦ ÁöÁ¤ÇÏ´Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÀÌ ¸Å°³º¯¼ö´Â NULLÀÌ´Ù.
- NdisRequest
- µå¶óÀ̹ö°¡ ¼±Çà NdisCoRequest ȤÀº NdisMCmRequest ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ¿¡¼ Àü´ÞÇÑ NDIS_REQUEST ±¸Á¶Ã¼·Î Æ÷¸ËÈµÈ µå¶óÀ̹ö ÇÒ´ç ¹öÆÛ¸¦ °¡¸®Å²´Ù. NDIS_REQUEST ±¸Á¶Ã¼ÀÇ Oid ¸â¹ö´Â ÀÀ´äÇϴ Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú°¡ Äõ¸®¸¦ À§ÇÑ ¿ä±¸µÈ Á¤º¸¸¦ ¸®ÅÏÇϰųª ¸¸¾à Status°¡ NDIS_STATUS_SUCCESSÀÌ¸é ¼³Á¤À» À§ÇÑ ÁÖ¾îÁø Á¤º¸¸¦ Àü´ÞÇÏ´Â ¹öÆÛ·Î ¿ä±¸µÈ Äõ¸® ȤÀº ¼³Á¤ ¿¬»êÀ» ÁöÁ¤ÇÏ´Â ½Ã½ºÅÛ Á¤ÀÇ OID_GEN_CO_XXX Äڵ带 Æ÷ÇÔÇÑ´Ù.
ÁÖ¼®
ProtocolCoRequestComplete ÇÔ¼ö´Â ÀÔ·Â Status¸¦ ´ÙÀ½°ú °°Àº °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- ¸¸¾à ÀÌ·¯ÇÑ ¸Å°³º¯¼ö°¡ NDIS_STATUS_SUCCESSÀ̸é, NDIS_REQUEST ±¸Á¶Ã¼ÀÇ BytesRead ȤÀº BytesWritten ¸â¹ö´Â ¾ó¸¶³ª ¸¹Àº µ¥ÀÌÅͰ¡ InformationBuffer ¹öÆÛ·Î Àü¼ÛµÇ¾îÁö´ÂÁö¸¦ ÁöÁ¤Çϱâ À§ÇØ ¼³Á¤µÈ´Ù.
¸¸¾à ÁÖ¾îÁø OID_GEN_CO_XXX°¡ Äõ¸®À̸é, ProtocolCoRequestComplete ÇÔ¼ö´Â Oid¸â¹öÀÇ °ª¿¡ ÀÇÁ¸ÇÏ´Â ¾î¶² µå¶óÀ̹ö °áÁ¤ ¹æ¹ýÀ¸·Î InformationBuffer¿¡ ¸®ÅϵǴ µ¥ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ProtocolCoRequestComplete ÇÔ¼ö´Â µå¶óÀ̹ö°¡ ÀÌ·¯ÇÑ ¿ä±¸ÀÇ ÈÄ󸮸¦ ¿Ï¼ºÇÒ ¶§ NdisRequest µå¶óÀ̹ö ÇÒ´ç ¹öÆÛµé°ú InformationBuffer¸¦ ÇØÁ¦ÇÒ Ã¥ÀÓÀÌ ÀÖ´Ù.
- ¸¸¾à ÀÌ·¯ÇÑ ¸Å°³º¯¼ö°¡ NDIS_STATUS_INVALID_LENGTH ȤÀº NDIS_STATUS_BUFFER_TOO_SHORTÀ̸é, BytesNeeded ¸â¹ö´Â ¿ä±¸µÈ ¿¬»êÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ InformationBufferLengthÀÇ Oid ƯÁ¤ °ªÀ» ÁöÁ¤ÇÑ´Ù.
ÀÌ·¯ÇÑ È¯°æµé¿¡¼, ProtocolCoRequestComplete ÇÔ¼ö´Â ¿ä±¸¸¦ À§ÇÑ ÃæºÐÇÑ ¹öÆÛ °ø°£À» ÇÒ´çÇÒ ¼ö ÀÖ°í, ¿ä±¸µÈ InformationBufferLength¿Í °°Àº Oid °ªÀ¸·Î ¶Ç ÇϳªÀÇ NDIS_REQUEST ±¸Á¶Ã¼¸¦ ¼³Á¤Çϰí NdisCoRequest ȤÀº NdisMCmRequest ÇÔ¼ö¿¡ ´ëÇÑ È£ÃâÀ» Àç½ÃµµÇÑ´Ù.
- ¸¸¾à ÀÌ·¯ÇÑ ¸Å°³º¯¼ö°¡ ȸº¹ÇÒ ¼ö ¾ø´Â ¿¡·¯¸¦ °¡¸®Å°´Â NDIS_STATUS_XXXÀ̸é, ProtocolCoRequestComplete ÇÔ¼ö´Â NdisRequest ¹öÆÛ¸¦ ÇØÁ¦ÇØ¾ß Çϰí ÇÊ¿äÇÑ ¾î¶² µå¶óÀ̹ö °áÁ¤ ¿¬»êµéÀ» ½ÇÇàÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, ProtocolCoRequestComplete ÇÔ¼ö´Â ¸¸¾à ¸®ÅÏµÈ ¿¡·¯ »óŰ¡ µå¶óÀ̹ö°¡ °¡»ó ¿¬°á¿¡¼ °è¼ÓÇØ¼ Àü¼ÛÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» °¡¸®Å²´Ù¸é µå¶óÀ̹ö°¡ ¸¸µç VC¸¦ ²÷¾î¾ß ÇÑ´Ù.
½ÉÁö¾î NdisCoRequest ȤÀº NdisMCmRequest ÇÔ¼ö¿¡ ´ëÇÑ µå¶óÀ̹ö È£ÃâÀÌ NDIS_STATUS_PENDING¿Ü¿¡ ¾î¶² °ÍÀ» ¸®ÅÏÇÑ´Ù¸é, ±×·¯ÇÑ µå¶óÀ̹ö´Â ¿Ï¼ºµÈ ¿ä±¸µéÀ» ÈÄó¸®Çϱâ À§ÇØ ProtocolCoRequestComplete ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. NdisCoRequest ȤÀº NdisMCmRequest ÇÔ¼ö·ÎºÎÅÍ ¸®ÅϵÇÀÚ ¸¶ÀÚ µå¶óÀ̹öÀÇ ÀÚ½ÅÀÇ ProtocolCoRequestComplete ÇÔ¼ö¿¡ ´ëÇÑ ³»ºÎ È£ÃâÀ» ÇÏ´Â °ÍÀº µå¶óÀ̹öÀÇ ÆÛÆ÷¸Õ½ºÀÇ ¿ª ¿µÇâÀ» ÁÖÁö ¾Ê°í µå¶óÀ̹öÀÇ À̹ÌÁö¸¦ ´õ ÀÛ°Ô ¸¸µé°í ±×·¯ÇÑ µå¶óÀ̹ö´Â µå¶óÀ̹ö ÃʱâÈµÈ ¿ä±¸µéÀ» üŷÇÏ´Â »óÅ ¸®Åϸ¦ ÇÏ´Â Äڵ带 º¹Á¦ÇÏÁö ¾Ê±â ¶§¹®¿¡ ÇϳªÀÇ OS ¹èÆ÷¿¡¼ ´ÙÀ½ ¹èÆ÷¸¦ À¯ÁöÇÏ´Â °ÍÀ» ´õ ½±°Ô ÇÑ´Ù.
NdisCoRequest ±×¸®°í NdisMCmRequest ÇÔ¼ö·Î »ç¿ëÀ» À§ÇØ Á¤ÀÇµÈ OIDµéÀÇ ¼³Á¤¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸´Â ÀÌ ¸Å´º¾óÀÇ Part 2¸¦ ºÁ¶ó.
ProtocolCoRequestComplete ÇÔ¼ö´Â IRQL DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¾²¿©Á®¾ß ÇÑ´Ù.
|