11.1 ¿¬°áÁöÇâ ¹Ì´ÏÆ÷Æ®¸¦ À§ÇÑ ÀϹÝÀûÀÎ ¿¬»ê Åë°è

´ÙÀ½ÀÇ Â÷Æ®´Â ¿¬°áÁöÇâ ¹Ì´ÏÆ÷Æ®µé°ú ±×µéÀÇ NICµé¿¡ ´ëÇÑ ÀÌ´õ³Ý ¿¬»êÀûÀΠƯ¼ºÀ» ¼ÂÇϰųª ¾ò´Âµ¥ »ç¿ëµÈ OIDµéÀ» ¿ä¾àÇÑ´Ù. ¿¬°áÁöÇâ ¹Ì´ÏÆ÷Æ®°¡ MiniportCoRequest ÇÔ¼ö¿¡¼­ ±×·± ¿ä±¸µéÀ» ´Ù·ç´Â °ÍÀ» ÁÖ¸ñÇØ¶ó.

Length Q S Name
Arr(4) M   OID_GEN_CO_SUPPORTED_LIST
Áö¿øµÇÁö ¾Ê´Â OIDµéÀÇ ¸ñ·Ï
4 M OID_GEN_CO_HARDWARE_STATUS
Çϵå¿þ¾î »óÅÂ
Arr(4) M OID_GEN_CO_MEDIA_SUPPORTED
Áö¿øµÈ´Â(ÀÎÄÚµåµÈ) ¹Ìµð¾î ŸÀÔµé
Arr(4) M OID_GEN_CO_MEDIA_IN_USE
»ç¿ë¿¡ ´ëÇÑ ¹Ìµð¾î ŸÀÔÀÔµé(ÀÎÄÚµåµÈ)
4 M OID_GEN_CO_LINK_SPEED
100 bpsÀÇ À¯´Öµé¿¡¼­ Àü¼Û°ú ¼ö½Å ¸µÅ© ¼Óµµµé
4 M OID_GEN_CO_VENDOR_ID
º¥´õ NIC code
Var. M OID_GEN_CO_VENDOR_DESCRIPTION
º¥´õ ³×Æ®¿öÅ© Ä«µå ¼³¸í
4 M OID_GEN_CO_VENDOR_DRIVER_VERSION
µå¶óÀ̹öÀÇ º¥´õ-ÇÒ´çµÈ ¹öÀü ³Ñ¹ö
2 M OID_GEN_CO_DRIVER_VERSION
µå¶óÀ̹ö¿¡ÀÇÇØ¼­ »ç¿ëµÈ NDIS ¹öÀü ³Ñ¹ö
4   M OID_GEN_CO_PROTOCOL_OPTIONS
Ãß°¡ÀûÀÎ ÇÁ·ÎÅäÄÝ Ç÷¡±×µé(ÀÎÄÚµåµÈ)
4 M   OID_GEN_CO_MAC_OPTIONS
À̰ÍÀº ¿¹¾àµÇ¾ú´Ù.
4 M OID_GEN_CO_MEDIA_CONNECT_STATUS
NICÀÌ ³×Æ®¿öÅ©¿¡ ¿¬°áµÇ´ÂÁö ¾ÈµÇ´ÂÁö
4 M OID_GEN_CO_MINIMUM_LINK_SPEED
¸µÅ©¿¡ÀÇÇØ¼­ Áö¿øµÇ´Â ÃÖ¼Ò ¼Óµµ.
Arr O OID_GEN_CO_SUPPORTED_GUIDS
¹Ì´ÏÆ÷Æ®¿¡ÀÇÇØ¼­ Áö¿øµÇ´Â Ä¿½ºÅÒGUIDs(Globally Unique Identifiers)
8 O OID_GEN_CO_GET_TIME_CAPS
NICÀÇ ·ÎÄà ½Ã°£À» º¸°íÇÏ´Â °Í¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ´É·Âµé
8 O OID_GEN_CO_GET_NETCARD_TIME
NICÀÇ ·ÎÄà ½Ã°£

´ÙÀ½Àº ¾Õ¿¡ Â÷Æ®¿¡¼­ ÀüüÀûÀÎ ¸ñ·ÏµÈ OID_XXXÀÇ °¢°¢À» ¼³¸íÇÑ´Ù.

OID_GEN_CO_SUPPORTED_LIST

¹ØÀÇ µå¶óÀ̹ö³ª ±×°ÍÀÇ NICÀÌ Áö¿øÇÏ´Â °´Ã¼µéÀÇ ¹è¿­À» »ó¼úÇÑ´Ù. °´Ã¼µéÀº ÀϹÝÀûÀ¸·Î ¹Ìµð¾î-½ºÆå°ú ¼öÇà-½ºÆå °´Ã¼µéÀ» Æ÷ÇÔÇÑ´Ù.

¹ØÀÇ µå¶óÀ̹ö´Â Áõ°¡ÇÏ´Â ¼ýÀÚ ¼øÀ¸·Î ¸®ÅÏÇÏ´Â OID ¸ñ·ÏÀ» ¼ø¼­È­ÇؾßÇÑ´Ù. NDIS´Â ÀÌ ÁúÀǸ¦ ¸¸µç ÇÁ·ÎÅäÄÝ¿¡¼­ ¸®ÅÏµÈ ¸ñ·ÏÀÇ ¼­ºê¼ÂÀ» º¸³½´Ù. Áï, ÇÁ·ÎÅäÄݵéÀÌ ±×´ÙÀ½¿¡ Åë°è ÁúÀǸ¦ ¸¸µéÁö ¾Ê±â¶§¹®¿¡ NDIS´Â ¸ñ·ÏÀÇ ¹ÛÀÇ Áö¿øµÇ´Â Åë°è OIDµéÀ» ÇÊÅÍÇÑ´Ù.

OID_GEN_CO_HARDWARE_STATUS

´ÙÀ½ÀÇ NDIS_HARDWARE_STATUS °ªµéÀÇ Çϳª·Î ¹ØÀÇ NICÀÇ ÇöÀç Çϵå¿þ¾î »óŸ¦ »ó¼úÇÑ´Ù.

NdisHardwareStatusReady
¼±¿¡¼­ µ¥ÀÌÅ͸¦ ¼ö½ÅÇÏ°í º¸³¾ ¼ö ÀÖ´Â ´É·Â

NdisHardwareStatusInitializing
ÃʱâÈ­ÇÏ´Â °Í

NdisHardwareStatusReset
¸®¼ÂÆÃÇÏ´Â °Í

NdisHardwareStatusClosing
´Ý´Â°Í

NdisHardwareStatusNotReady
Áغñ°¡ ¾ÈµÇ¾ú´Ù.

OID_GEN_CO_MEDIA_SUPPORTED

´ÙÀ½ÀÇ ½Ã½ºÅÛ-Á¤ÀÇµÈ °ªµéÀÇ Àû´çÇÑ ¼­ºê¼ÂÀ¸·Î NICÀÌ Áö¿øÇÏ´Â ¹Ìµð¾î ŸÀÔµéÀÇ ¿ÏÀüÇÑ ¸ñ·Ï

NdisMedium802_3
Ethernet (802.3)

NdisMedium802_5
Token Ring (802.5)

NdisMediumFddi
FDDI

NdisMediumWan
WAN

NdisMediumLocalTalk
LocalTalk

NdisMediumDix
DEC/Intel/Xerox (DIX) Ethernet

NdisMediumArcnetRaw
ARCNET (raw)

NdisMediumArcnet878_2
ARCNET (878.2)

NdisMediumWirelessWan
Various types of NdisWirelessXxx media

NdisMediumAtm
ATM

NdisMediumIrda
À©µµ¿ì 2000 Ç÷§Æþ¿¡ ¹Ì·¡ »ç¿ëÀ»À§ÇØ ¿¹¾àµÇ¾ú´Ù.

ATM³×Æ®¿öÅ©µéÀ» À§ÇÑ LAN ¿¡¹Ä·¹ÀÌ¼Ç µå¶óÀ̹ö´Â NdisMediumAtmº¸´Ù ¿ÀÈ÷·Á NdisMedium802_3 ³ª NdisMedium802_5·Î¼­ ¹Ìµð¾öÀ» ¼±¾ðÇÑ´Ù. ±×·± µå¶óÀ̹ö´Â »óÀ§ ·¹º§ NDIS µå¶óÀ̹öµé¿¡°Ô ÀÌ´õ³ÝÀ̳ª ÅäÅ«¸µÀ» ¿¡¹Ä·¹ÀÌÆ®Çϳ®. ATM Æ÷·³µéÀÇ LANE·Î ÄÄÆÄÀÏÇϰí UNI ½Ã±×³Î Áö¿øÀ» Á¦°øÇÑ´Ù.

¹«¼±-WAN NIC µå¶óÀ̹ö´Â NdisMediumWirelessWan·Î ±×°ÍÀÇ ¹Ìµð¾ö ŸÀÔÀ» º¸°íÇØ¾ßÇÑ´Ù. ±×·¯³ª, ±×·± ¹Ì´ÏÆ÷Æ®´Â ¶ÇÇÑ ÀÌ Æ÷¸ËÀ» ¼±ÅÃÇÏ´Â ¹Ù¿îµå ÇÁ·ÎÅäÄÝ¿¡¼­ NdisWWDIXEthernetFrames Çì´õ Æ÷¸ËÀ» Áö¿øÇؾßÇÑ´Ù. ±×¸®°í ¹Ì´ÏÆ÷Åä´Â ¹°·Ð NICÀÇ º»·¡ Çì´õ Æ÷¸ËÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù. Á¸ÀçÇÏ´Â LAN±â¹ÝÀÇ ÇÁ·ÎÅäÄݵéÀ» Áö¿øÇϱâÀ§Çؼ­, µå¶óÀ̹ö °³¹ßÀÚ´Â Á¸ÀçÇÏ´Â ÇÁ·ÎÅäÄݵ鿡ÀÇÇØ¼­ ÀÌÇØµÇ´Â ÆûÀ¸·Î ¹«¼± NIC º»·¡ Çì´õ Æ÷¸Ëµé°ú ¹Ìµð¾ö-½ºÆå Á¤º¸¸¦ º¯È¯ÇϱâÀ§Çؼ­ NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù.

