Tips for Writing NDIS Drivers


Contents:
NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öµéÀ» °³¹ßÇϱâÀ§ÇÑ °¡À̵å¶óÀεé
NDIS µå¶óÀ̹ö ¹®Á¦µé¿¡ ´ëÇÑ Á¦½ÃµÇ´Â ¼Ö·ç¼Çµé
µå¶óÀ̹ö ÃʱâÈ­¿Í ¼º´É¿¡ ´ëÇÑ ÆÁµé
µå¶óÀ̹ö Verifier·Î ³×Æ®¿öÅ© ¾î´ðÅ͸¦ Å×½ºÆ®ÇÏ´Â ¹ý

MS ³×Æ®¿öÅ· ÆÀÀÌ ÃÖ±Ù¿¡ ¿¬±¸Çß´ø ÇÑ ºÐ¾ß´Â ³×Æ®¿öÅ© µå¶óÀ̹öµé¿¡ ´ëÇØ¼­, ƯÈ÷ NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öµé¿¡ ´ëÇÑ µå¶óÀ̹ö ÃʱâÈ­ ½Ã°£À̾ú´Ù. µå¶óÀ̹ö ÃʱâÈ­ ½Ã°£Àº ½Ã½ºÅÛÀÌ ½ÃÀÛÇϰųª ±ú¾î³¯ ¶§ Áß¿äÇÑ ¿µÇâÀ» ÁÙ ¼ö ÀÖ°í ½Ã½ºÅÛÀÌ ¾ó¸¶³ª ºü¸¥ÁöÀÇ ¿£µå À¯Àú »ç¿ëÀÚ °æÇè¿¡ ¿µÇâÀ» ÁØ´Ù. MS Å×½ºÅ͵éÀº ¸¹Àº °æ¿ì¿¡ ÃʱâÈ­ ½Ã°£Àº NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öµéÀ» ÃÖÀûÈ­ ÇϹǷμ­ ¸î Ãʰ£Àº °¨¼Ò ½Ãų ¼ö À־ƴ °ÍÀº ¹ß°ßÇß´Ù.

µå¶óÀ̹ö ÃʱâÈ­. µå¶óÀ̹ö ÃʱâÈ­¿¡¼­ ¼ÒºñµÇ´Â ½Ã°£Àº À©µµ¿ìÁî 2000ÀÌ ºÎÆ®½Ã °É¸®´Â ½Ã°£¿¡ Áß¿äÇÑ ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Ù. ÀÌ ½Ã°£Àº °¨¼Ò½ÃŰ´Â °ÍÀº ¼­½ºÆÒµåµÇ°í ´Ù½Ã ÀúÀåÇÏ´Â µ¥½ºÅ©Å¾ ½Ã½ºÅÛµéÀº ¹°·ÐÀÌ°í ³×Æ®¿öÅ©¿¡ ¿¬°áµÇÁö ¾ÊÀº ·¦Å¾µé¿¡ ´ëÇØ¼­ ¸Å¿ì Áß¿äÇÏ´Ù.

µå¶óÀ̹ö ÃʱâÈ­¸¦ ÃÖÀûÈ­ÇÏ´Â ¹ý:

  • Ç×»ó óÀ½¿¡ ¹Ìµð¾î ¹ß°ßÀ» ¼öÇàÇØ¶ó. ³×Æ®¿öÅ© ÄÉÀ̺íÀÌ Á¸ÀçÇÏÁö ¾Ê´Ù´Â ¾Ë ¼ö ÀÖ´Ù¸é, ±×¶§ ¸µÅ© ¼Óµµ ¹ß°ßÀ» »ý·«Çضó.
  • ¸¸¾à ¹Ìµð¾î°¡ ¿¬°áµÇ¾ú´Ù¸é ¸µÅ© ¼Óµµ ¹ß°ßÀ» ½Ã°£ ·çƾÀ¸·Î Áö¿¬½ÃÄѶó. ³×Æ®¿öÅ© ½ºÅÃÀÇ ³ª¸ÓÁö´Â ÈÄ¿¡ ¹ß»ýÇϰí ÈÄ¿¡ µ¥ÀÌÅͰ¡ ÇÊ¿äÇÏ´Ù. Á¤º¸´Â ÀÌ¿ëµÇ¾î¾ß ÇÑ´Ù. ÀÌ Á¤º¸ÀÇ Áö½ÄÀº OID_GEN_MEDIA_SPEED Äõ¸®°¡ µµÂøÇÒ ¶§±îÁö ¿ä±¸µÇÁö ¾Ê´Â´Ù.

