ProtocolCoRequest
NDIS_STATUS
ProtocolCoRequest(
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
IN OUT PNDIS_REQUEST NdisRequest
);
|
ProtocolCoRequest ÇÔ¼ö´Â ÀÀ´äÇϴ Ŭ¶óÀÌ¾ðÆ®µé È¥ÀÚÀÇ ÄÝ ¸Å´ÏÀú·ÎºÎÅÍ NdisCoRequest ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ¿¡ ÀÇÇØ Ãʱâȵǰųª ȤÀº NdisMCmRequest ÇÔ¼ö¿¡ ´ëÇÑ MCM µå¶óÀ̹öÀÇ È£Ãâµé¿¡ ÀÇÇØ ÃʱâÈµÈ OID_CO_XXX ¿ä±¸µéÀ» ´Ù·ç´Â ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù.
¸Å°³º¯¼ö
- ProtocolAfContext
- µå¶óÀ̹öÀÇ AF´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÄÝ ¸Å´ÏÀú¿¡ ¿¬°áÇϱâ À§ÇØ NdisClOpenAddressFamily ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÀÌ ÇÚµéÀ» Á¦°øÇÑ´Ù. ÄÝ ¸Å´ÏÀú´Â ProtocolCmOpenAf ÇÔ¼ö·ÎºÎÅÍ ÀÌ ÇÚµéÀ» Á¦°øÇÏ°í ±×·¡¼ ÀÌ ÇÚµéÀº È¿À²ÀûÀ¸·Î ÀÌ ¿ä±¸¸¦ ¹ß»ýÇÑ Æ¯Á¤ Ŭ¶óÀÌ¾ðÆ®¸¦ °¡¸®Å²´Ù.
- ProtocolVcContext
- Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú°¡ ¸¸¾à ¿ä±¸°¡ VC ƯÁ¤À̶ó¸é Á¤º¸¸¦ ¿ä±¸Çϰųª ȤÀº ¼³Á¤Çϱâ À§ÇÑ È°¼ºÈµÈ VC¸¦ ÁöÁ¤ÇÏ´Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÀÌ·¯ÇÑ ¸Å°³º¯¼ö´Â NULLÀÌ´Ù.
- ProtocolPartyContext
- Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú°¡ ¸¸¾à ¿ä±¸°¡ party ƯÁ¤À̸é Á¤º¸¸¦ ¿ä±¸Çϰųª ȤÀº ¼³Á¤Çϱâ À§ÇØ ¸ÖƼ Æ÷ÀÎÆ® VC¿¡ party¸¦ ÁöÁ¤ÇÏ´Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÀÌ ¸Å°³º¯¼ö´Â NULLÀÌ´Ù.
- NdisRequest
- ProtocolCoRequest ÇÔ¼ö¿¡ ÀÇÇØ ½ÇÇàµÇ¾îÁö´Â ¿¬»êÀ» ÁöÁ¤ÇÏ´Â NDIS_REQUEST ±¸Á¶Ã¼·Î Æ÷¸ËÈµÈ ¹öÆÛ¸¦ °¡¸®Å²´Ù. NDIS_REQUEST ±¸Á¶Ã¼ÀÇ Oid ¸â¹ö´Â ÇÁ·ÎÅäÄÝÀÌ Äõ¸®¸¦ À§ÇÑ ¿ä±¸µÈ Á¤º¸¸¦ ¸®ÅÏÇϴ ȤÀº ¼³Á¤À» À§ÇÑ ÁÖ¾îÁø Á¤º¸¸¦ Àü¼ÛÇÏ´Â ¹öÆÛ·Î ¿ä±¸µÈ Äõ¸® ȤÀº ¼³Á¤ ¿¬»êÀ» ÁöÁ¤ÇÏ´Â ½Ã½ºÅÛ Á¤ÀÇ OID_GEN_CO_XXX Äڵ带 Æ÷ÇÔÇÑ´Ù.
¸®Åϰª
ProtocolCoRequest ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº Çϳª¸¦ ¸®ÅÏÇÑ´Ù.
- NDIS_STATUS_SUCCESS
- Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú´Â ¿ä±¸µÈ ¿¬»êÀ» ½ÇÇàÇÑ´Ù.
- NDIS_STATUS_PENDING
- Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú´Â ºñµ¿±âÀûÀ¸·Î ÀÌ·¯ÇÑ ¿ä±¸¸¦ ´Ù·ç°í ¿ä±¸µÈ ¿¬»êÀÌ ÇàÇØÁ³À» ¶§ NdisCoRequestComplete ÇÔ¼ö(ȤÀº ÅëÇÕµÈ ÄÝ °ü¸®¸¦ Áö¿øÇÏ´Â NIC ¹Ì´ÏÆ÷Æ®´Â NdisMCmRequestComplete ÇÔ¼ö)¸¦ È£ÃâÇÒ °ÍÀÌ´Ù.
- NDIS_STATUS_INVALID_LENGTH ȤÀº NDIS_STATUS_BUFFER_TOO_SHORT
- µå¶óÀ̹ö´Â NdisCoRequest ȤÀº NdisMCmRequest ÇÔ¼öÀÇ È£ÃâÀÚ°¡ ÁÖ¾îÁø ¿ä±¸¸¦ ¿ìÇÑ Àû´çÇÑ InformationBuffer¸¦ Á¦°øÇÏÁö ¾Ê±â ¶§¹®¿¡ ÀÌ·¯ÇÑ ¿ä±¸´Â ½ÇÆÐÇÑ´Ù. µå¶óÀ̹ö´Â ¿ä±¸µÈ ¿¬»êÀ» ½ÇÇàÇϱâÀ§ÇØ ¿ä±¸µÈ InformationBufferLengthÀÇ Oid ƯÁ¤ °ªÀ¸·Î NdisRequestÀÎ ¹öÆÛ¿¡ BytesNeeded ¸â¹ö¸¦ ¼³Á¤ÇÑ´Ù.
- NDIS_STATUS_XXX
- Ŭ¶óÀÌ¾ðÆ®´Â È¤Àº ÄÝ ¸Å´ÏÀú´Â ¼³Á¤À» À§ÇØ ÁöÁ¤µÈ À¯È¿ÇÏÁö ¾ÊÀº ÀÔ·Â µ¥ÀÌÅÍó·³ ¸î¸î µå¶óÀ̹ö °áÁ¤ ÀÌÀ¯¸¦ À§ÇÑ ¿ä±¸¸¦ ½ÇÆÐÇÑ´Ù.
- NDIS_STATUS_NOT_SUPPORTED
- Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú´Â NdisRequestÀÎ ¹öÆÛ³»¿¡ Oid ¸â¹ö³»¿¡ OID_GEN_CO_XXX Äڵ带 ÀνÄÇÏÁö ¸øÇϱ⠶§¹®¿¡ ÀÌ·¯ÇÑ ¿ä±¸¸¦ ½ÇÆÐÇÑ´Ù.
ÁÖ¼®
¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®µé°ú È¥ÀÚÀÇ ÄÝ ¸Å´ÏÀúµéÀº ±×µéÀÌ NdisCoRequest ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ¿Ü¿¬ÀûÀÎ NdisAfHandle¸¦ ÁöÁ¤ÇÔÀ¸·Î½á ¼·Î Á¤º¸¸¦ Åë½ÅÇÑ´Ù. À¯»çÇϰÔ, ÅëÇÕµÈ ÄÝ °ü¸® Áö¿øÀ» °¡Áø ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®´Â °¢°¢ÀÇ Å¬¶óÀÌ¾ðÆ®µé·Î Á¤º¸¸¦ Åë½ÅÇϱâ À§ÇØ ¿Ü¿¬ÀûÀÎ NdisAfHandles·Î NdisMCmRequest ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ¿Ü¿¬ÀûÀÎ NdisAfHandleÀ» °¡Áø NdisCoRequest ȤÀº NdisMCmReqeust ÇÔ¼ö¿¡ ´ëÇÑ È£ÃâÀº NDIS¿¡°Ô ÁÖ¾îÁø NdisAfHandle¸¦ °øÀ¯Çϴ Ŭ¶óÀ̾ðÆ®, È¥ÀÚÀÇ ÄÝ ¸Å´ÏÀú ȤÀº MCM µå¶óÀ̹öÀÇ ProtocolCoRequest ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù.
¸¸¾à ÀÔ·Â NdisVcHandle°ú NdisPartyHandleÀÌ NULLÀ̸é, ProtocolCoRequest ÇÔ¼ö´Â ¿ø·¡ ¿ä±¸°¡ global·Î ¿©°ÜÁú ¼ö ÀÖ´Ù. ¿¹·Î ProtocolCoRequest ÇÔ¼ö´Â ÁÖ¾îÁø ÁÖ¼Ò ÆÐ¹Ð¸®¿¡¼ ¾î¶² Ȱ¼ºÈÇÑ ¸ÖƼÆ÷ÀÎÆ® VCµéÀ» Æ÷ÇÔÇÏ´Â ¸ðµç ÇöÀç Ȱ¼ºÈ VCµé¿¡ ´ëÇÑ Á¤º¸¸¦ ¸®ÅÏÇÔÀ¸·Î½á ¿Ü¿¬ÀûÀÎ NdisAfHandleÀ» Àü´ÞÇϱâ À§ÇÑ ¾î¶² OID_GEN_CO_XXX Äõ¸®¸¦ ¸¸Á·ÇÑ´Ù.
¿Ü¿¬ÀûÀÎ NdisVcHandle ȤÀº NdisPartyHandleÀº ProtocolCoRequest ÇÔ¼ö´Â °¢°¢ VC´ç ȤÀº Party Åä´ë·Î ÁÖ¾îÁø ¿ä±¸¸¦ ¸¸Á·ÇØ¾ß ÇÑ´Ù.
ProtocolCoRequest ÇÔ¼ö´Â NdisRequestÀÎ ¹öÆÛ°¡ ºñÆäÀÌÁöÈµÈ pool·ÎºÎÅÍ ÇÒ´çµÇ°í »ó½ÂµÈ IRQL¿¡¼ Á¢±ÙÇÒ ¼ö ÀÖ´Ù°í ÃßÃøµÉ ¼ö ÀÖ´Ù. NdisCoRequest(ȤÀº NdisMCmRequest) ÇÔ¼öÀÇ È£ÃâÀÚ´Â ¿ä±¸°¡ ¿Ï¼ºµÉ ¶§ ÇÒ´çÇÑ InformationBufferÀÎ ³»ºÎ ¹öÆÛ¿Í ÀÌ·¯ÇÑ ¹öÆÛ¸¦ ÇØÁ¦Çϱâ À§ÇØ Ã¥ÀÓÁú ¼ö ÀÖ´Ù.
¸¸¾à ProtocolCoRequest ÇÔ¼ö°¡ NDIS_STATUS_PENDINGÀ» ¸®ÅÏÇÑ´Ù¸é, µå¶óÀ̹ö´Â ÁÖ¾îÁø ¿ä±¸¸¦ ¸¸Á·ÇÏ´Â ¿¬»êµéÀ» ¿Ï¼ºÇÒ ¶§ NdisCoRequestComplete ÇÔ¼ö ȤÀº MCM µå¶óÀ̹ö¸¦ À§ÇØ NdisMCmRequestComplete ÇÔ¼ö¸¦¿¡ ´ëÇÑ °è¼ÓÀûÀΠȣÃâÀ» ÇØ¾ß ÇÑ´Ù.
NdisCoRequest, NdisMCmRequest, NdisRequest·Î »ç¿ëÇÏ´Â OIDµéÀÇ ¼³Á¤¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ À§ÇØ ÀÌ ¸Å´º¾óÀÇ Part 2¸¦ ºÁ¶ó.
ProtocolCoRequest ÇÔ¼ö´Â IRQL DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¾²¿©Á®¾ß ÇÑ´Ù.
|