¸¸¾à ¹ØÀÇ ¹Ì´ÏÆ÷Æ®°¡ ÀÌ ÁúÀÇ¿¡ ´ëÇØ¼­ NULLÀ» ¸®ÅÏÇϰųª ½ÇÇèÀûÀÎ ¹Ìµð¾î ŸÀÔÀÌ »ç¿ëµÈ´Ù¸é, µå¶óÀ̹ö´Â NdisMCoIndicateReceivePacket·Î ¼ö½ÅµéÀ» Áö½ÃÇØ¾ßÇÑ´Ù.

OID_GEN_CO_MEDIA_IN_USE

¾à°£À̳ª ¾Æ´Ï°Å³ª(NULL ÇÊÅͶó ºÒ¸°´Ù.) ´ÙÀ½ÀÇ ¸ðµç°Í°ú °°ÀÌ Á¤ÀÇµÈ NICÀÌ ÇöÀç Áö¿øÇÏ´Â ¹Ìµð¾î ŸÀÔµéÀÇ ¿ÏÀüÇÑ ¸ñ·Ï.

NdisMedium802_3
Ethernet (802.3)

NdisMedium802_5
Token Ring (802.5)

NdisMediumFddi
FDDI

NdisMediumWan
WAN

NdisMediumLocalTalk
LocalTalk

NdisMediumDix
DIX

NdisMediumArcnetRaw
ARCNET (raw)

NdisMediumArcnet878_2
ARCNET (878.2)

NdisMediumWirelessWan
Various types of NdisWirelessXxx media.

NdisMediumAtm
ATM

¹ØÀÇ ¹Ì´ÏÆ÷Æ®´Â ÀÌ ÁúÀÇ¿¡ ´ëÇØ¼­ NULLÀ» ¸®ÅÏÇϰųª ½ÇÇèÀûÀÎ ¹Ìµð¾î ŸÀÔÀÌ »ç¿ëµÈ´Ù¸é, µå¶óÀ̹ö´Â NdisMCoIndicateReceivePacket·Î ¼ö½ÅµéÀ» Áö½ÃÇØ¾ßÇÑ´Ù.

OID_GEN_CO_LINK_SPEED

ÀÌ OID´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ NDIS_CO_LINK_SPEED ±¸Á¶Ã¼·Î¼­ Æ÷¸ËµÈ ÇöÀç Àü¼Û°ú ¼ö½Å ¼ÓµµµéÀ» ¸®ÅÏÇ϶ó°í ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿ä±¸ÇÑ´Ù.


typedef struct _NDIS_CO_LINK_SPEED {

    ULONG  Outbound;

    ULONG  Inbound;

} NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

Outbound
NICÀÇ ÇöÀç Àü¼Û ¼Óµµ. ÃøÁ¤ÀÇ À¯´ÖÀº 100bpsÀÌ´Ù. ±×·¡¼­ 10,000ÀÇ °ªÀº 10 MbpsÀÇ Çϵå¿þ¾î ºñÆ®À²À» ¼³¸íÇÑ´Ù.

Inbound
NICÀÇ ÇöÀç ¼ö½Å ¼Óµµ. ÃøÁ¤ÀÇ À¯´ÖÀº 100bpsÀÌ´Ù. ±×·¡¼­ 10,000ÀÇ °ªÀº 10 MbpsÀÇ Çϵå¿þ¾î ºñÆ®À²À» ¼³¸íÇÑ´Ù.

OID_GEN_CO_VENDOR_ID

º¥´õ´Â Ưº°ÇÑ NICÀ» ½Äº°ÇϱâÀ§Çؼ­ ÇÒ´çÇÏ´Â ÇϳªÀÇ ¹ÙÀÌÆ®¿¡¿¡ÀÇÇØ¼­ µû¸£´Â 3¹ÙÀÌÆ® IEEE-µî·ÏµÈ º¥´õ ÄÚµå

IEEE ÄÚµç º¥´õ¸¦ À¯ÀÏÇÏ°Ô ½Äº°Çϰí NIC Çϵå¿þ¾î ÁÖ¼ÒÀÇ ½ÃÀÛ¿¡¼­ º¸ÀÌ´Â 3¹ÙÀÌÆ®¿Í °°´Ù.

IEEE-µî·ÏµÈ ÄÚµå¾ø´Â º¥´õµéÀº °ª 0xFFFFFFÀ» »ç¿ëÇØ¾ßÇÑ´Ù.

OID_GEN_CO_VENDOR_DESCRIPTION

³Î Á¾·áµÈ NICÀ» ¼³¸íÇÏ´Â Ä«¿îÆ®µÈ ¹®ÀÚ¿­¿¡ ´ëÇÑ Æ÷ÀÎÅÍ.

OID_GEN_CO_VENDOR_DRIVER_VERSION

NIC µå¶óÀ̹öÀÇ º¥´õ-ÇÒ´çµÈ ¹öÀü ³Ñ¹ö.

¸®ÅϰªÀÇ ÇÏÀ§¼ø¼­ ¹ÝÀº ¸¶ÀÌ³Ê ¹öÀüÀ» »ó¼úÇÏ°í »óÀ§ ¼ø¼­ ¹ÝÀº ¸ÞÀÌÀú ¹öÀüÀ» »ó¼úÇÑ´Ù.