µå¶óÀ̹ö ¼Ë´Ù¿î. µå¶óÀ̹ö°¡ ¼Ë´Ù¿îÀÌ ¿ä±¸µÉ ¶§, À¯ÈÞ »óÅ·ΠÇϵå¿þ¾î¸¦ ¼ÂÆÃÇÏ´Â °ÍÀ» Á¦¿ÜÇÏ°í ¾Æ¹«Àϵµ ÇØ¼± ¾ÈµÈ´Ù.

Driver Halt. ¼Ë´Ù¿î¿¡ ó¸®ÇÏ´Â °Í¿¡ Ãß°¡Çؼ­, Halt ·çƾÀº ¸ðµç ÀÚ¿øµéÀ» ÇØÁ¦ÇؾßÇÑ´Ù.:

  • ¸¸¾à µå¶óÀ̹ö°¡ ŸÀ̸Ӹ¦ »ç¿ëÇÑ´Ù¸é, Ãë¼ÒµÇ¾î¾ß ÇÑ´Ù. ¸¸¾à NdisMCancelTimer()°¡ ½ÇÆÐÇÑ´Ù¸é, À̰ÍÀº ŸÀ̸Ӱ¡ ÀÌ¹Ì ÆÄ±âµÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÈù´Ù. ÀÌ »óȲ¿¡¼­, ¿Ï·áÇϱâÀ§Çؼ­ ŸÀÌ¸Ó Çڵ鷯¸¦ ±â´Ù·Á¶ó. ÀÌ ¹®Á¦¿¡ ´ëÇÑ ÇØ´ä¿¡ ´ëÇØ¼­´Â ´ÙÀ½ ±â»çÀÎ Recommended Solutions for NDIS Driver Problems¸¦ º¸¾Æ¶ó.
  • ¸¸¾à NdisMIndicateReceivePacket() À» »ç¿ëÇÏ´Â ÆÐŶ Áö½ÃµéÀÌ µå¶óÀ̹ö¿¡¼­ »ç¿ëµÈ´Ù¸é, ¸ðµç ³ª°¡´Â ÆÐŶµéÀÌ Halt Çڵ鷯·ÎºÎÅÍ ¸®ÅϵDZâÀü¿¡ ¸®Åϵȴٴ °ÍÀº È®½ÇÈ÷ ÇØ¶ó. ÀÌ·¸°Ô ÇÏ´Â ½¬¿î ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.:
    while (NdisPacketPoolUsage(PacketPoolHandle) != 0)
    
    	NdisMSleep(10);

µå¶óÀ̹ö ¼­ºñ½º ·çƾ(ISR)ÀÌ È£ÃâµÉ ¶§, ÀÎÅÍ·´Æ®°¡ Çϵå¿þ¾î »óÅ·κÎÅÍ ³ÊÀǰÍÀÎÁö ¾Æ´ÑÁö¸¦ °áÁ¤Çضó. ¸¸¾à ±×°ÍÀÌ ÀÖ´Ù¸é, Áö¿¬µÈ ÇÁ·Î½ÃÁ® ÄÝ(DPC)°¡ Å¥µÇ°í ÀÎÅÍ·´Æ®°¡ µð½º¿¡À̺íµÇ´Â °ÍÀ» ¿ä±¸Çضó. DPC°¡ ¿Ï·áµÉ ¶§ ÀÎÅÍ·´Æ®¸¦ ´Ù½Ã Àο¡À̺íÇØ¶ó.

µå¶óÀ̹ö°¡ Çϵå¿þ¾î¸¦ ´Ù·ê Áغñ°¡ µÉ ¶§±îÁö Çϵå¿þ¾î°¡ ÀÎÅÍ·´Æ®¸¦ »ó½Â½ÃŰÁö ¾ÊÀ» °ÍÀ̶ó´Â °ÍÀ» È®½ÇÈ÷ ÇØ¶ó. Áï, NdisMRegisterInterrupt() °¡ ¿Ï·áµÈ ÈÄ¿¡.

