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¿¡¼­ ½ÇÇàÇÑ´Ù.