MiniportSynchronizeISR

BOOLEAN

  MiniportSynchronizeISR(

    IN PVOID  SynchronizeContext

    );

MiniportSynchronizeISRÀº DIRQLº¸´Ù ³·Àº °÷¿¡¼­ ½ÇÇàÇÏ´Â ¾î¶² NIC µå¶óÀ̹ö ÇÔ¼ö´Â ±×·¯ÇÑ µå¶óÀ̹öÀÇ MiniportISR ȤÀº MiniportDisableInterrupt ÇÔ¼ö¿Í ÀÚ¿øµéÀ» °øÀ¯ÇÑ´Ù¸éÀº ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù.

¸Å°³º¯¼ö

SynchronizeContext
NIC µå¶óÀ̹öÀÇ MiniportXxx ȤÀº ³»ºÎ ÇÔ¼ö°¡ NdisMSynchronizeWithInterrupt¸¦ È£ÃâÇÒ ¶§ Á¦°øµÇ¾îÁö´Â ÄÁÅØ½ºÆ® ¿µ¿ªÀ» °¡¸®Å²´Ù. Ç×»ó, ÀÌ·¯ÇÑ ÀÔ·Â ¸Å°³º¯¼ö´Â ´Ù¸¥ MiniportXxx ÇÔ¼öµé¿¡°Ô Àü´ÞµÇ¾îÁö´Â NIC ƯÁ¤ MiniportAdapterContext ¿µ¿ª³»¿¡ offset¿¡¼­ °øÀ¯µÈ ÀÚ¿øµéÀÇ set¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ´Ù.

¸®Åϰª

MiniportSynchronizeISRÀº NdisMSynchronizeWithInterruptÀÇ È£ÃâÀÚ¿¡°Ô Àü´ÞµÇ¾îÁö´Â µå¶óÀ̹ö °áÁ¤ Àǹ̷ΠBooleanÀ» ¸®ÅÏÇÑ´Ù.

ÁÖ¼®

¸¸¾à ¾î¶² NIC µå¶óÀ̹ö ÇÔ¼ö°¡ ÀåÄ¡ ·¹Áö½ºÅ͵é°ú °°Àº ÀÚ¿øµéÀ» µå¶óÀ̹öÀÇ MiniportISR ȤÀº MiniportDisableInterrupt ÇÔ¼ö¿Í °øÀ¯ÇÑ´Ù¸éÀº µðÆúÆ®·Î DIRQLº¸´Ù ³·Àº °÷¿¡¼­ ½ÇÇàÇÏ´Â µå¶óÀ̹ö ÇÔ¼ö´Â Á÷Á¢ ÀÌ·¯ÇÑ ÀÚ¿øµé¿¡°Ô Á¢±ÙÇÒ ¼ö ¾ø´Ù. ¸¸¾à ±×·¯ÇÑ °øÀ¯µÈ ÀÚ¿øµéÀ» Á÷Á¢ Á¢±ÙÇÏ´Â °ÍÀ» ½ÃµµÇÑ´Ù¸éÀº, ³·Àº ¿ì¼± ¼øÀ§ ÇÔ¼ö´Â ³·Àº ¿ì¼± ¼øÀ§ µå¶óÀ̹ö ÇÔ¼ö¾Æ·¡¿¡¼­ºÎÅÍ »óŰ¡ º¯È­ÇÒ ¼ö ÀÖ´Â MiniportISR ȤÀº MiniportDisableInterruptÀÇ ½ÇÇà¿¡ ÀÇÇØ ¼±Á¡µÉ ¼ö ÀÖ´Ù.

MiniportISR ȤÀº MiniportDisableInterrupt·Î ±×·¯ÇÑ °øÀ¯µÈ ÀÚ¿øµé¿¡ ´ëÇÑ Á¢±ÙÀ» µ¿±âÈ­Çϱâ À§ÇØ, ³·Àº ¿ì¼±±Ç µå¶óÀ̹ö ÇÔ¼öµéÀº DIRQL ¿¡¼­ ÀÌ·¯ÇÑ °øÀ¯µÈ ÀÚ¿øµé¿¡ ´ëÇÑ µå¶óÀ̹öÀÇ MiniportSynchronizeISR ÇÔ¼öÀÇ Á¢±ÙÀ» °¡Áö±â À§ÇØ NdisMSynchronizeWithInterrupt¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. NdisMSynchronizeWithInterrupt¸¦ È£ÃâÇÏ´Â °ÍÀº SMP ±â°è¿¡¼­ ƯÈ÷, ±×·¯ÇÑ NIC µå¶óÀ̹ö³»¿¡¼­ °æÁÖ Á¶°Çµé°ú(race conditions) µ¥µå¶ôµéÀ» º¸È£ÇÑ´Ù.

±×µé »çÀÌ¿¡ ÀÚ¿øµéÀ» °øÀ¯ÇÏ´Â ¾î¶² ³·Àº ¿ì¼± ¼øÀ§ µå¶óÀ̹ö ÇÔ¼öµéÀº(DIRQL¿¡¼­ ½ÇÇàÇÏ´Â ¾î¶² ÇÔ¼ö·Î°¡ ¾Æ´Ï¶ó) ±×·¯ÇÑ °øÀ¯µÈ ÀÚ¿øµéÀ» º¸È£Çϱâ À§ÇØ ½ºÇɶôÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.

MiniportSynchronizeISRÀº µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö°¡ NdisMRegisterInterrupt¸¦ È£ÃâÇÒ ¶§ ÇÒ´çµÈ DIRQL¿¡¼­ ½ÇÇàÇÑ´Ù. DIRQL¿¡¼­ ½ÇÇàÇÏ´Â ¾î¶² µå¶óÀ̹ö ÇÔ¼ö¿Í °°ÀÌ, MiniportSynchronizeISRÀº ¾î¶² IRQL¿¡¼­ È£ÃâÇϴµ¥ ¾ÈÀüÇÏ°Ô ´ÜÁö ±×·¯ÇÑ NdisXxx ÇÔ¼öµéÀ» È£ÃâÇÒ ¼ö ÀÖ°í °¡´ÉÇÑÇÑ ºü¸£°Ô Á¦¾î¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù.