NdisInitializeNPagedLookasideList

VOID

  NdisInitializeNPagedLookasideList(

    IN PNPAGED_LOOKASIDE_LIST  Lookaside,

    IN PALLOCATE_FUNCTION  Allocate  OPTIONAL,

    IN PFREE_FUNCTION  Free  OPTIONAL,

    IN ULONG  Flags,

    IN ULONG  Size,

    IN ULONG  Tag,

    IN USHORT  Depth

    );

NdisInitializeNPagedLookasideListÇÔ¼ö´Â ·è¾î»çÀÌµå ¸®½ºÆ®¸¦ ÃʱâÈ­ ÇÑ´Ù. ¼º°øÀûÀÎ ÃʱâÈ­ÈÄ, ºñÆäÀÌÁöÈ­µÇ´Â °íÁ¤µÈ »çÀÌÁî ºí·°Àº ·è¾î»çÀÌµå ¸®½ºÆ®·ÎºÎÅÍ ÇÒ´çµÇ°í ·è¾î»çÀ̵å·Î ÇØÁ¦µÈ´Ù.

¸Å°³º¯¼ö

Lookaside
ÃʱâÈ­µÇ´Â È£ÃâÀÚ ÇÒ´ç ·è¾î»çÀÌµå ¸®½ºÆ®ÇìµåÀÇ Æ÷ÀÎÅÍ. µå¶óÀ̹ö´Â »óÁÖÇÏ´Â Áï ºñÆäÀÌÁöÈ­µÇ´Â ½Ã½ºÅÛ °ø°£ÀÎ ¸®½ºÆ® Çìµå¸¦ Á¦°øÇؾ߸¸ ÇÑ´Ù.

Allocate
NULLÀ̰ųª È£ÃâµÉ¶§¸¶´Ù ÁöÁ¤µÈ »çÀÌÁîÀÇ ¿£Æ®¸®¸¦ ÇÒ´çÇÒ È£ÃâÀÚ Á¦°ø ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à Allocate°¡ NULLÀ̸é, NdisAllocateFromNPagedLookasideListÇÔ¼ö´Â ¼øÂ÷ÀûÀ¸·Î È£ÃâÀÚ¸¦ ´ë½ÅÇÏ¿© ¿£Æ®¸®µéÀ» ÇÒ´çÇÑ´Ù. ¸¸¾à È£ÃâÀÚ°¡ AllocateÇÔ¼ö¸¦ Á¦°øÇÑ´Ù¸é, FreeÇÔ¼öµµ Á¦°øÇؾ߸¸ÇÑ´Ù.

Free
NULLÀ̰ųª È£ÃâµÉ¶§¸¶´Ù ÁöÁ¤µÈ »çÀÌÁîÀÇ ¿£Æ®¸®¸¦ ÇØÁ¦ÇÒ È£ÃâÀÚ Á¦°ø ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à Free°¡ NULLÀ̸é, NdisFreeToNPagedLookasideListÇÔ¼ö´Â È£ÃâÀÚ¸¦ ´ë½ÅÇÏ¿© ¿£Æ®¸®µéÀ» ÇØÁ¦ÇÑ´Ù.

Flags
0À̾î¾ß¸¸ ÇÑ´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â ½Ã½ºÅÛ»ç¿ëÀ¸·Î ¿¹¾àµÇ¾ú´Ù.

Size
·è¾î»çÀÌµå ¸®½ºÆ®·ÎºÎÅÍ ¼øÂ÷ÀûÀ¸·Î ÇÒ´çµÇ¾îÁö´Â °¢ ¿£Æ®¸®ÀÇ ¹ÙÀÌÆ® »çÀÌÁ ÁöÁ¤ÇÑ´Ù.

Tag
·è¾î»çÀÌµå ¸®½ºÆ® ¿£Æ®¸®µé¿¡´ëÇÑ È£ÃâÀÚ Á¦°ø POOL ű׸¦ ÁöÁ¤ÇÑ´Ù. ±× ű״ ÇϳªÀÇ ÀÎ¿ë ºÎÈ£µé(¿¹¸¦µé¾î 'derF')¿¡ÀÇÇØ ±¸ºÐµÇ¾îÁö´Â 4¹®ÀÚµéÀÇ ½ºÆ®¸µÀÌ´Ù. ±× ij¸¯Å͵éÀº ÀϹÝÀûÀ¸·Î ¿ª¼øÀ¸·Î ÁöÁ¤µÈ´Ù. ±×·¡¼­ µð¹ö°Å¿¡¼­ ´ýÇÎ POOLȤÀº Æ®·¢Å· POOLÀÇ »ç¿ë½Ã ´õ¿í ½±°Ô ÀÐÀ»¼ö ÀÖ´Ù.

Depth
0À̾î¾ß¸¸ ÇÑ´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â ¶ÇÇÑ ½Ã½ºÅÛ »ç¿ë¿¡ÀÇÇØ ¿¹¾àµÆ´Ù.