OID_GEN_CO_DRIVER_VERSION

NIC µå¶óÀ̹ö¿¡ÀÇÇØ¼­ »ç¿ë¿¡¼­ NDIS ¹öÀü. »óÀ§ ¹ÙÀÌÆ®´Â ¸ÞÀÌÀú ¹öÀü ³Ñ¹öÀÌ´Ù. ±×¸®°í ÇÏÀ§ ¹ÙÀÌÆ®´Â ¸¶ÀÌ³Ê ¹öÀü ³Ñ¹öÀÌ´Ù.

OID_GEN_CO_PROTOCOL_OPTIONS

ÇÁ·ÎÅäÄÝ µå¶óÀ̹öÀÇ Ãß°¡ÀûÀΠƯ¼ºµéÀ» Á¤ÀÇÇÏ´Â ºñÆ®¸Å½ºÅ©. ÇÁ·ÎÅäÄÝÀº ±×°ÍÀÇ Æ¯¼ºµéÀ» NDIS¿¡°Ô ¾Ë·ÁÁØ´Ù. Ư¼ºµéÀº Ãß°¡ÀûÀ¸·Î À̵æÀ» °¡Áø´Ù. ¸¸¾à ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ¹ÙÀεù¿¡¼­ ±×°ÍÀÇ Ç÷¡±×µéÀ» ¼ÂÇÏÁö ¾Ê´Â´Ù¸é, NDIS´Â ±×µéÀÌ ¸ðµÎ Ŭ¸®¾îÇÑ´Ù°í °¡Á¤ÇÑ´Ù.

´ÙÀ½ÀÇ Ç÷¡±×µéÀº ÇöÀç Á¤ÀǵȴÙ.:

NDIS_PROT_OPTION_ESTIMATED_LENGTH
ÆÐŶµéÀº ÀÌ ÇÁ·ÎÅäÄÝ¿¡¼­ Á¤È®ÇÑ °ªµé´ë½Å¿¡ ÆÐŶ Å©±âÀÇ °¡Àå ³ª»Û °æ¿ì Æò°¡¿¡¼­ Áö½ÃµÉ ¼ö ÀÖ´Â °ÍÀ» Áö½ÃÇÑ´Ù.

NDIS_PROT_OPTION_NO_LOOPBACK
ÇÁ·ÎÅäÄÝÀº ¹ÙÀεù¿¡¼­ ·çÇÁ¹é Áö¿øÀ» ¿ä±¸ÇÏÁö ¾Ê´Â´Ù.

NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT
ÇÁ·ÎÅäÄÝÀº Áö½ÃµÈ ¼ö½Å ÆÐŶµéÀÇ ProtocolReserved ¼½¼ÇÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù. À̰ÍÀº NDIS°¡ ¼ö½Å ÆÐŶÀ» ÇϳªÀÌ»ó ÇÁ·ÎÅäÄÝÀ» Áö½ÃÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù.

OID_GEN_CO_MAC_OPTIONS

À̰ÍÀº ¿¹¾àµÈ´Ù.

OID_GEN_CO_MEDIA_CONNECT_STATUS

ÀÌ OID´Â ´ÙÀ½ÀÇ ½Ã½ºÅÛ-Á¤ÀÇµÈ °ªµéÀÇ Çϳª·Î¼­ ³×Æ®¿öÅ©¿¡¼­ NICÀÇ ¿¬°á »óŸ¦ ¸®ÅÏÇ϶ó°í ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿ä±¸ÇÑ´Ù.

NdisMediaStateConnected
NdisMediaStateDisconnected

NIC ¹Ì´ÏÆ÷Æ®°¡ ³×Æ®¿öÅ© ¿¬°áÀÌ ¼Õ½ÇµÇ¾ú´Ù´Â°ÍÀ» °¨ÁöÇÒ ¶§, ±×°ÍÀº NDIS_STATUS_MEDIA_DISCONNECT·Î NdisMCoIndicateStatusÀ» È£ÃâÇØ¾ßÇÑ´Ù. ¿¬°áÀÌ Àç¼³Á¤µÉ ¶§, ±×°ÍÀº NDIS_STATUS_MEDIA_CONNECT·Î NdisMCoIndicateStatus À» È£ÃâÇØ¾ßÇÑ´Ù.

OID_GEN_CO_MINIMUM_LINK_SPEED

ÀÌ OID´Â ´ÙÀ½¿¡ Á¤ÀÇµÈ NDIS_CO_LINK_SPEED ±¸Á¶Ã¼·Î¼­ Æ÷¸ËµÈ ±×°ÍÀÇ ÃÖ¼Ò Àü¼Û°ú ¼ö½Å ¼ÓµµµéÀ» ¸®ÅÏÇ϶ó°í ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿ä±¸ÇÑ´Ù.


typedef struct _NDIS_CO_LINK_SPEED {

    ULONG  Outbound;

    ULONG  Inbound;

} NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

Outbound
NICÀÇ ÃÖ¼Ò Àü¼Û ¼Óµµ. ÃøÁ¤ÀÇ À¯´ÖÀº 100bpsÀÌ´Ù. ±×·¡¼­ 10,000ÀÇ °ªÀº 10 MbpsÀÇ Çϵå¿þ¾î ºñÆ®À²À» ¼³¸íÇÑ´Ù.