General Guidelines for Writing NDIS Miniport Drivers
Back to Top

¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NDIS ¶óÀ̺귯¸®¸¸À» È£ÃâÇØ¾ÆÇÑ´Ù. ¿î¿µÃ¼Á¦-½ºÆå ÄÁ¤© È£ÃâµéÀÇ »ç¿ëÀ» ÇÇÇÏ´Â °ÍÀº À©µµ¿ì Ç÷§Æûµé»çÀÌ¿¡¼­ ÄÚµåÀÇ Æ÷Åͺô·¯Æ¼¸¦ Áõ°¡ÇÑ´Ù. ¶ÇÇÑ, À©µµ¿ìÁî 98°ú À©µµ¿ìÁî 2000»çÀÌ¿¡¼­ ¹ÙÀ̳ʸ® ȣȯÇÏ´Â NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¸¦ ¸¸µé±â À§Çؼ­, BINARY_COMPATIBLE Ç÷¡±×´Â »ç¿ëµÇ¾î¾ß ÇÑ´Ù. ¸¸¾à, NDIS ¶óÀ̺귯¸® ¿ÜÀÇ È£ÃâÀ» ÇØ¾ß ÇÑ´Ù¸é, Wdm.h ÆÄÀϾȿ¡ ¾È¿¡ Á¤ÀÇµÈ È£Ã⸸À» »ç¿ëÇØ¶ó. ±×°ÍÀº Windows 98 DDK °ú Windows 2000 DDK¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.

Important: : µå¶óÀ̹öµéÀÇ °³¹ßÀº ´õ ÀÌ»ó DDKµé¿¡¼­ ¹®¼­È­µÇÁö ¾Ê°Å³ª Áö¿øµÇÁö ¾Ê´Â´Ù. Full MAC µå¶óÀ̹öµé¿¡ ´ëÇÑ Áö¿øÀº À©µµ¿ì ½Ã½ºÅÛÀÇ ¹Ì·¡ ¹ßÇ¥¿¡¼­ Á¦°ÅµÉ °ÍÀÌ´Ù.

Recommended Solutions for NDIS Driver Problems
Back to Top

Çϵå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾î º¥´õµéÀº ÇÁ·Î¼¼½ºµéÀ» Å×½ºÆ® ÇÏ´Â µ¿¾È ¹Ýº¹µÇ´Â °°Àº ¹®Á¦µéÀ» ÇÇÇϱâ À§Çؼ­ ¿©±â Á¤º¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Problem: NDIS Driver Timers Fail during Driver Unload. µå¶óÀ̹öµéÀº MiniportHalt ·çƾÀÇ È£ÃâÀ» ÅëÇØ¼­ À©µµ¿ì 2000¿¡¼­ ¿©·¯ ¹ø ·Îµå µÇ°í ¾ð·Îµå µÉ ¼ö ÀÖ´Ù. µå¶óÀ̹ö¸¦ ¾ð·Îµå Çϱâ À§¿¡ ÇÊ¿äµÇ´Â ¸ðµç ¿¬»êµéÀº ÀÌ ·çƾÀÌ È£ÃâµÉ ¶§ ¸Þ¸ð¸®¸¦ ÇØÁ¦Çϰí ÀÎÅÍ·´Æ®µé°ú ¼Ë´Ù¿î Çڵ鷯ÀÇ µî·ÏÀ» ÇØÁ¦Çϰí ŸÀ̸ӵéÀ» Ãë¼ÒÇÏ´Â °ÍÀ» ¿Ï·áÇØ¾ßÇÑ´Ù. ŸÀÌ¸Ó µéÀº NdisMCancelTimer È£Ãâ·Î Ãë¼ÒµÈ´Ù.; ±×·¯³ª, ¾î¶² °æ¿ì¿¡´Â, NdisMCancelTimer È£ÃâÀÌ ½ÇÆÐÇÒ ¼öµµ ÀÖ´Ù.

