NdisInitializeListHead
VOID
NdisInitializeListHead(
IN PLIST_ENTRY ListHead
);
|
NdisInitializeListHeadÇÔ¼ö´Â ÀÌÁß ¿¬°áµÈ ÀÎÅͶôµÈ Å¥,µå¶óÀ̹ö°¡ À¯ÁöÇÏ´Â ÀÎÅͶôµÈ Å¥ ȤÀº ÀÌÁß ¿¬°á¸®½ºÆ®¸¦ ÃʱâÈ ÇÑ´Ù.
¸Å°³º¯¼ö
- ListHead
- ÀÎÅͶôµÈ Å¥ ȤÀº ¸®½ºÆ®ÀÇ Çìµå¿¡´ëÇÑ µå¶óÀ̹ö°¡ ÇÒ´çÇÑ ºñÆäÀÌÁöÈµÈ ÀúÀå°ø°£ÀÇ Æ÷ÀÎÅÍ.
ÁÖ¼®
NdisInitializeListHeadÇÔ¼ö´Â ¸¸¾à µå¶óÀ̹ö°¡ ¿äûµéÀ» ³»ºÎÀûÀ¸·Î Å¥ÇÑ´Ù¸é, MiniportInitializeÇÔ¼öȤÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹öÀÇ DriverEntryÇÔ¼ö·ÎºÎÅÍ È£ÃâµÉ¼ö ÀÖ´Ù. ±×·¯³ª ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NDIS¶óÀ̺귯¸®°¡ ¿äûµé°ú ¹Ì´ÏÆ÷Æ®·Î º¸³»Áø ÆÐŶµéÀ» Á÷·ÄÈÇϱ⶧¹®¿¡ Á»Ã³·³ ³»ºÎÀûÀΠťµéÀ» ¼³Á¤ÇÏÁö ¾Ê´Â´Ù.
³»ºÎÀûÀΠť¸¦ À¯ÁöÇÏ´Â ¾î¶² NDISµå¶óÀ̹ö´Â Å¥ÈµÈ ¿£Æ®¸®µé¿¡ µ¿±âÀûÀÎ µå¶óÀ̹ö ÇÔ¼öµéÀÇ Á¢±Ùµé¿¡ ´ëÇÑ Ã¥ÀÓÀ» Áø´Ù. NdisInterlocked..ListÇÔ¼öµéÀº µå¶óÀ̹ö°¡ ¸ÖƼ ÇÁ·Î¼¼¼ ¸Ó½Å¿¡¼ µ¿ÀÛÇÑ´Ù ÇÒÁö¶óµµ ´ÜÁö ÇϳªÀÇ µå¶óÀ̹öÇÔ¼ö°¡ ¾î¶² ÁÖ¾îÁø ¼ø°£¿¡ Å¥µÈ ¿£Æ®¸®µéÀ» Á¢±ÙÇÒ¼ö Àִٴ°ÍÀ» È®½ÇÈ÷ÇÑ´Ù. ¿Ö³ÄÇϸé Å¥´Â È£ÃâÀÚ Á¦°ø ½ºÇÉ ¶ô¿¡ÀÇÇØ º¸È£µÇ¾îÁö±â¶§¹®¿¡.
ÀÎÅͶôµÈ Å¥¿¡´ëÇØ, µå¶óÀ̹ö´Â ¶ÇÇÑ ½ºÇɶô¿¡´ëÇØ ºñÆäÀÌÁöÈµÈ ÀúÀåÀå¼Ò¸¦ Á¦°øÇÑ´Ù. ±× ½ºÇɶô¿¡´ëÇÑ NdisInterlocked..ListÇÔ¼öµé¿¡°Ô Æ÷ÀÎÅ͸¦ ³Ñ±â±â Àü¿¡ NdisAllocateSpinLockÇÔ¼ö·Î ½ºÇɶôÀ» ÃʱâÈ ÇØ¾ß¸¸ ÇÑ´Ù.
NdisInitializeListHeadÇÔ¼öÀÇ È£ÃâÀÚ´Â ÀϹÝÀûÀ¸·Î IRQL PASSIVE_LEVEL¿¡¼ µ¿ÀÛÇÑ´Ù. ¿Ö³ÄÇϸé, ÀÌ ÇÔ¼ö´Â ÀϹÝÀûÀ¸·Î ÃʱâÈ¿¡¼ È£ÃâµÈ´Ù.
|