ÁÖ¼®

NdisInitializeNPagedLookasideListÇÔ¼ö´Â È£ÃâÀÚ Á¦°ø ¸®½ºÆ® Çìµå¸¦ ÃʱâÈ­ ÇÏÁö¸¸ ¸®½ºÆ® ¿£Æ®¸®¿¡´ëÇÑ ¸Þ¸ð¸®´Â ÇÒ´çÇÏÁö ¾Ê´Â´Ù. óÀ½ÀÇ ¿£Æ®¸®µéÀº NdisAllocateFromNPagedLookasideListÇÔ¼öÀÇ È£ÃâÀ̳ª µå¶óÀ̹öÁ¦°ø ÇÒ´ç Äݺ¤À¸·Î ÇÊ¿äÇѸ¸Å­À» Åä´ë·Î ÇÒ´çµÇ¾îÁø´Ù. ¸®½ºÆ®´Â µå¶óÀ̹ö°¡ ¿£Æ®¸®µéÀ» ´Ù½Ã NdisFreeToNPagedLookasideListÇÔ¼ö·Î ¸®½ºÆ®·Î ÇØÁ¦ÇÒ¶§ ³õ¿©Áú °ÍÀÌ´Ù(¾Ö¸Å). ¿£Æ®¸®µéÀº ½Ã½ºÅÛÀÇÁ¸ÀÌÁö¸¸ µ¿ÀûÀÎ »çÀÌÁî Á¦ÇÑÀÌ ´Ù´Ù¸¦¶§±îÁö ¸®½ºÆ®¸¦ ¼öÁýÇÑ´Ù. ±×¸®°í³ª¼­, ·è¾î»çÀÌµå ¸®½ºÆ®³»ÀÇ ¾î¶² À׿© ¿£Æ®¸®µéÀº NdisFreeToNPagedLookasideListÇÔ¼öȤÀº µå¶óÀ̹ö Á¦°ø FreeÄݺ¤ÀÇ È£Ãâ·Î ºñÆäÀÌÁöÈ­µÈ pool·Î ¸®ÅϵȴÙ.

·è¾î»çÀÌµå ¸®½ºÆ®³»ÀÇ ¸ðµç ¿£Æ®¸®µéÀº °°Àº »çÀÌÁîÀÌ´Ù. À̰ÍÀº µå¶óÀ̹ö°¡ NdisInitializeNPagedLookasideListÇÔ¼ö¸¦ È£ÃâÇÒ¶§ ÁöÁ¤µÈ »çÀÌÁîÀÌ´Ù. ·è¾î»çÀÌµå ¸®½ºÆ®´Â ºó¹øÇÑ I/O¿¬»êµé¿¡´ëÇÑ ·±Å¸ÀÓ »óŸ¦ À¯ÁöÇϱâÀ§ÇÑ °íÁ¤µÈ ÄÁÅØ½ºÆ® ¿µ¿ªµéÀ» µ¿ÀûÀ¸·Î ÇÒ´çÇϰí ÇØÁ¦Çؾ߸¸ ÇÏ´Â µå¶óÀ̹öµé¿¡°Ô ƯÈ÷ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. ¿¹¸¦µé¾î, ¿¬°áÁöÇâ NDISµå¶óÀ̹öµéÀº ·è¾î»çÀÌµå ¸®½ºÆ®µéÀ» ƯÈ÷ ãÀ»Áö ¸ð¸¥´Ù. ¿Ö³ÄÇÏ¸é ±×·± µå¶óÀ̹öµéÀº ÀϹÝÀûÀ¸·Î ³ª°¡°Å³ª µé¾î¿À´Â È£Ãâµé¿¡´ëÇÑ µ¿Àû ÄÁÅØ½ºÆ® ¿µ¿ªÀÇ ¼³Á¤À» À¯ÁöÇϱ⶧¹®ÀÌ´Ù.

NdisAllocate/Free..LookasideListÇÔ¼ö°¡ ¿£Æ®¸®µéÀÇ ÇÒ´ç°ú ÇÒ´çÇØÁ¦¸¦ ´Ù·çµµ·Ï Çϴ°ÍÀÌ ´õ¿í È¿°úÀûÀÌ´Ù. ±×·¯³ª, ¸Þ¸ð¸® »ç¿ë¿¡´ëÇØ ³»ºÎÀûÀ¸·Î »óŸ¦ ÃßÀûÇÏ´Â µå¶óÀ̹ö´Â Allocate°ú FreeÇÔ¼ö¸¦ NdisInitializeNPagedLookasideList¿¡°Ô Á¦°øÇÒÁö ¸ð¸¥´Ù.

NdisInitializeNPagedLookasideListÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼­ µ¿ÀÛÇØ¾ß¸¸ÇÏÁö¸¸, PASSIVE_LEVEL¿¡¼­ µ¿ÀÛÇØ¾ß¸¸ ÇÑ´Ù.