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¿¡¼­ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¾²¿©Á®¾ß ÇÑ´Ù.