Inbound
NICÀÇ ÃÖ¼Ò ¼ö½Å ¼Óµµ. ÃøÁ¤ÀÇ À¯´ÖÀº 100bpsÀÌ´Ù. ±×·¡¼­ 10,000ÀÇ °ªÀº 10 MbpsÀÇ Çϵå¿þ¾î ºñÆ®À²À» ¼³¸íÇÑ´Ù.

OID_GEN_CO_SUPPORTED_GUIDS

ÀÌ OID´Â ŸÀÔ NDIS_GUIDÀÇ ±¸Á¶Ã¼ÀÇ ¹è¿­À» ¸®ÅÏÇ϶ó°í ¹Ì´ÏÆ÷Æ®¿¡°Ô ¼³¸íÇÑ´Ù. ¹è¿­¿¡¼­ °¢°¢ÀÇ ±¸Á¶Ã¼´Â ¹Ì´ÏÆ÷Æ®°¡ NdisMCoIndicateStatusÀ» ÅëÇØ¼­ º¸³½ NDIS_STATUS ¿¡¼­³ª Ä¿½ºÅÒ OID¿¡¼­ Ä¿½ºÅÒ GUIDÀÇ ¸ÊÇÎÀ» »ó¼úÇÑ´Ù.

NDIS_GUID ±¸Á¶Ã¼´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵȴÙ.


typedef struct _NDIS_GUID {

    GUID             Guid;

    union {

        NDIS_OID     Oid;

        NDIS_STATUS  Status;

    };

    ULONG            Size;

    ULONG            Flags;

} NDIS_GUID, *PNDIS_GUID;

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

Guid
¹Ì´ÏÆ÷Æ®¿¡ ´ëÇØ¼­ Á¤ÀÇµÈ Ä¿½ºÅÒ GUID

Oid
Guid°¡ ¸ÊÇÑ Ä¿½ºÅÒ OID

Status
Guid°¡ ¸ÊÇÑ NDIS_STATUS

Size
NDIS_GUID_ARRAY Ç÷¡±×°¡ ¼ÂµÈ´Ù¸é, Size´Â ¹Ì´ÏÆ÷Æ®¿¡ÀÇÇØ¼­ ¸®ÅÏµÈ ¹è¿­¿¡¼­ °¢°¢ÀÇ µ¥ÀÌÅÍ ¾ÆÀÌÅÛÀÇ ¹ÙÀÌÆ® Å©±â¸¦ »ó¼úÇÑ´Ù. ¸¸¾à NDIS_GUID_ANSI_STRING ³ª NDIS_GUID_NDIS_STRING Ç÷¡±×°¡ ¼ÂµÈ´Ù¸é, Size ´Â -1·Î ¼ÂµÈ´Ù. ±×·¸Áö ¾Ê´Ù¸é, Size ´Â GUID°¡ ¼³¸íÇÏ´Â µ¥ÀÌÅÍ ¾ÆÀÌÅÛÀÇ ¹ÙÀÌÆ® Å©±â¸¦ »ó¼úÇÑ´Ù.

Flags
´ÙÀ½ÀÇ Flags ´Â GUID°¡ OID·Î ¸ÊÇÒÁö NDIS_STATUS ¹®ÀÚ¿­·Î ¸ÊÇÒÁö¸¦ Áö½ÃÇϴµ¥ ¼­·Î ORµÉ ¼ö ÀÖ´Ù. ±×¸®°í GUID¿¡ ´ëÇØ¼­ Á¦°øµÈ µ¥ÀÌÅÍ Å¸ÀÔÀ» Áö½ÃÇϴµ¥ ¼­·Î ORµÉ ¼ö ÀÖ´Ù.:

NDIS_GUID_TO_OID
¼ÂµÉ ¶§, NDIS_GUID ±¸Á¶Ã¼´Â GUID¸¦ OID·Î ¸ÊÇÏ´Â °ÍÀ» Áö½ÃÇÑ´Ù.

NDIS_GUID_TO_STATUS
¼ÂµÉ ¶§, NDIS_GUID ±¸Á¶Ã¼´Â GUID¸¦ NDIS_STATUS ¹®ÀÚ¿­·Î ¸ÊÇÏ´Â °ÍÀ» Áö½ÃÇÑ´Ù.

NDIS_GUID_ANSI_STRING
¼ÂµÉ ¶§, 0 Á¾·á ANSI ¹®ÀÚ¿­Àº GUID¿¡ ´ëÇØ¼­ Á¦°øµÈ´Ù.

NDIS_GUID_UNICODE_STRING
¼ÂµÉ ¶§, UNICODE ¹®ÀÚ¿­Àº GUID¿¡ ´ëÇØ¼­ Á¦°øµÈ´Ù.

NDIS_GUID_ARRAY
¼ÂµÉ ¶§, µ¥ÀÌÅÍ ¾ÆÀÌÅÛµéÀÇ ¹è¿­Àº GUID¿¡ ´ëÇØ¼­ Á¦°øµÇ´Â °ÍÀ» Áö½ÃÇÑ´Ù. »ó¼úµÈ Å©±â´Â ¹è¿­¿¡¼­ °¢°¢ÀÇ µ¥ÀÌÅÍ ¾ÆÀÌÅÛÀÇ ±æÀ̸¦ Áö½ÃÇÑ´Ù.

´ÙÀ½ÀÇ ¿¹¿¡¼­, NDIS_GUID ±¸Á¶Ã¼´Â GUID À» OID_GEN_CO_RCV_PDUS_NO_BUFFER·Î ¸ÊÇÑ´Ù.:


NDIS_GUID NdisGuid =    {{0x0a214809, 0xe35f, 0x11d0, 0x96, 0x92, 0x00,

                       0xc0, 0x4f, 0xc3, 0x35, 0x8c},

                       GUID_NDIS_GEN_CO_RCV_PDUS_NO_BUFFER,

                       OID_GEN_CO_RCV_PDUS_NO_BUFFER,

                       4,

                       fNDIS_GUID_TO_OID};

GUID´Â Á¤º¸¸¦ ¼ÂÇϰųª ¾ò±â¿õÇØ¼­ WMI¿¡ÀÇÇØ¼­ »ç¿ëµÈ ½Äº°ÀÚÀÌ´Ù. NDIS´Â NDIS µå¶óÀ̹ö¿¡¼­ WMI¿¡ÀÇÇØ¼­ º¸³»Áø GUID¸¦ °¡·Îä°í GUID¸¦ OID·Î ¸ÊÇÑ´Ù. ±×¸®°í OID¸¦ µå¶óÀ̹ö¿¡°Ô º¸³½´Ù. µå¶óÀ̹ö´Â NDIS¿¡°Ô µ¥ÀÌŸ ¾ÆÀÌÅÛµéÀ» ¸®ÅÏÇÑ´Ù. ±×¶§ WMI¿¡°Ô µ¥ÀÌÅ͸¦ ¸®ÅÏÇÑ´Ù.

NDIS´Â ¶ÇÇÑ WMI¿¡ÀÇÇØ¼­ ÀÎ½ÄµÈ GUIDµé¿¡¼­ NIC »óÅ¿¡¼­ º¯È­µéÀ» ¹ø¿ªÇÑ´Ù. ¹Ì´ÏÆ÷Æ®°¡ NdisMCoIndicateStatus·Î NIC »óÅ¿¡¼­ º¯È­¸¦ º¸°íÇÒ ¶§, NDIS´Â NDIS°¡ WMI¿¡°Ô º¸³½ GUID¿¡¼­ ¹Ì´ÏÆ÷Æ®¿¡ÀÇÇØ¼­ Áö½ÃµÈ NDIS_STATUS À» ¹ø¿ªÇÑ´Ù.

¿¬°á-ÁöÇâ ¹Ì´ÏÆ÷Æ®°¡ Ä¿½ºÅÒ GUIDµéÀ» Áö¿øÇÑ´Ù¸é, ±×°ÍÀº OID_GEN_CO_SUPPORTED_GUIDSÀ» Áö¿øÇؾßÇϰí OID_GEN_CO_SUPPORTED_GUIDS,Àº Ä¿½ºÅÒ GUIDµéÀÌ Ä¿½ºÅÒ OIDµéÀ̳ª NDIS_STATUS ¹®ÀÚ¿­·Î ¸ÊÇÎÀ» NDIS¿¡°Ô ¸®ÅÏÇÑ´Ù. OID_GEN_CO_SUPPORTED_GUIDS·Î ¹Ì´ÏÆ÷Æ®¿¡°Ô ÁúÀÇÇÑ ÈÄ¿¡, NDIS´Â WMI·Î ¹Ì´ÏÆ÷Æ®ÀÇ Ä¿½ºÅÒ GUIDµéÀ» µî·ÏÇÑ´Ù.

OID_GEN_CO_GET_TIME_CAPS

ÀÌ OID´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ GEN_GET_TIME_CAPS ±¸Á¶Ã¼·Î¼­ Æ÷¸ËµÈ NICÀÇ ·ÎÄà ½Ã°£À» º¸°íÇÏ´Â °Í¿¡ ´ëÇØ¼­ ±×°ÍÀÇ ´É·ÂÀ» ¸®ÅÏÇ϶ó°í ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿ä±¸ÇÑ´Ù.


typedef struct _GEN_GET_TIME_CAPS {

    ULONG Flags;

    ULONG ClockPrecision;

} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

Flags
´ÙÀ½ÀÇ Ç÷¡±×µéÀº ¼­·Î OR µÈ´Ù. ¸ðµç »ó¼úµÇÁö ¾ÊÀº Ç÷¡±×µéÀº 0À¸·Î ¼ÂµÇ¾î¾ßÇÑ´Ù.

READABLE_LOCAL_CLOCK

¼ÂµÉ ¶§, NIC¿¡¼­ ÀÐÀ» ¼ö Àִ Ŭ·°ÀÇ ½ÃÁ¡À» Áö½ÃÇÑ´Ù. ±×·± Çϵå¿þ¾î Ŭ·°¾øÀÌ, ¹Ì´ÏÆ÷Æ®´Â ClockPrecision ¸â¹ö¿¡¼­ ¿Ã¹Ù¸¥ Á¤µµ¸¦ º¸°íÇÏ´Â µ¿¾È NdisGetCurrentSystemTimeÀ» È£ÃâÇÔÀ¸·Î¼­ ½Ã½ºÅÛ Å¬·°À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

