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 ¿¡¼­ ½ÇÇàÇÑ´Ù.