NdisCoRequest
NDIS_STATUS
NdisCoRequest(
IN NDIS_HANDLE NdisBindingHandle,
IN NDIS_HANDLE NdisAfHandle OPTIONAL,
IN NDIS_HANDLE NdisVcHandle OPTIONAL,
IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
IN OUT PNDIS_REQUEST NdisRequest
);
|
NdisCoRequestÇÔ¼ö´Â OID_GEN_CO_XXXȤÀº Ŭ¶óÀÌ¾ðÆ®·Î ºÎÅÍ µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀú ȤÀº vice versa±îÁö ±×¸®°í Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú·ÎºÎÅÍ ÇÏÀ§ ´Ð ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö±îÁö ¿¬°á ÁöÇ⠹̵ð¾ö-ÁöÁ¤ OID_XXX¿äûÀ» ½ÇÇàÇÑ´Ù.
¸Å°³º¯¼ö
- NdisBindingHandle
- Ÿ°Ù ´Ð ȤÀº È£ÃâÀÚ°¡ ¹ÙÀεùµÈ ´ÙÀ½ ÇÏÀ§ µå¶óÀ̹öÀÇ °¡»ó ´ÐÀ» È®ÀÎÇÏ´Â NdisOpenAdapterÇÔ¼ö¿¡ÀÇÇØ ¸®ÅÏµÈ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- NdisAfHandle
- À̰ÍÀº Ŭ¶óÀ̾ðÆ®, ÄÝ ¸Å´ÏÀú,±×¸®°í NDIS»çÀÌ¿¡ °øÀ¯µÇ¾îÁö´Â ¿ÀÇ ¾îµå·¹½º ÆÐ¹Ð¸®¸¦ È®ÀÎÇÏ´Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- ¸¸¾à È£ÃâÀÚ°¡ ÄÝ ¸Å´ÏÀú·Î ÇÏ¿©±Ý ¿äûÀ» ¸¸µéµµ·Ï Çϴ Ŭ¶óÀÌ¾ðÆ®¶ó¸é, Ŭ¶óÀÌ¾ðÆ®´Â ¿ø·¡ NdisClOpenAddressFamilyÇÔ¼ö¿¡´ëÇÑ ¼º°øÀûÀΠȣÃâ·ÎºÎÅÍ ÀÌÇÚµéÀ» ¾ò´Â´Ù.
- ¸¸¾à È£ÃâÀÚ°¡ Ŭ¶óÀÌ¾ðÆ®¿¡´ëÇÑ ¿äûÀ» ¸¸µå´Â µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀúÀ̸é, CMÀº óÀ½¿¡ ProtocolCmOpenAfÇÔ¼ö¿¡´ëÇÑ ÀÔ·Â ÆÄ¶ó¹ÌÅͷνá ÀÌ ÇÚµéÀ» ¾ò´Â´Ù.
- NdisVcHandle
- ¸¸¾à ¿äûÀÌ VCÁöÁ¤À̸é È£ÃâÀÚ°¡ Á¤º¸¸¦ ¿äûÇϰųª ¼³Á¤Çϰí Àִ°Ϳ¡´ëÇÑ VC¸¦ È®ÀÎÇÏ´Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é NULLÀÌ´Ù. VCÁöÁ¤ ¿äû¿¡´ëÇØ, ÄÝ ¸Å´ÏÀú´Â óÀ½¿¡ NdisCoCreateVcÇÔ¼ö·Î VC¸¦ ¸¸µé¶§³ª ȤÀº ProtocolCoCreateVcÇÔ¼ö¿¡´ëÇÑ ÀÔ·Â ÆÄ¶ó¹ÌÅͷνá ÀÌÇÚµéÀ» ¾ò´Â´Ù. ÇÏÀ§ ´Ð ¹Ì´ÏÆ÷Æ®¿¡°Ô µð·ºÆ®µÇ´Â VCÁöÁ¤ ¿äû¿¡´ëÇØ ÀÌÇÚµéÀº VC¸¦ È®ÀÎÇÑ´Ù. NdisAfHandle°ú NdisPartyHandleÀÌ NULLÀÎ µ¿¾È.
- NdisPartyHandle
- ¸¸¾à ¿äûÀÌ ÆÄƼ ÁöÁ¤À̸é È£ÃâÀÚ°¡ ¿äûÇϰųª ¼³Á¤ÇÏ´Â °Í¿¡´ëÇÑ ¸ÖƼÆ÷ÀÎÆ®VC¿¡´ëÇÑ ÆÄƼ¸¦ È®ÀÎÇϱâÀ§ÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÀÌ ÆÄ¶ó¹ÌÅÍ´Â NULLÀÌ´Ù. ¾î¶² ÆÄƼ ÁöÁ¤ ¿äû¿¡´ëÇØ, Ŭ¶óÀÌ¾ðÆ®´Â Ã³À½¿¡ NdisClAddParty ȤÀºNdisClMakeCallÇÔ¼ö·ÎÅÍ ÀÌ ÇÚµéÀ» ¾ò°í, ÄÝ ¸Å´ÏÀú´Â ÀÌ ÇÚµéÀ» ProtocolCmAddPartyÇÔ¼ö¿¡´ëÇÑ ÀÔ·Â ÆÄ¶ó¹ÌÅÍ·Î½á ¾ò´Â´Ù. ¸¸¾à NdisAfHandleÀÌ NULLÀ̸é, ÀÌ ÆÄ¶ó¹ÌÅÍ ¶ÇÇÑ NULLÀÌ´Ù.
- NdisRequest
- È£ÃâÀÚ¿¡ÀÇÇØ ¼³Á¤µÇ°í NDIS_REQUESTŸÀÔÀÇ ±¸Á¶Ã¼·Î Çü½ÄÈµÈ È£ÃâÀÚ Á¦°ø »óÁÖ ¹öÆÛÀÇ Æ÷ÀÎÅÍ.
¸®Åϰª
NdisCoRequestÇÔ¼ö°¡ NDIS_STATUS_PENDINGÀÌ¿ÜÀÇ °ÍÀ» ¸®ÅÏÇÒ¶§, È£ÃâÀÚ´Â ProtocolCl/CmRequestCompleteÇÔ¼ö¿¡´ëÇÑ ³»ºÎÀûÀΠȣÃâÀ» ¸¸µé¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, NDIS´Â µå¶óÀ̹öÀÇ ProtocolCl/CmRequestCompleteÇÔ¼ö¸¦ ÀÌ¿¬»êÀÌ ³¡³¯¶§ È£ÃâÇÑ´Ù.
ÁÖ¼®
NdisCoRequestÇÔ¼ö¸¦ È£ÃâÇϱâÀü¿¡, ÇÁ·ÎÅäÄÝÀº ¿äû¿¡´ëÇÑ ¹öÆÛ¸¦ ÇÒ´çÇϰí NDIS_REQUEST±¸Á¶Ã¼¸¦ ÃʱâÈ ÇÑ´Ù. ±×·± µå¶óÀ̹ö´Â ÄÝ ¸Å´ÏÀúȤÀº Ŭ¶óÀÌ¾ðÆ®¿ÍÀÇ Åë½Å¶§, ½Ã½ºÅÛ Á¤ÀÇ OID_GEN_CO_XXXÄÚµå·Î NDIS_REQUEST±¸Á¶Ã¼ÀÇ Oid¸â¹ö¸¦ ¼³Á¤ÇÑ´Ù. ÇÏÀ§ ´Ð ¹Ì´ÏÆ÷Æ® ´ÙÀÌ·ºÆ®µÈ ¿äû¿¡´ëÇØ, ÇÁ·ÎÅäÄÝÀº Oid¸â¹ö¸¦ OID_GEN_CO_XXXȤÀº NdisCoRequestÇÔ¼öÀÇ È£Ãâ¶§ OID_ATM_ALIGNMENT_REQUIREDó·³ ¹Ìµð¾ö ÁöÁ¤ OID_XXXÄڵ带 ¼³Á¤ÇÒ¼ö ÀÖ´Ù.
NdisAfHandleÀÇ °ª¿¡ ÀÇÁ¸ÇÏ¿©, Ŭ¶óÀÌ¾ðÆ®¿Í µ¶¸³ÀûÀÎ ÄݸŴÏÀúµéÀº °¢°¢ ȤÀº ÇÏÀ§ ¿¬°áÁöÇâ ´Ð ¹Ì´ÏÆ÷Æ®¿Í Åë½ÅÇϱâÀ§ÇØ NdisCoRequestÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
NdisVcHandle¿¡ NULLÀ» ³Ñ±â´Â°ÍÀº ¿äûÀÌ Å¬¶óÀ̾ðÆ®, ÄÝ ¸Å´ÏÀú ȤÀº ¹Ì´ÏÆ÷Æ®¿¡°Ô ´ÙÀÌ·ºÆ®µÇ´ÂÁö ½ÇÁ¦·Î ±×·± ¿äûÀ» ¸¸µç´Ù. ¿¹¸¦µé¾î, ÇÏÀ§ ¿¬°áÁöÇâ ´Ð ¹Ì´ÏÆ÷Æ®¿¡°Ô OID_GEN_CO_RCV_CRC_ERROR¿äûÀº ¸¸¾à È£ÃâÀÚ°¡ È®½ÇÇÑ NdisVcHandle¸¦ Á¦°øÇÑ´Ù¸é, ¹Ì´ÏÆ÷Æ®°¡ ƯÁ¤ÇÑ VC¿¡ ÀεðÄÉÀÌÆ®µÈ ¸ðµç ¼ö½Å¿¡¼ ¸¶ÁÖÄ£ CRC¿¡·¯µéÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®¿Í µ¶¸³ÀûÀÎ ÄÝ ¸Å´ÏÀúµéÀº ÇÁ·ÎÅäÄÝÀÌ ÇÏÀ§ ´Ð µå¶óÀ̹ö¿¡´ëÇØ ¹ÙÀεùµÈÈÄ Ãʱâȵ¿¾È¿¡ OID_GEN_SUPPORTED_LISTÄõ¸®¿¡´ëÇØ ¸®ÅϵȰÍó·³ ¿¬°áÁöÇâÀÌ ¾Æ´Ñ ¸ðµç OIDµé·Î NdisRequestÇÔ¼ö¸¦ È£ÃâÇØ¾ß¸¸ ÇÑ´Ù.
NdisCoRequest¿Í NdisRequestÇÔ¼ö¸¦ »ç¿ëÇϴ°Ϳ¡´ëÇØ Á¤ÀÇµÈ OIDµéÀÇ ¼³Á¤¿¡´ëÇÑ ´õ¸¹Àº Á¤º¸´Â ÀÌ ¸Å´º¾óÀÇ Part 2¸¦ º¸¾Æ¶ó.
´ÜÁö ½º½º·Î¸¦ NDIS·Î ÇÁ·ÎÅäÄÝ·Î½á µî·ÏÇÏ´Â ÄÝ ¸Å´ÏÀú¿Í Ŭ¶óÀÌ¾ðÆ®¸¸ÀÌ NdisCoRequestÇÔ¼ö¸¦ È£ÃâÇÒ¼ö ÀÖ´Ù. ÅëÇÕ ÄÝ ¸Å´ÏÁö¸ÕÆ®¸¦ Áö¿øÇÏ´Â ¿¬°áÁöÇâ ´Ð ¹Ì´ÏÆ÷Æ®´Â ±×µéÀÇ Å¬¶óÀÌ¾ðÆ®¿Í Åë½ÅÇϱâÀ§ÇØ ´ë½Å NdisMCmRequestÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
NdisCoRequestÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼ µ¿À۵ǾîÁú¼ö ÀÖ´Ù.
|