NdisInterlockedInsertTailList

PLIST_ENTRY

  NdisInterlockedInsertTailList(

    IN PLIST_ENTRY  ListHead,

    IN PLIST_ENTRY  ListEntry,

    IN PNDIS_SPIN_LOCK  SpinLock

    );

NdisInterlockedInsertTailListÇÔ¼ö´Â ¿£Æ®¸®,ÀϹÝÀûÀ¸·Î ÆÐŶÀ» ÀÌÁß¿¬°á¸®½ºÆ®ÀÇ Å×ÀÏ¿¡ »ðÀÔÇÏ¿© ¸ÖƼÇÁ·Î¼¼¼­-safe¹æ¹ýÀ¸·Î µ¿±âÈ­µÇ´Â ¸®½ºÆ®¿¡ Á¢±ÙÇϵµ·Ï ÇÑ´Ù.

¸Å°³º¯¼ö

ListHead
¿£Æ®¸®°¡ »ðÀԵǾîÁö´Â ÀÌÁß¿¬°á¸®½ºÆ®ÀÇ Å×ÀÏÀÇ Æ÷ÀÎÅÍ.

ListEntry
¸®½ºÆ®ÀÇ ³¡¿¡ »ðÀԵǾîÁö´Â ¿£Æ®¸®ÀÇ Æ÷ÀÎÆ®

SpinLock
¸®½ºÆ®¿¡ µ¿±âÀûÀ¸·Î Á¢±ÙÇϱâÀ§ÇØ »ç¿ëµÇ´Â È£ÃâÀÚÁ¦°ø ½ºÇɶôÀÇ Æ÷ÀÎÅÍ.

¸®Åϰª

NdisInterlockedInsertTailListÇÔ¼ö´Â ÁÖ¾îÁø ¿£Æ®¸®°¡ »ðÀԵDZâÀü¿¡ Å¥ÀÇ Å×ÀÏ¿¡ ÀÖ´Â ¿£Æ®¸®¿¡´ëÇÑ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. ¸¸¾à Å¥°¡ ºñ¾ú´Ù¸é, NULLÀ» ¸®ÅÏÇÑ´Ù.

ÁÖ¼®

NdisInterlockedInsertTailListÇÔ¼öÀÇ È£ÃâÀü¿¡, µå¶óÀ̹ö´Â NdisInitializeListHeadÇÔ¼ö·Î ListHeadÀÇ º¯¼ö¸¦ ÃʱâÈ­ ÇØ¾ß¸¸Çϰí NdisAllocateSpinLockÇÔ¼ö·Î SpinLockÀÇ º¯¼ö¸¦ ÃʱâÈ­ÇØ¾ß¸¸ ÇÑ´Ù. µå¶óÀ̹ö´Â ÀÌ·¯ÇÑ º¯¼öµé¿¡´ëÇÑ ±×¸®°í ³»ºÎ Å¥¿¡´ëÇÑ »óÁÖ ÀúÀåÀå¼Ò¸¦ Á¦°øÇؾ߸¸ÇÑ´Ù.

NdisInterlockedInsertTailListÇÔ¼ö°¡ ÁÖ¾îÁø ¿£Æ®¸®¸¦ »ðÀÔÇϴµ¿¾È¿¡, ½ÉÁö¾î µå¶óÀ̹ö°¡ ¸ÖƼÇÁ·Î¼¼¼­ ÀåÄ¡¿¡¼­ µ¿ÀÛÇÒ¶§Á¶Â÷, È£ÃâÀÚ Á¦°ø ½ºÇɶôÀº µå¶óÀ̹öÀÇ ³»ºÎ Å¥¿¡ Á¢±ÙÇϴ°ÍÀ¸·ÎºÎÅÍ ¾î¶² ´Ù¸¥ ÇÔ¼öµéÀ» ¸·´Â´Ù.

NdisInterlockedInsertTailListÇÔ¼ö´Â ÁÖ¾îÁø ½ºÇɶôÀ» Çã¿ëÇϰųª ÄÁÃß·²À» ¸®ÅÏÇϱâÀü¿¡ ¿ø·¡ IRQLÀ» ÀúÀåÇÒ¶§, IRQLÀ» DISPATCH_LEVEL·Î »ó½Â½ÃŲ´Ù. °á°úÀûÀ¸·Î, NdisInterlockedInsertTailListÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¾î¶² µå¶óÀ̹öÇÔ¼ö´Â ÆäÀÌÁ®ºíÇÑ ÄÚµåÀϼö ¾ø´Ù.

¸®ÅÏµÈ °ªÀ» »ðÀÔµÈ ¿£Æ®¸®·Î ´Ù½Ã º¯È¯ÇϱâÀ§ÇØ, µå¶óÀ̹ö´Â CONTAINING_RECORD¸ÅÅ©·Î¸¦ »ç¿ëÇÑ´Ù(Kernel-Mode Driver Reference¸¦º¸¶ó).

NdisInterlockedInsertTailListÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼­ µ¿ÀÛÇÑ´Ù.