¸¸¾à NdisMCancelTimer °¡ ½ÇÆÐÇÑ´Ù¸é, ±×°ÍÀº ŸÀ̸Ӱ¡ ÀÌ¹Ì ÆÄ±â µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÈù´Ù. ¸¸¾à ŸÀ̸Ӱ¡ ÆÄ±âµÇ¾ú´Ù¸é, µå¶óÀ̹ö´Â ŸÀÌ¸Ó ·çƾÀÌ È£ÃâµÇ°í ¿Ï·áµÉ ¶§±îÁö ¾ð·ÎµåÇÒ ¼ö ¾ø´Ù. ´ÙÀ½ÀÇ ¿É¼ÇµéÀº ÀÌ ¹®Á¦¸¦ ÇÇÇϴµ¥ µµ¿òÀ» ÁØ´Ù.:

  • ŸÀ̸ӿ¡ ´ëÇØ¼­ ÂüÁ¶ Ä«¿îÅ͸¦ À¯ÁöÇÑ´Ù.
  • NdisMCancelTimer È£ÃâÀÌ ½ÇÆÐÇÏ´Â °æ¿ì¿¡ ŸÀÌ¸Ó ÇÔ¼ö°¡ À̺¥Æ®¸¦ Æ®¸®°ÅÇØ¶ó.; MiniportHalt Çڵ鷯´Â ±× À̺¥Æ®¿¡¼­ ºí·ÏÀ¸·Î ¼ÂµÉ ¼ö ÀÖ´Ù.
  • ŸÀÌ¸Ó ÇÔ¼ö´Â µå¶óÀ̹ö°¡ haltÇϰí ÀÖ°í ¶Ç ´Ù¸¥ ŸÀ̸Ӱ¡ Å¥ÇÏÁö ¾Ê´Â °ÍÀ» ¹ß°ßÇØ¾ßÇÏ´Â °ÍÀ» º¸ÁõÇØ¶ó.

¹Ì´ÏÆ÷Æ®ÀÇ ¼Ë´Ù¿î Çڵ鷯´Â ÀÎÅÍ·´Æ®µéÀ» »ý¼ºÇÏ´Â °Í, DMA Àü¼Û µîÀ» ¸ØÃç¾ß ÇÑ´Ù. ŸÀ̸ӵéÀ» Ãë¼ÒÇØ¾ß Çϰųª ÀÚ¿øµéÀ» de-allocateÇØ¾ßÇÑ´Ù.

Problem: NDIS Driver Doesn't Start during Initialization. ¸ðµç PCI Ä«µå µå¶óÀ̹öµéÀº Dma32BitAddresses ÀÎÀÚÀ» TRUE·Î ¼ÂÇØ¾ßÇÑ´Ù. ÀÌ Ç÷¡±×¸¦ FALSE·Î ¼ÂÆÃÇÏ´Â À¯ÀÏÇÑ °æ¿ì´Â Ä«µå°¡ 16MB ÀÌ»ó¿¡ ¸Þ¸ð¸®¸¦ ÁÖ¼ÒÈ­ÇÒ ¼ö ¾øÀ» ¶§ÀÌ´Ù. ÀÌ Ç÷¡±×°¡ FALSE·Î ¼ÂµÇ¸é, µå¶óÀ̹ö´Â 16MB ¹ØÀÇ ¸Þ¸ð¸®°¡ ºÒÃæºÐÇÑ ÀÚ¿øÀÏ ¼ö ÀÖ´Â °Í °°Àº ÃʱâÈ­ µ¿¾È ½ÃÀÛÇÏÁö ¾Ê´Â´Ù. À̰ÍÀº ¶ÇÇÑ ÆÄ¿ö °ü¸®µÇÁö ¾Ê´Â Ä«µåµé¿¡ ¹®Á¦µéÀ» ÀÏÀ¸Å³ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì¿¡, µå¶óÀ̹öµéÀº ¼­½ºÆÒµå½Ã haltµÇ°í ´Ù½Ã ½ÃÀ۽à ´Ù½Ã ÃʱâÈ­µÈ´Ù. Ãß°¡ÀûÀ¸·Î, ³×Æ®¿öÅ© ¾î´ðÅÍ´Â ´Ù½Ã ½ÃÀ۽à ÃʱâÈ­ÇÏ´Â °ÍÀÌ ½ÇÆÐ µÉ ¼ö ÀÖ´Ù.

À©µµ¿ì 2000 DDK¿¡¼­ NE3200 »ùÇà µå¶óÀ̹ö´Â 16MB¸¦ ÃʰúÇÏ´Â ¹°¸® ¸Þ¸ð¸®¸¦ ÁÖ¼ÒÈ­ÇÒ ¼ö ¾ø´Â PCI Ä«µå¿¡ ´ëÇÑ °ÍÀÌ´Ù.DMA Àü¼Ûµé¿¡ ´ëÇÑ ÀÚ¿øµéÀ» ÇÒ´çÇÒ ¶§, ÀÌ »ùÇà µå¶óÀ̹ö´Â Dma32BitAddresses À» FALSE ·Î NdisMAllocateMapRegistersÀ» È£ÃâÇÑ´Ù.

Tips for Driver Initialization and Performance
Back to Top

µå¶óÀ̹ö ÃʱâÈ­, º¸³»±â ¿ä±¸µé°ú ¹öÆÛ ÇÒ´ç¿¡ ´ëÇØ¼­ ÀÌ ÆÁµéÀ» µû¸£¶ó.

NDIS Driver Initialization Routine Process. ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ÅõƾÀ» ÃʱâÈ­ÇÑ ÈÄ¿¡ NdisMIndicateStatusÀ» È£ÃâÇØ¾ß¸¸ ÇÑ´Ù. NDIS ¹Ì´ÏÆ÷Æ®ÀÇ MiniportInitialize ·çƾÀÌ ¿Ï·áµÉ ¶§±îÁö, NDIS´Â µå¶óÀ̹öµé·ÎºÎÅÍ »óÅ Áö½ÃµéÀ» ¼ö½ÅÇϰí ó¸®ÇÒ Áغñ°¡ µÇ¾îÀÖÁö ¾Ê´Ù.

NDIS Drivers Must Not Complete Requests at Device IRQL. . ¹Ì´ÏÆ÷Æ®µéÀº NdisMSendComplete¸¦ È£ÃâÇϹǷμ­ º¸³»±â ¿ä±¸¸¦ ¿Ï·áÇÑ´Ù. À̰ÍÀº ÀåÄ¡ ÀÎÅÍ·´Æ® ¿ä±¸ ·¹º§(DIRQL)¿¡¼­ ÇàÇØÁú ¼ö ¾ø´Ù. ¾î¶² µå¶óÀ̹öµéÀº NdisMSynchronizeWithInterruptÀ» ÅëÇØ È£ÃâµÈ ÇÔ¼ö¿¡¼­ º¸³»±â ¿ä±¸µéÀº ¿Ã¹Ù¸£Áö ¾Ê°Ô ¿Ï·áÇÑ´Ù. ÀÌ·¸°Ô ÇÏ´Â °ÍÀº È£ÃâµÈ ÇÔ¼ö°¡ DIRQL¿¡¼­ ½ÇÇàÇϱ⠶§¹®ÀÌ´Ù. º¸³»±âµéÀº ÀÌ IRQL¿¡¼­ ¿Ï·áµÇ¼± ¾ÈµÈ´Ù.(ÀÌ ±â»çÀÇ °¡Àå À̸¥ ¹öÀüÀÌ À߸øµÇ°Ô ½ÃÀÛÇß´Ù´Â °ÍÀ» ÁÖ¸ñÇØ¶ó.; ÀÌ ±ÛÀº ¹Ù¸¥ Á¤º¸¸¦ ¼³¸íÇÑ´Ù.)

Reduce Free Buffers for Drivers to Increase System Performance. ¸Þ¸ð¸®´Â °¡´ÉÇÑ ÇÊ¿äµÉ ¶§ µ¿ÀûÀ¸·Î ÇÒ´çµÇ¾î¾ßÇÑ´Ù. Å« ¸Þ¸ð¸®°¡ µå¶óÀ̹ö »ç¿ë¿¡¼­ ÇÒ´çµÉ ¶§, ½Ã½ºÅÛ ¼º´ÉÀº ÀúÇÏÇÒ ¼ö ÀÖ´Ù. ÀûÀº ¸Þ¸ð¸® ȯ°á¿¡¼­ Å« ¸Þ¸ð¸®ÀÇ ¼Òºñ´Â ¶ÇÇÑ ½Ã½ºÅÛ ¼º´É¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î ¹öÆÛµéÀÇ Ã³À½ ¼ö´Â 32¿¡¼­ 64À̰í 32¿¡¼­ Áõ°¡µÇ¾î¾ßÇÑ´Ù. Çã¿ëµÈ ¹öÆÛ ¼ö´Â 256ÀÌ´Ù.

³×Æ®¿öÅ© ¾î´ðÅÍ µå¶óÀ̹ö°¡ Ç×»ó ¼ö½ÅµÈ ÆÐŶµéÀ» ¼ÒÀ¯ÇÏ´Â NDIS 3.0 ¸ðµ¨ µå¶óÀ̹ö¿¡¼­, °íÁ¤µÈ ¹öÆÛ ¼ö´Â(¹êµåÀ§µå¿¡ ¸Â°Ô) ÇÊ¿äµÇ´Â ¸ðµç °ÍÀÌ´Ù. 100 Mb/s ½Ã½ºÅÛ¿¡ ´ëÇØ¼­, 32¿¡¼­ 64 ¹öÆÛ´Â ÃæºÐÇÏ´Ù. ±â°¡ºñÆ® ÀÌ´õ³Ý¿¡ ´ëÇØ¼­, ¹öÆÛ ¼ö´Â 100 Mb/s ½Ã½ºÅÛÀÇ µÎ¹èÀÏ ¼ö ÀÖ´Ù.

¼ö½Å ÆÐŶ ¸ðµ¨À» »ç¿ëÇÏ´Â µå¶óÀÔ¿¡¼­, ³×Æ®¿öÅ© ¾î´ðÅÍ´Â ¼ö½Å ¹öÆÛÀÇ Á¦¾î¸¦ ³×Æ®¿öÅ© ½ºÅÿ¡°Ô ¾çµµÇÑ´Ù. ±×¶§ ³×Æ®¿öÅ© ¾î´ðÅÍ µå¶óÀ̹ö´Â ÀÌ Ç®À» °ü¸®ÇϱâÀ§Çؼ­ ¿ä±¸µÈ´Ù. À̰ÍÀ» ÇàÇÏ´Â ½ÇÁ¦ ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

  1. 1. ÇÊ¿äÇÑ °¡Àå ÀûÀº ¹öÆÛ ¼ö¸¦ °áÁ¤Çضó. ÀÌ ¼ö°¡ µµÂøµÉ ¶§, ¸ðµç ¼ö½Å Áö½ÃµéÀº ÆÐŶ¿¡¼­ÀÇ »óŸ¦ NDIS_STATUS_RESOURCES·Î ¼ÂÆÃÇϹǷμ­ ÀÌ ¹öÆÛµéÀÇ ¼ÒÀ¯±ÇÀÌ ³×Æ®¿öÅ© ¾î´ðÅÍ µå¶óÀ̹ö¿¡ À¯ÁöµÇ°Ô ÇϱâÀ§Çؼ­ ¸¶Å©µÈ´Ù.
  2. 2. ÇÊ¿äÇÑ °¡Àå Å« ¹öÆÛ ¼ö¸¦ °áÁ¤Çضó. µå¶óÀÌ´Â ÀÌ Á¦ÇÑ¿ÜÀÇ Ç®À» ´Ã·Á¼± ¾ÈµÈ´Ù. ÀÌ Á¦ÇÑÀº ¹Ù»Û ¼­¹ö°¡ ¸¹Àº ÀÌ¿ëÇÒ ¼ö ÀÕ´Â ¸Þ¸ð¸®¸¦ ÀÌ¿ëÇÏÁö ¸øÇÏ°Ô ÇÏ´Â °ÍÀ» º¸ÁõÇÑ´Ù.
  3. 3. ¸¸¾à ÀÚÀ¯·Î¿î ¹öÆÛÀÇ ¼ö°¡ ÇÊ¿äÇÑ °¡Àå ÀûÀº ¼öÀÇ ¹öÆÛÀ̰í Àüü ¹öÆÛ ¼ö°¡ ÇÊ¿äÇÑ °¡Àå Å« ¹öÆÛ ¼öº¸´Ü Àû´Ù¸é, ±×¶§ ¹öÆÛ ¼ö¸¦ ´Ã¸®±âÀ§Çؼ­ ºñµ¿±â ÇÒ´çÀ» ÇÑ´Ù. ÇÒ´çÀÌ ¿Ï·áµÉ ¶§±îÁö ÆÐŶµéÀ» NDIS_STATUS_RESOURCES·Î Áö½ÃÇØ¶ó.
  4. 4. ¸¸¾à ÀÚÀ¯·Î¿î ¹öÆÛµéÀÇ ¼ö°¡ ÇÊ¿äÇÑ °¡Àå ÀûÀº ¼ö·Î µðÀÚÀÎµÈ °Íº¸´Ù Å©°í duration ½Ã°£¿¡ ´ëÇØ¼­ °Å±â¿¡ ¸Ó¹°·¯ÀÖ´Ù¸é, °è¼Ó Ãß°¡ÀûÀÎ ¹öÆÛµéÀ» ÀÚÀ¯·Ó°Ô ÇØ¶ó.

