NdisInitializeSListHead
VOID
NdisInitializeSListHead(
IN PSLIST_HEADER SListHead
);
|
NdisInitializeSListHeadÇÔ¼ö´Â ÀÏ·ÃÀÇ, Æ÷°³Áö´Â ÇϳªÀÇ ¸µÅ©µå¸®½ºÆ®¸¦ ÃʱâÈÇÑ´Ù.
¸Å°³º¯¼ö
- SListHead
- »óÁÖ ¸Þ¸ð¸®³»¿¡ ÀÖ¾î¾ßÇÑ´Â ÃʱâȵǴ ȣÃâÀÚ Á¦°ø ¸®½ºÆ®ÇìµåÀÇ Æ÷ÀÎÅÍ.
ÁÖ¼®
NdisInitializeSListHeadÇÔ¼ö´Â SListHead¿¡ ¸ðÈ£ÇÑ ¸®½ºÆ® Çìµå¸¦ 0À¸·Î ÃʱâÈÇϰí óÀ½¿£Æ®¸® Æ÷ÀÎÅ͸¦ NULL·Î ¼³Á¤ÇÑ´Ù.
S-List³»ÀÇ ÀϷùøÈ£´Â ¿£Æ®¸®°¡ ¸®½ºÆ®¿¡ Ãß°¡µÇ°Å³ª ȤÀº ¸®½ºÆ®·ÎºÎÅÍ Á¦°ÅµÉ¶§¸¶´Ù Áõ°¡µÈ´Ù.
S-List³»ÀÇ ¸ðµç ¿£Æ®¸®µéÀº ºñÆäÀÌÁöȵǾî¾ßÇÑ´Ù.
S-List¸¦ »ç¿ëÇÏ´Â ¾î¶² µå¶óÀ̹ö¶óµµ NdisInterlockedPushEntrySListÇÔ¼ö¿Í NdisInterlockedPopEntrySListÇÔ¼ö¿¡°Ô ½ºÇÉ ¶ôÀ» Á¦°øÇؾ߸¸ ÇÑ´Ù. ÀÌ·¯ÇÑ ÇÔ¼öµéÁßÀÇ ¾î¶² ÇϳªÀÇ Ã³À½È£ÃâÀü¿¡, µå¶óÀ̹ö´Â NdisAllocateSpinLockÇÔ¼ö·Î ½ºÇɶôÀ» ÃʱâÈ ÇØ¾ß¸¸ ÇÑ´Ù. µ¥µå¶ôÀ» ¿¹¹æÇϱâÀ§ÇØ, µå¶óÀ̹ö´Â NdisInterlockedPushEntrySListÇÔ¼ö¿Í NdisInterlockedPopEntrySListÇÔ¼öÀÇ ¼øÂ÷ÀûÀΠȣÃâÀ» ¸¸µé¶§ ÀÌ ½ºÇɶôÀ» Àâ°íÀ־ ¾ÈµÈ´Ù.
ºñÆäÀÌÁöÈµÈ ¸Þ¸ð¸®·ÎºÎÅÍ °íÁ¤µÈ »çÀÌÁîÀÇ POOLÀ» ´Ù·ç±âÀ§ÇØ, S-List´ë½Å ·è¾î»çÀÌµå ¸®½ºÆ®ÀÇ »ç¿ëÀ» °í·ÁÇÑ´Ù.
I/O¿¬»êµéÀ» Àç½ÃµµÇÏ´Â µå¶óÀ̹öµéÀº S-Listº¸´Ù´Â ÀÌÁß ¿¬°á ÀÎÅͶôµÈ Å¥¿Í NdisInterlockedInsert/Remove..ListÇÔ¼ö¸¦ »ç¿ëÇØ¾ß¸¸ÇÑ´Ù.
NdisInitializeSListHeadÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼ µ¿ÀÛÇØ¾ß¸¸ ÇÑ´Ù.
|