MiniportQueryInformation
NDIS_STATUS
MiniportQueryInformation(
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_OID Oid,
IN PVOID InformationBuffer,
IN ULONG InformationBufferLength,
OUT PULONG BytesWritten,
OUT PULONG BytesNeeded
);
|
MiniportQueryInformationÀº µå¶óÀ̹öÀÇ È¤Àº ±× NICÀÇ ´É·Â°ú »óÅ¿¡ ´ëÇÑ Á¤º¸¸¦ ¸®ÅÏÇÏ´Â ¿ä±¸µÈ ÇÔ¼öÀÌ´Ù.
¸Å°³º¯¼ö
- MiniportAdapterContext
- µå¶óÀ̹ö°¡ MiniportInitialize¿¡¼ ¼³Á¤µÈ NIC¿¡ ´ëÇÑ »óŸ¦ À¯ÁöÇÏ´Â ¹Ì´ÏÆ÷Æ® ÇÒ´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ
ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- Oid
- µå¶óÀ̹ö°¡ ½ÇÇàÇØ¾ß ÇÒ ±Û·Î¹ú Äõ¸® ¿¬»êÀ» ÁöÁ¤ÇÏ´Â (designating) ½Ã½ºÅÛ Á¤ÀÇ OID_XXX Äڵ带 ÁöÁ¤ÇÑ´Ù.
- InformationBuffer
- MiniportQueryInformationÀº OID ƯÁ¤ Á¤º¸¸¦ ¸®ÅÏÇØ¾ß ÇÏ´Â ¹öÆÛ¸¦ °¡¸®Å²´Ù.
- InformationBufferLength
- InformationBuffer¿¡ ´ëÇÑ ¹ÙÀÌÆ® ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
- BytesWritten
- MiniportQueryInformationÀº InformationBuffer¿¡¼ ¸®ÅÏÇÏ´Â ¹ÙÀÌÆ® ¼ö¸¦ ¼³Á¤ÇÏ´Â º¯¼ö¸¦ °¡¸®Å²´Ù.
- BytesNeeded
- MiniportQueryInformationÀº ¸¸¾à InformationBufferLength°¡ Oid°¡ ¿ä±¸ÇÑ °Íº¸´Ù ÀÛ´Ù¸éÀº ¿ä±¸¸¦
¸¸Á·Çϴµ¥ ÇÊ¿äÇÑ Ãß°¡ÀûÀÎ ¹ÙÀÌÆ® ¼ö¸¦ ¼³Á¤ÇÏ´Â º¯¼ö¸¦ °¡¸®Å²´Ù.
¸®Åϰª
MiniportQueryInformationÀº ´ÙÀ½ Áß Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.
- NDIS_STATUS_SUCCESS
- MiniportQueryInformationÀº InformationBuffer¿¡¼ ¿ä±¸µÈ Á¤º¸¸¦ ¸®ÅÏÇÏ°í ¸®ÅÏµÈ Á¤º¸ ¾ç¿¡
´ëÇØ BytesWritten º¯¼ö¸¦ ¼³Á¤ÇÑ´Ù.
- NDIS_STATUS_PENDING
- µå¶óÀ̹ö´Â ¿ä±¸µÈ Á¤º¸¸¦ ¸ðÀ» ¶§ NdisMQueryInformationComplete¿¡ ´ëÇÑ È£Ãâ·Î ºñµ¿ÀûÀÎ ¿ä±¸¸¦ ¿Ï¼ºÇÒ
°ÍÀÌ´Ù.
- NDIS_STATUS_INVALID_OID
- MiniportQueryInformationÀº Oid¸¦ ÀνÄÇÏÁö ¾Ê´Â´Ù.
- NDIS_STATUS_INVLAID_LENGTH
- InformationBufferLength´Â ÁÖ¾îÁø Oid¿¡ ÀÇÇØ ÇÊ¿äÇÑ ±æÀÌ¿Í ¸ÅÄ¡ÇÏÁö ¾Ê´Â´Ù.
MiniportQueryInformationÀº ¹öÆÛ°¡ BytesNeeded¿¡¼ ¾ó¸¶³ª ¸¹Àº ¹ÙÀÌÆ® ¼ö°¡ µÇ´ÂÁö¸¦ ¸®ÅÏÇÑ´Ù.
- NDIS_STATUS_NOT_ACCEPTED
- MiniportQueryInformationÀº NICÀ¸·ÎºÎÅÍ ¿ä±¸µÈ Á¤º¸¸¦ ¸ðÀ¸·Á°í ÇßÁö¸¸Àº ¼º°øÇÏÁö ¸øÇß´Ù.
- NDIS_STATUS_NOT_SUPPORTED
- MiniportQueryInformationÀº Oid¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. ¼±ÅÃÀûÀÌ´Ù.
- NDIS_STATUS_RESOURCES
- MiniportQueryInformationÀº ¿ä±¸µÈ Á¤º¸¸¦ ¸®ÅÏÇϱâ À§ÇÑ ÃæºÐÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇÒ ¼ö ¾ø´Ù. ÀÌ ¸®ÅÏ °ªÀº
¹Ýµå½Ã ³ªÁß¿¡ Á¦ÃâµÈ °°Àº ¿ä±¸°¡ °°Àº ÀÌÀ¯·Î ½ÇÆÐÇÑ´Ù°í´Â ÀǹÌÇÏÁö ¾Ê´Â´Ù.
ÁÖ¼®
NDIS´Â ÀÚ±â ÀÚ½ÅÀ» À§Çؼ MiniportQueryInformationÀ» È£ÃâÇÑ´Ù.
µå¶óÀ̹ö°¡ Áö¿øÇÏ´Â ¿É¼ÇµéÀÌ ¹«¾ùÀÎÁö °áÁ¤Çϱâ À§ÇØ È¤Àº ¹Ì´ÏÆ÷Æ®¸¦ À§ÇØ ¹ÙÀεù ƯÁ¤ Á¤º¸¸¦ °ü¸®Çϱâ À§ÇØ
¹ÙÀεù ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ NdisRequest¸¦ È£ÃâÇÒ ¶§.
NDIS´Â µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö°¡ NDIS_STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ ÈÄ, ´ÜÁö MiniportQueryInformation¿¡
´ëÇÑ Çϳª³ª ±× ÀÌ»óÀÇ È£ÃâµéÀ» ÇÑ´Ù.
NDIS´Â µå¶óÀ̹öÀÇ MiniportQueryInformation ÇÔ¼ö¿¡ ´ëÇÑ ÃʱâÈ ½Ã È£Ãâ¿¡¼ ´ÙÀ½°ú °°Àº OIDµéÀ» Á¦°øÇÑ´Ù:
- OID_GEN_MAXIMUM_LOOKAHEAD
- MiniportQuertInformationÀº NICÀÌ Á¦°øÇÒ ¼ö ÀÖ´Â lookahead µ¥ÀÌÅÍÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ¸®ÅÏÇØ¾ß Çϰí Áï NICÀÇ
Ãʱâ Àü¼Û ´É·ÂÀ» ¸®ÅÏÇÑ´Ù.
µå¶óÀ̹ö°¡ ¸ÖƼÆÐŶ ¸®½ÃºêµéÀ» Áö¿øÇÏ´Â °Íó·³ ±×·¯¹Ç·Î ÆÐŶ µéÀ» ¼³Á¤Çϱâ À§ÇØ ¹è¿ Æ÷ÀÎÅ͸¦ Áö½ÃÇØ¾ß
ÇÑ´Ù¸éÀº MiniportQueryInformationÀº ÀÌ Á¤º¸¸¦ Á¦°øÇØ¾ß ÇÑ´Ù. ±×·¯ÇÑ µå¶óÀ̹ö´Â ±×°ÍÀÌ Áö½ÃÇÒ ¼ö ÀÖ´Â
ÃÖ´ë ÆÐŶ Å©±â¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù.
- OID_GEN_MAC_OPTIONS
- MiniportQueryInformationÀº µå¶óÀ̹ö°¡ Á¦°øÇÏ´Â (ȤÀº NICÀÌ Á¦°øÇÏ´Â) ¿É¼ÇµéÀÌ ¾î´À °ÍÀÎÁö¸¦ Áö½ÃÇÏ´Â
Àû´çÇÑ NDIS_MAC_OPTION_XXX Ç÷¡±×µé·Î ¼³Á¤µÈ ºñÆ®¸¶½ºÅ©¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù. ȤÀº
ÀÌ·¯ÇÑ Ç÷¡±×µé·Î ÇÒ´çµÈ ¼±ÅõéÀÇ ¾î¶°ÇÑ °Íµµ Áö¿øÇÏÁö ¾Ê´Â´Ù¸éÀº InformationBuffer¿¡ 0À» ¸®ÅÏÇØ¾ß ÇÑ´Ù.
¿¹¸¦ µé¾î, NIC µå¶óÀ̹ö´Â Ç×»ó ¸¸¾à NICÀÌ ·çÇÁ¹éÀ» À§ÇÑ ³»ºÎ Çϵå¿þ¾î Áö¿øÀ» °¡ÁöÁö ¾Ê´Â´Ù¸éÀº
NDIS_MAC_OPTION_NO_LOOKBACK Ç÷¡±×¸¦ ¼³Á¤ÇÑ´Ù. À̰ÍÀº NDIS°¡ µå¶óÀ̹ö¸¦ À§ÇØ ·çÇÁ¹éÀ» °ü¸®Çϱâ À§ÇØ NDIS
¿¡°Ô ¸»ÇÑ´Ù. ±×°ÍÀº NDIS°¡ ¹Ì´ÏÆ÷Æ®¸¦ À§ÇØ ¸ðµç ¹ÙÀεù ƯÁ¤ Á¤º¸¸¦ °ü¸®Çϱ⠶§¹®¿¡ NDIS ¶óÀ̺귯¸®º¸´Ù
´õ È¿À²ÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ·çÇÁ¹é Äڵ带 Á¦°øÇÒ ¼ö ¾ø´Ù.
¼ÒÇÁÆ®¿þ¾î ·çÇÁ¹éÀ» Áö¿øÇÏ·Á°í ½ÃµµÇÏ´Â ¾î¶² ¹Ì´ÏÆ÷Æ®´Â ¸ðµç º¸³»´Â ÆÐŶÀÇ ¸ñÀûÁö ÁÖ¼Ò¸¦ Ã¼Å©ÇØ¾ß ÇÑ´Ù.
°¢ ÆÐŶÀÇ ·çÇÁ¹éÀÌ ¾î¶²°ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§ÇÑ ÇöÀç ¼³Á¤µÈ ÇÊÅÍ Áּҵ鿡 ´ëÀÀÇÏ¿©.
¸¸¾à NIC µå¶óÀ̹ö°¡ NDIS_MAC_OPTION_FULL_DUPLEX Ç÷¡±×¸¦ ¼³Á¤ÇÑ´Ù¸éÀº, NDIS ¶óÀ̺귯¸®´Â SMP ÄÄÇ»ÅÍ¿¡¼
´Ù¸¥ MiniportXxx ÇÔ¼öµé¿¡ ´ëÇÑ Á÷·ÄÈµÈ È£Ãâ·ÎºÎÅÍ ´Ù¸£°Ô MiniportSendPackets ȤÀº Miniport(Wan)Send
ÇÔ¼ö¿¡ ´ëÇÑ È£ÃâµéÀ» Á÷·ÄÈÇÑ´Ù.
±×·¯³ª, NDIS´Â ±×·¯ÇÑ µå¶óÀ̹öÀÇ MiniportReset ÇÔ¼ö°¡ ½ÇÇàµÇ´Â µ¿¾È, ÇÁ·ÎÅäÄݵ鿡 ´ëÇÑ µé¾î¿À´Â º¸³»±â
ÆÐŶµéÀ» ¸®ÅÏÇÑ´Ù.: Áï, NDIS °¡ °áÄÚ ¸®¼Â ¿¬»êÀÌ ¿Ï¼ºµÇ±â Àü±îÁö ÆÐŶÀ» Àü¼ÛÇϱâ À§ÇØ full-duplex
¹Ì´ÏÆ÷Æ®¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù.
¾î¶² full-duplex µå¶óÀ̹öÀÇ µðÀÚÀγʴ ±×·¯ÇÑ µå¶óÀ̹ö°¡ SMP ÄÄÇ»Å͵鿡¼ ¸Å¿ì ³ôÀº ÆÛÆ÷¸Õ½º¸¦ ¼ºÃëÇϵµ·Ï
±×·¯ÇÑ µå¶óÀ̹ö¸¦ ±â´ëÇÒ ¼ö ÀÖÁö¸¸Àº µå¶óÀ̹ö´Â ·¹À̽º Á¶°Çµé ȤÀº µ¥µå¶ôµéÀÌ ¹ß»ýÇÏ´Â °ÍÀ» ¸·±â À§ÇØ
ÁÖÀDZí°Ô °øÀ¯µÈ ÀÚ¿øµéÀÇ ´ëÇÑ Á¢±ÙµéÀ» µ¿±âÈÇØ¾ßÇÑ´Ù.
NDIS´Â ¸ðµç ÀÎÅ͹̵ð¾ù µå¶óÀ̹öµéÀº full-duplex µå¶óÀ̹öµéÀ̶ó°í »ý°¢ÇÑ´Ù.
MiniportInitialize°¡ ¼±ÅÃÇÑ NdisMediumXxx¿¡ ÀÇÁ¸ÇÏ¿©, NDIS´Â Ãß°¡ÀûÀÎ ´ÙÀ½°ú °°Àº MiniportQueryInformation¿¡
´ëÇÑ ÃʱâȽà ¿ä±¸µéÀ» Á¦ÃâÇÑ´Ù:
- OID_XXX_CURRENT_ADDRESS
- ¸¸¾à µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö°¡ ½Ã½ºÅÛÀÌ ÇÊÅ͸¦ Á¦°øÇÑ °ÍÀ» À§ÇÑ NdisMediumXxx¸¦ ¼±ÅÃÇÑ´Ù¸éÀº
NDIS´Â ¹Ìµð¾ö ƯÁ¤ Æ÷¸Ë¿¡¼ NICÀÇ Çö ÁÖ¼Ò¸¦ ¸®ÅÏÇϱâ À§ÇØ MiniportQueryInformation¸¦ È£ÃâÇÑ´Ù.
FDDI µå¶óÀ̹öµéÀ» À§ÇØ, NDIS´Â ±æ°í ªÀº ÇöÀç ÁÖ¼ÒµéÀ» ¿ä±¸ÇÑ´Ù.
- OID_802_3_MAXIMUM_LIST_SIZE
- Ethernet µå¶óÀ̹öµéÀ» À§ÇØ, NDIS´Â ¸ÖƼij½ºÆ® ¸®½ºÆ® Å©±â¸¦ ¿ä±¸ÇÑ´Ù.
- OID_FDDI_LONG/SHORT_MAX_LIST_SIZE
- FDDI µå¶óÀ̹öµéÀ» À§Çؼ, NDIS´Â ¸ÖƼij½ºÆ® ¸®½ºÆ® Å©±âµéÀ» ¿ä±¸ÇÑ´Ù.
¸¸¾à °¡´ÉÇÏ´Ù¸éÀº, MiniportQueryInformationÀº ÃʱâȽà ¿ä±¸µéÀ» À§ÇØ NDIS_STATUS_PENDING¸¦ ¸®ÅÏÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.
NDIS°¡ ¹Ì´ÏÆ÷Æ®¿¡ ´ëÇÑ ¹ÙÀεùµéÀ» ¼³Á¤Çϱâ À§ÇØ ÃæºÐÇÑ Á¤º¸¸¦ °¡Áú ¶§±îÁö, ±×·¯ÇÑ ¿ä±¸µéÀº µ¿±âÀûÀ¸·Î
´Ù·ç¾îÁ®¾ß ÇÑ´Ù.
°á°úÀûÀ¸·Î NDIS ¶óÀ̺귯¸®´Â ´ÙÀ½°ú °°Àº ¾î¶² OIDµé¿¡ ´ëÇÑ ¸ðµç ÇÁ·ÎÅäÄÝ ÃʱâÈ Äõ¸®µéÀ» °¡·Îæ´Ù:
- OID_GEN_CURRENT_PACKET_FILTER
- OID_GEN_PROTOCOL_OPTIONS
- OID_802_5_CURRENT_FUNCTIONAL
- OID_802_3_MULTICAST_LIST
- OID_FDDI_LONG_MULTICAST_LIST
- OID_FDDI_SHORT_MULTICAST_LIST
½Ã½ºÅÛ Á¤ÀÇ OIDµé¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¿¡ ´ëÇÏ¿© Part 2¸¦ ºÁ¶ó.
¸¸¾à MiniportQueryInformationÀº µ¿±âÀûÀ¸·Î ¿ä±¸µéÀ» ¿Ï¼ºÇÏÁö ¾Ê´Â´Ù¸éÀº ±×¸®°í NDIS_STATUS_PENDINGÀ»
¸®ÅÏÇÑ´Ù¸éÀº, µå¶óÀ̹ö´Â NdisMQueryInformationComplete¿¡ ´ëÇÑ È£Ãâ·Î ³ªÁß¿¡ ¿ä±¸¸¦ ¿Ï¼ºÇØ¾ß ÇÑ´Ù.
¾î¶² ±×·¯ÇÑ ¿ä±¸µéÀ» ¿Ï¼ºÇÒ ¶§±îÁö, ¹Ì´ÏÆ÷Æ®´Â ¾ÈÀüÇÏ°Ô InformationBuffer, BytesWritten, BytesNeeded¿¡
´ëÇÑ ¸Þ¸ð¸®¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.
¹Ì´ÏÆ÷Æ®°¡ ¾î¶² Äõ¸®¸¦ ¿Ï¼ºÇÑ ÈÄ¿¡, ÀÌ·¯ÇÑ º¯¼öµé°ú ¹öÆÛ¿¡ ´ëÇÑ ¼ÒÀ¯°¡ NDIS·Î ¹Ù²î°í ȤÀº NdisRequestÀÇ
È£ÃâÀÚ·Î ¹Ù²ï´Ù. ±×°ÍÀÌ ¸Þ¸ð¸®¸¦ ÇÒ´çÇßµçÁö°£¿¡.
MiniportQueryInformation¿¡ ´ëÇÑ È£Ãâ ÈÄ, NDIS´Â ÇöÀç ¿ä±¸°¡ ¿Ï¼ºµÉ ¶§±îÁö µå¶óÀ̹ö¿¡ ´ëÇÑ ´Ù¸¥ ¿ä±¸µéÀ»
Á¦ÃâÇÒ ¼ö ¾ø´Ù. µ¿±âÀûÀ¸·Î ȤÀº ºñµ¿±âÀûÀ¸·Î.
±× ´ë½Å¿¡ NDIS´Â ÇöÀç Äõ¸®°¡ ¿Ï¼ºµÉ ¶§±îÁö Å¥¿¡ ÀúÀåµÈ ¿ä±¸µéÀ» À¯ÁöÇÒ ¼ö ÀÖ´Ù.
MiniportQueryInformationÀº ÀÎÅÍ·´Æ®¿¡ À¸ÇØ ¼±Á¡´çÇÒ ¼ö ÀÖ´Ù.
µðÆúÆ®·Î MiniportQueryInformationÀº IRQL DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|