Testing Network Adapter Drivers with Driver Verifier
Back to Top

µå¶óÀ̹ö ¼º´ÉÀ» º¸ÁõÇϱâÀ§Çؼ­, À©µµ¿ì Å×½ºÅÍ ÆÀµéÀº µå¶óÀ̹ö VerifierÀÇ »ç¿ëÀ» Æ÷ÇÔÇϱâÀ§Çؼ­ ÇàÇÏ´Â Å×½ºÆÃÀ» È®ÀåÇß´Ù. µå¶óÀ̹öµéÀº À©µµ¿ì 2000¿¡ Æ÷ÇÔµµ±âÀ§Çؼ­ ÀÌ Å×½ºÆÃÀ» Åë°úÇÏ´Â °ÍÀÌ ¿ä±¸µÈ´Ù. ±×¸®°í Å×½ºÆ® ÅøµéÀº ÀÌ Åø·Îµé·Î Å×½ºÆ®µÉ ¸ðµç ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º Ä«µå(NIC) µå¶óÀ̹öµé¿¡ ´ëÇØ¼­ ·¹º§ 3¿¡¼­ µå¶óÀ̹ö verificationÀ» ÀÚµ¿ÀûÀ¸·Î turn onÇϱâÀ§Çؼ­ ¼öÁ¤µÇ°í ÀÖ´Ù. µå¶óÀ̹ö Verifier´Â http://www.microsoft.com/hwdev/driver/driververify.htm.¿¡ ¹®¼­È­µÇ¾îÀÖ´Ù.

µå¶óÀ̹ö Verifier´Â ´ÙÀ½À» Å×½ºÆ®ÇÑ´Ù.

  • Ưº°ÇÑ Ç®ÀÇ »ç¿ëÀ¸·Î ¿À¹ö·±À̳ª ¾ð´õ·±ÇÏ´Â ¹öÆÛ¸¦ ã´Â´Ù.
  • IRQLÀÌ DISPATCH_LEVEL·Î »ó½ÂÇÒ ¶§ ÆäÀÌÁöµÈ ¸Þ¸ð¸®¸¦ ¾ð¸ÊÇÑ´Ù.
  • Read-only ¸Þ¸ð¸® º¸È£¸¦ °­¿äÇÑ´Ù.

³ôÀº ¼º´ÉÀÇ µå¶óÀ̹öµéÀÇ »ý¼ºÀ» º¸ÁõÇϱâÀ§ÇÑ °¡Àå ÁÁÀº ¹æ¹ýµéÀÇ Çϳª´Â µ¥½ºÆ®¿¡ ´ëÇØ¼­ ³ÊÀÇ µå¶óÀ̹ö¸¦ MS¿¡ Á¦¾ÈÇϱâÀü¿¡ µå¶óÀ̹ö Verifier¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. µå¶óÀ̹ö Verifier´Â Á¦¾ÈÀü¿¡ ndis Å×½ºÆ®µéÀÇ Àüü ½´Æ®¸¦ ÅëÇØ¼­ ·¹º§ 3¿¡¼­ ½ÇÇàµÇ¾î¾ßÇÑ´Ù.

