NdisAdjustBufferLength
VOID
NdisAdjustBufferLength(
IN PNDIS_BUFFER Buffer,
IN UINT Length
);
|
NdisAdjustBufferLength ÇÔ¼ö´Â È£ÃâÀÚ¿¡ ÀÇÇØ¼ ÇÒ´çµÇ°Å³ª º¹»çµÈ ¹öÆÛ ¼¼úÀÚÀÇ ±æÀ̸¦ ¹Ù²Û´Ù.
¸Å°³º¯¼ö
- Buffer
- ÀÌÀü¿¡ NdisAllocateBuffer³ª NdisCopyBuffer¿¡ ÀÇÇØ¼ ÇÒ´çµÈ ¹öÆÛ ¼¼úÀÚ¸¦ °¡¸®Å²´Ù.
- Length
- ¹öÆÛ ¼¼úÀÚ¿¡ ¼³Á¤µÉ »õ·Î¿î ±æÀ̸¦ °¡¸®Å²´Ù.
ÁÖ¼®
NdisAdjustBufferLengthÀÇ È£ÃâÀڴ ȣÃâÀÚ¿¡ ÀÇÇØ¼ ÇÒ´çµÈ ¹öÆÛ ¼¼úÀÚ¿¡°Ô¸¸ ÀüÇØÁÙ ¼ö ÀÖ´Ù. ´Ù¸¥ µå¶óÀ̹ö¿¡ ÀÇÇØ¼ ÇÒ´çµÈ ¹öÆÛ ¼¼úÀÚ¿¡°Ô´Â ÀüÇØÁÙ ¼ö ¾ø´Ù.
¿¹¸¦ µé¾î, ¹ö½º¸¶½ºÅÍ DMA NIC µå¶óÀ̹ö´Â ±×°ÍÀÇ °øÀ¯ ¸Þ¸ð¸® ºí·°¾È¿¡¼ ¸®½Ãºê ¹öÆÛ¿¡ ÇÒ´çµÈ ¹öÆÛ ¼¼úÀÚ¸¦ °¡Áø ÀÌ ÇÔ¼ö¸¦ ¼¼úÇÑ´Ù. ±×·¯ÇÑ µå¶óÀ̹ö°¡ ¹ÞÀº µ¥ÀÌŸ¸¦ ÀεðÄÉÀÌÆ®Çϱâ Àü¿¡ ¹öÆÛ ¼¼úÀÚ¸¦ ¸¸µé±â À§ÇØ NdisAdjustBufferLength¸¦ È£ÃâÇÑ´Ù. ±× ¹öÆÛ ¼¼úÀÚ´Â NICÀÇ ¸®½Ãºê ¹öÆÛÀÇ »çÀÌÁ´Ù ÀÛ´Ù¸é ¹ÞÀº µ¥ÀÌŸÀÇ »çÀÌÁî¿Í ´ëµîÇÑ ¸®½Ãºê ÀεðÄÉÀ̼ÇÀ» Æ÷ÇÔÇÒ °ÍÀÌ´Ù. ÀÌó·³ Á¶ÀýµÈ ¹öÆÛ ¼¼úÀÚ¸¦ °®´Â ¸®½Ãºê ÆÐŶÀÌ ¼Ò¸ðµÇ¾î ¹Ì´ÏÆ÷Æ®·Î ¸®ÅωçÀ» ¶§, µå¶óÀ̹ö´Â ¸®½Ãºê ¹öÆÛÀÇ ½ÇÁ¦ »çÀÌÁî¿¡ ´ëµîÇÑ ¹öÆÛ ¼¼úÀÚ¸¦ ¸¸µé±â À§ÇØ NdisAdjustBufferLength¸¦ ´Ù½Ã È£ÃâÇÑ´Ù.
¹öÆÛ ¼¼úÀÚ°¡ ÇÒ´ç‰çÀ» ¶§ NdisAdjustBufferLength·Î ÀüÇØÁø ±æÀÌ´Â NdisAllocateBuffer³ª NdisCopyBuffer·Î ÀüÇØÁø ±æÀ̺¸´Ù ´õ Ä¿Áú ¼ö ¾ø´Ù. NdisAdjustBufferLengthÀÇ È£ÃâÀÚ´Â NdisFreeBufferÀÇ ½ÇÇàÀ¸·Î ¹öÆÛ ¼¼úÀÚ°¡ ÇØÁ¦µÇ±â Àü¿¡ ¿ø·¡ÀÇ ±æÀÌ·Î µÇµ¹·Á³ö¾ßÇÑ´Ù.
µå¶óÀ̹ö´Â NdisAdjustBufferLength¸¦ È£ÃâÇϱâ Àü¿¡ ÇöÀç Àâ°í ÀÖ´Â ¾î¶² ½ºÇɶôÀ» ÇØÁ¦Çؾ߸¸ÇÑ´Ù.
NdisAdjustBufferLengthÀÇ È£ÃâÀÚ´Â ¾î¶² IRQL¿¡¼µµ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ º¸Åë IRQL <= DISPATCH_LEVEL ¿¡¼ ½ÇÇàÇÑ´Ù.
|