3.3 IRQLs

NDIS¿¡ ÀÇÇØ È£ÃâµÇ¾îÁö´Â ¸ðµç µå¶óÀ̹ö ÇÔ¼öµéÀº PASSIVE_LEVEL < DISPATCH_LEVEL < DIRQLÀÇ Çϳª·Î ½Ã½ºÅÛ °áÁ¤ IRQL¿¡¼­ ½ÇÇàÇÑ´Ù. ¿¹¸¦ µé¾î, ¹Ì´ÏÆ÷Æ®ÀÇ ÃʱâÈ­ ÇÔ¼ö, halt ÇÔ¼ö, ¸®¼Â ÇÔ¼ö, ¶§¶§·Î shutdown ÇÔ¼ö´Â °øÅëÀûÀ¸·Î PASSIVE_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù. ÀÎÅÍ·´Æ® ÄÚµå´Â DIRQL¿¡¼­ ½ÇÇàÇÏ°í ±×·¡¼­ NDIS ÀÎÅ͹̵ð¾ù ȤÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â °áÄÚ DIRQL¿¡¼­ ½ÇÇàÇÏÁö ¾Ê´Â´Ù. ¸ðµç ´Ù¸¥ NDIS µå¶óÀ̹ö ÇÔ¼öµéÀº IRQL <= DISPATCH_LEVEL ¿¡¼­ ½ÇÇàÇÑ´Ù.

µå¶óÀ̹ö ÇÔ¼ö°¡ ½ÇÇàÇÏ´Â IRQLÀº ¾î´À NDIS ÇÔ¼öµéÀÌ È£ÃâµÉ ¼ö ÀÖ´ÂÁö¿¡ ¿µÇâÀ» ³¢Ä£´Ù. ¾î¶² ÇÔ¼öµéÀº ´ÜÁö IRQL PASSIVE_LEVEL¿¡¼­ È£ÃâµÇ¾îÁú ¼ö ÀÖ´Ù. ´Ù¸¥ °ÍµéÀº DISPATCH_LEVEL¿¡¼­ ȤÀº ±×º¸´Ù ´õ ³·Àº °÷¿¡¼­ È£ÃâµÉ ¼ö ÀÖ´Ù. µå¶óÀ̹ö °³¹ßÀÚ´Â IRQL Á¦ÇѵéÀ» À§ÇØ ¸ðµç NDIS ÇÔ¼ö¸¦ Ã¼Å©ÇØ¾ß ÇÑ´Ù.

µå¶óÀ̹öÀÇ ISR¿¡¼­ ÀÚ¿øµéÀ» °øÀ¯ÇÏ´Â ¾î¶² µå¶óÀ̹ö ÇÔ¼ö´Â race Á¶°ÇµéÀ» ¸·±â À§ÇØ IRQLÀ» DIRQL·Î ¿Ã¸®´Â °ÍÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù. NDIS´Â ±×·¯ÇÑ ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù.