NdisFlushBuffer
VOID
NdisFlushBuffer(
IN PNDIS_BUFFER Buffer,
IN BOOLEAN WriteToDevice
);
|
NdisFlushBuffer´Â ¸ðµç ÇÁ·Î¼¼¼ ij½¬µé·ÎºÎÅÍ ÁÖ¾îÁø ¹öÆÛ µð½ºÅ©¸³ÅÍ¿¡ ÀÇÇØ ¼³¸íµÈ ¸Þ¸ð¸® ¿µ¿ªÀ» Ç÷¯½¬ÇÑ´Ù.
¸Å°³º¯¼ö
- Buffer
- µ¥ÀÌÅͰ¡ ¹ö½º¸¶½ºÅÍ DMA ¿¬»êÀ¸·Î Àü¼ÛµÇ¾îÁö´Â °ÍÀ¸·Î ȤÀº °ÍÀ¸·ÎºÎÅÍ ¹öÆÛ¸¦ ¸ÊÇÎÇÏ´Â ¹öÆÛ µð½ºÅ©¸³¼ÇÀ» °¡¸®Å²´Ù.
- WriteToDevice
- NIC µå¶óÀ̹ö´Â È£½ºÆ® ¸Þ¸ð¸®·ÎºÎÅÍ NIC¿¡°Ô Àü¼ÛÇϱâ Àü¿¡ ¹öÆÛ¸¦ Ç÷¯½¬Çϱâ À§ÇØ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù¸éÀº TRUE¸¦ ¼³Á¤ÇÑ´Ù.
¸¸¾à NIC µå¶óÀ̹ö°¡ FALSE¸¦ ÁöÁ¤ÇÑ´Ù¸éÀº, ij½¬¶óÀÎ °æ°è¿¡¼ ¹öÆÛ°¡ ½ÃÀÛÇÏ°í ³¡³ª´Â °ÍÀ» È®½ÇÈ÷ ÇØ¾ß ÇÑ´Ù.
ÁÖ¼®
¹ö½º¸¶½ºÅÍ DMA NICµéÀÇ µå¶óÀ̹öµéÀº °øÀ¯ ¸Þ¸ð¸®³»¿¡ µ¥ÀÌÅÍ ¹«°á¼ºÀ» À¯ÁöÇϱâ À§ÇØ NdisFlushBuffer¸¦ È£ÃâÇÑ´Ù. ¹öÆÛ¸¦ FlushingÇÏ´Â °ÍÀº ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º Ä«µå·ÎºÎÅÍ È¤Àº Ä«µå¿¡ DMA Àü¼ÛÀ» ÇϱâÀü¿¡ È£½ºÆ® ¸Þ¸ð¸® ij½¬¿Í ÇÁ·Î¼¼¼ ½ÇÁ¦ ¸Þ¸ð¸® »çÀÌ¿¡ coherency¸¦ È®½ÇÈ÷ ÇÑ´Ù.
µå¶óÀ̹ö´Â NIC°ú °øÀ¯µÇ´Â µ¥ÀÌÅͰ¡ ij½¬ÈµÉ ¶§ ±×·¯ÇÑ ¹öÆÛ´Â Ç÷¯½¬ÇÑ´Ù. È£½ºÆ® ¸Þ¸ð¸®¿Í ¹ö½º¸¶½ºÅÍ DMA NIC »çÀÌ¿¡ ¾î¶² Àü¼ÛÀ» À§ÇØ, ¹Ì´ÏÆ÷Æ®´Â Àü¼ÛÀ» ½ÃÀÛÇϱâ Àü¿¡ ¹öÆÛ¸¦ Ç÷¯½¬ÇØ¾ß ÇÑ´Ù. ±×·¯ÇÑ µå¶óÀ̹ö´Â ¶ÇÇÑ È£½ºÆ® ¸Þ¸ð¸®°¡ Àü¼ÛÀÌ ¿Ï·áµÉ ¶§±îÁö Á¢±ÙÇÏÁö ¾Ê´Â °ÍÀ» È®½ÇÈ÷ ÇØ¾ß ÇÑ´Ù.
NdisFlushBufferÀÇ È£ÃâÀÚµéÀº IRQL <= DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|