À©µµ¿ì Á¦Ç°¿¡ Æ÷ÇÔ¿¡ ´ëÇØ¼­ Á¦¾ÈµÈ ¸ðµç µå¶óÀ̹öµéÀº À©µµ¿ì ³×Æ®¿öÅ· ÆÀ¿¡ÀÇÇØ¼­ ³Ð°Ô Å×½ºÆ®µÈ´Ù. ÀÌ Å×½ºÆÃÀ» Åë°úÇÑ µå¶óÀ̹öµéÀº ¿î¿µÃ¼Á¦ÀÇ ÇöÀç ºôµåµé°ú ÇÔ²² ÁøÇàÁßÀÎ ±âº»¿¡ ÀÔÁõµÈ´Ù. ÀÌ µå¶óÀ̹öµéÀ» ÀÔÁõÇϴµ¥ »ç¿ëµÈ Å×½ºÆ®µé°ú ÅøµéÀÇ ¼­ºê¼ÂÀº ¶ÇÇÑ Çϵå¿þ¾î¿¡ ´ëÇÑ À©µµ¿ì ·Î°í¿¡¼­ ¿ä±¸µÇ´Â Microsoft Windows Hardware Compatibility Tests (HCTs)ÀÇ ÀϺκÐÀÌ´Ù.

Call to action for NDIS 5.0 driver writers:

  • ³×Æ®¿öÅ© µå¶óÀ̹öµé¿¡¼­ ÃʱâÈ­ ½Ã°£À» °¨¼Ò½ÃŰ´Â °Í¿¡ ´ëÇÑ ±âȸ¸¦ Æò°¡Çضó.
  • Å×½ºÆÃÀ» Á¦¾ÈÇϱâÀü¿¡ µå¶óÀ̹ö VerifierÀ» »ç¿ëÇØ¼­ ³ÊÀÇ µå¶óÀ̹ö¸¦ Å×½ºÆ®Çضó.
  • NDIS µå¶óÀ̹ö Å×½ºÆÃ °á°úµéÀ» °³¼±ÇϱâÀ§Çؼ­ ¿©±â ÀÖ´Â ÆÁµéÀ» »ç¿ëÇØ¶ó.
  • µå¶óÀ̹ö Verifier¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¿¡ ´ëÇØ¼­´Â, http://www.microsoft.com/hwdev/driver/driververify.htm. ¿¡¼­ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ±â»ç¸¦ º¸¾Æ¶ó.
  • µå¶óÀ̹ö ÀνºÅç À̽´ÀÎ INF ÆÄÀϵé°ú Æ÷¸Ë¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¿¡ ´ëÇØ¼­, http://www.microsoft.com/hwdev/devdes/netinf.htm.¿¡¼­ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â "Network INF Format for Windows 2000 and Windows 98," ±â»ç¸¦ º¸¾Æ¶ó.
  • ³×Æ®¿öÅ© ¾î´ðÅ͵鿡 ´ëÇÑ NDIS 5.0 Áö¿ø¿¡ °ü°èµÈ °¡À̵å¶óÀο¡ ´ëÇØ¼­´Â, À©µµ¿ì 2000 DKKÀ» º¸°í ¶ÇÇÑ http://www.microsoft.com/hwdev/network/.¸¦ º¸¾Æ¶ó.
  • ¸¸¾à ³Ê°¡ ÀÌ ±â»ç¿¡ ´ëÇÑ À̽´¿¡ ´ëÇØ¼­ ±â¼ú Áú¹®µéÀ» °¡Áø´Ù¸é, ¸ÞÀÏÀÇ ¼­ºêÁ§Æ® ¶óÀο¡ Driver initialization time·Î ndisfb@microsoft.com·Î º¸³»¶ó. À̸§, ŸÀÌÆ², ȸ»ç À̸§, ÀüÈ­¹øÈ£, ÆÑ½º¹øÈ£ ¸¦ Æ÷ÇÔÇØ¶ó.