CLOCK_NETWORK_DERIVED

¼ÂµÉ ¶§, NICÀÇ ·ÎÄà ½Ã°£Àº ÀÚÀ¯·Ó°Ô °¡µ¿ÇÏ´Â ¿Âº¸µå Ŭ·°¿¡ ¹Ý´ë·Î ³×Æ®¿öÅ© ¿¬°á·ÎºÎÅÍ »ó¼ÓµÈ´Ù´Â °ÍÀ» Áö½ÃÇÑ´Ù.

CLOCK_PRECISION
¼ÂµÉ ¶§, ClockPrecision ¸â¹ö´Â À¯È¿ÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù´Â °ÍÀ» Áö½ÃÇÑ´Ù.

RECEIVE_TIME_INDICATION_CAPABLE

¼ÂµÉ ¶§, NIC Çϵå¿þ¾î´Â ¼ö½ÅµÈ PDUÀÇ Ã³À½ ¼¿À» ¹Þ´Â ·ÎÄà ½Ã°£À» ÁÖ¸ñÇÒ ¼ö ÀÖ°í ¹Ì´ÏÆ÷Æ®´Â ÆÐŶÀ» ÇÁ·ÎÅäÄÝ¿¡°Ô Áö½ÃÇÒ ¶§ °¢°¢ÀÇ PDU¿¡ ´ëÇÑ ¼ö½Å ½Ã°£À» Àü´ÞÇÏ´Â °ÍÀ» Áö½ÃÇÑ´Ù.

TIMED_SEND_CAPABLE
¼ÂµÉ ¶§, NICÀº ·ÎÄà ½Ã°£¿¡ ¶§¶ó Àü¼Û¿¡ ´ëÇÑ ÆÐŶÀ» ½ºÄÉÁìÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» Áö½ÃÇÑ´Ù. ÇÁ·ÎÅäÄݵéÀº ÆÐŶ ¼³¸íÀÚÀÇ OOB µ¥ÀÌÅÍ ºí·°¿¡¼­ TimeToSend ŸÀÔ½ºÅÛÇÁ¸¦ ¼ÂÇϱâÀ§Çؼ­ NDIS_SET_PACKET_TIME_TO_SEND À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

TIME_STAMP_CAPABLE
¼ÂµÉ ¶§, NICÀº ÆÐŶÀÇ Ã³À½ ¹ÙÀÌÆ®°¡ Àü¼ÛµÈ ¶§¸¦ (³ª°¡´Â ÆÐŶÀÇ Àû´çÇÑ ÇÊÆ®¿¡¼­) ½ºÅÛÇÁÇÒ ¼ö ÀÖ°í NICÀÌ Àιٿîµå ÆÐŶÀÇ °°Àº Çʵå·ÎºÎÅÍ ½Ã°£À» °¡Á®¿Ã ¼ö ÀÖ´Ù´Â °ÍÀ» Áö½ÃÇÑ´Ù.

ClockPrecision
¹Ð¸®¾î´ç ÆÄÆ®µé¿¡¼­ Ŭ·° Á¤µµ¸¦ »ó¼úÇÑ´Ù. À¯È¿¼º¸£ °í·ÁµÇ´Â Á¤º¸¿¡ ´ëÇØ¼­, CLOCK_PRECISION Ç÷¡±×°¡ ¼ÂµÇ¾î¾ßÇÑ´Ù.

¹Ì´ÏÆ÷Æ®´Â ·ÎÄÃÀ̳ª ³×Æ®¿öÅ© Ŭ·°ÀÇ ºÎÀç¿¡¼­ ¾î¶² ŸÀÌ¹Ö ÀÎÀڵ鿡 ´ëÇÑ Áö¿øÀ» Á¦°øÇÑ´Ù. Ưº°È÷, ¹Ì´ÏÆ÷Æ®´Â ¼ö½Å ½Ã°£ Áö½Ãµé, ŸÀÓµÈ º¸³»±â, ŸÀÓ ½ºÅÛÇο¡ ´ëÇØ¼­ ½Ã½ºÅÛ Å¬·°À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. NIC ±â¹Ý Ŭ·°Àº ´õ ³ôÀº Á¤µµ¸¦ Á¦°øÇÏ°í ½Ã½ºÅÛ Å¬·°º¸´Ù ´õ ³·Àº Áö¿¬À¸·Î Á¢±ÙÇÒ ¼ö Àֱ⶧¹®¿¡ ´õ ÁÁ´Ù. ¸ðµç °æ¿ì¿¡¼­, ¹Ì´ÏÆ÷Æ®´Â ±×°ÍÀÌ »ç¿ëÇÑ Å¬·°ÀÇ Á¤µµ¸¦ »ó¼úÇØ¾ßÇÑ´Ù. À̰ÍÀº ¹Ì´ÏÆ÷Æ®µéÀÇ Å¸ÀÌ¹Ö Áö¿øÀ» »ç¿ëÀ» ÃÖ´ëÈ­ÇÏ´Â ¹ýÀ» °áÁ¤ÇÏ´Â °ÍÀ» ÇÁ·ÎÅäÄÝ¿¡°Ô Çã¿ëÇÑ´Ù.

¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ ÀÐÀ» ¼ö Àִ Ŭ·°ÀÇ Á¸À縦 º¸°íÇÑ´Ù¸é, ±×°ÍÀº OID_GEN_GET_NETCARD_TIME ÁúÀÇÀÇ ÀÀ´äÀ¸·Î Áï½Ã ÁغñµÇ¾î¾ß ÇÑ´Ù. ÀÌÈ£Ãâ¿¡¼­ ¹Ì´ÏÆ÷Æ®ÀÇ ÀÀ´äÀº ŸÀÓ-Å©¸®Æ¼ÄÀÀÌ°í ±×·¡¼­ µ¿±âÈ­µÇ¾î¾ßÇÑ´Ù.

OID_GEN_CO_GET_NETCARD_TIME

ÀÌ OID´Â ³×Æ®¿öÅ©·ÎºÎÅͳª NIC¿¡¼­ Ŭ·°À¸·ÎºÎÅÍ »ó¼úµÈ °Í °°ÀÌ NICÀÇ ·ÎÄÝ ½Ã°£À» ¸®ÅÏÇ϶ó°í ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿ä±¸ÇÑ´Ù. ÀÌ ½Ã°£Àº ´ÙÀ½¿¡ Á¤ÀÇµÈ °Í°°ÀÌ GEN_GET_NETCARD_TIME ±¸Á¶Ã¼·Î¼­ Æ÷¸ËµÈ´Ù.


typedef struct _GEN_GET_NETCARD_TIME {

    ULONGLONG ReadTime;

} GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

ReadTime
NICÀÇ ·ÎÄà ½Ã°£

¹Ì´ÏÆ÷Æ®°¡ ÀüÀÇ OID_GEN_CO_GET_TIME_CAPS ÁúÀÇ¿¡ ´ëÇÑ ÀÀ´äÀ» ¸®ÅÏÇß´ø GEN_GET_TIME_CAPS ±¸Á¶Ã¼ÀÇ ClockPrecision ¿¤¸®¸ÕÆ®¿¡¼­ ±×°ÍÀÇ ·ÎÄà ½Ã°£¿¡ ´ëÇÑ À¯´ÖµéÀ» »ó¼úÇß´Ù.

¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ OID_GEN_CO_GET_TIME_CAPS ÁúÀÇ ´ëÇÑ ÀÀ´äÀ¸·Î READABLE_LOCAL_CLOCK Ç÷¡±×¸¦ ¼ÂÇÑ´Ù¸é, NICÀº ¿Âº¸µå Ŭ·°À¸·ÎºÎÅÍ ±×°ÍÀÇ ·ÎÄà ½Ã°£À» »ó¼ÓÇÑ´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ OID_GEN_CO_GET_TIME_CAPS ÁúÀÇ¿¡ ´ëÇÑ ÀÀ´ä¿¡¼­ CLOCK_NETWORK_DERIVED Ç÷¡±×¸¦ ¼ÂÇÑ´Ù¸é, NICÀº ³×Æ®¿öÅ©·ÎºÎÅÍ ±×°ÍÀÇ ·ÎÄà ½Ã°£À» »ó¼ÓÇÑ´Ù.

¸¸¾à ·ÎÄà ½Ã°£ÀÌ ¿Âº¸µå Ŭ·°À¸·ÎºÎÅÍ »ó¼ÓµÈ´Ù¸é, ¹Ì´ÏÆ÷Æ®´Â ¹Ð¸®¾ð´ç ÆÄÆ®µé¿¡¼­ Ŭ·° Á¤µµ¸¦ º¸°íÇÒ ¼ö ÀÖ¾î¾ßÇÑ´Ù. ÀϹÝÀûÀ¸·Î, ³×Æ®¿öÅ©-»ó¼ÓµÈ Ŭ·°Àº ´õ ÁÁ´Ù. ÀÌÀ¯´Â ±×°ÍÀº ´õ Á¤¹ÐÇÏ°í °°Àº ³×Æ®¿öÅ©³ª ½ºÀ§Ä¡¿¡ Á¢±ÙµÈ ¸¹Àº ¸Ó½ÅµéÀ» µ¿±âÈ­Çϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.

¹Ì´ÏÆ÷Æ®´Â OID_GEN_CO_GET_NETCARD_TIME ÁúÀÇ¿¡ ´ëÇÑ ÀÀ´ä¿¡¼­ µ¿±âÀûÀ¸·Î ·ÎÄà ½Ã°£À» ¸®ÅÏÇØ¾é³ª´Ù. ÀÌ ÁúÀÌ´Â NICÀÇ ·ÎÄà ½Ã°£À¸·Î ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀ» µ¿±âÈ­ÇÑ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀº ÀÀ´ä-½Ã°£ Áö¿¬µéÀ» ÇÊÅÍÇϴµ¥ ¼º°ø¿¡¼­ ¿©·¯¹ø OID_GEN_CO_GET_NETCARD_TIME ÁúÀǸ¦ º¸³»¾ßÇÑ´Ù.