TdiCopyBufferToMdl

NTSTATUS
   TdiCopyBufferToMdl (
       IN PVOID SourceBuffer,
       IN ULONG SourceOffset,
       IN ULONG SourceBytesToCopy,
       IN PMDL DestinationMdlChain,
       IN ULONG DestinationOffset,
       IN PULONG BytesCopied
  
   );

TdiCopyBufferToMdl ÇÔ¼ö´Â ¹öÆÛ ¹üÀ§¿¡ ÀÖ´Â µ¥ÀÌŸ¸¦ ÁÖ¾îÁø MDL üÀο¡ ÀÇÇØ¼­ ¸ÊµÈ ÇϳªÀÌ»óÀÇ ¸ñÀûÁö ¹öÆÛ¾ÈÀ¸·Î º¹»çÇÑ´Ù.

¸Å°³º¯¼ö

SourceBuffer
º¹»çµÇ´Â µ¥ÀÌŸ¸¦ Æ÷ÇÔÇÏ´Â ¼Ò½º ¹öÆÛÀÇ ±âº» °¡»ó ÁÖ¼Ò¸¦ ¼­¼úÇÑ´Ù.

SourceOffset
º¹»ç¸¦ ½ÃÀÛÇÏ´Â ¼Ò½º ¹öÆÛ¾È¿¡ ¹ÙÀÌÆ® ¿É¼ÂÀ» ¼­¼úÇÑ´Ù.

SourceBytesToCopy
ÁÖ¾îÁø MDL¿¡ ÀÇÇØ¼­ ¸ÊµÈ ¹öÆÛ¿¡ SourceBuffer·ÎºÎÅÍ º¹»çµÇ´Â ¹ÙÀÌÆ® ¼ö¸¦ ¼­¼úÇÑ´Ù.

DestinationMdlChain
µ¥ÀÌŸ°¡ º¹»çµÉ ¸ñÀûÁö ¹öÆÛ¸¦ ¸ÊÇÏ´Â ¿¬°áµÈ üÀÎÀÇ MDL¾È¿¡ óÀ½ MDLÀ» °¡¸®Å²´Ù.

DestinationOffset
º¹»ç°¡ ½ÃÀ۵Ǵ ¸ñÀûÁö ¹öÆÛ¾È¿¡ ¹ÙÀÌÆ® ¿É¼ÂÀ» ¼­¼úÇÑ´Ù. È¿°úÀûÀ¸·Î À̰ÍÀº º¹»ç¿¬»êÀ» ½ÃÀÛÇϱâ Àü¿¡ °Ç³Ê¶Ù´Â ÁÖ¾îÁø MDL¿¡ ÀÇÇØ¼­ ¸ÊµÈ ¹ÙÀÌÆ®ÀÇ ¼öÀÌ´Ù.

BytesCopied
TdiCopyBufferToMdl ÇÔ¼ö°¡ ¼Ò½º¿¡¼­ ¸ñÀûÁö ¹öÆÛ·Î º¹»çµÈ ¹ÙÀÌÆ® ¼ö¸¦ ¸®ÅÏÇϴ ȣÃâÀÚ Á¦°ø º¯¼ö¸¦ °¡¸®Å²´Ù.

¸®Åϰª

TdiCopyBufferToMdl ÇÔ¼ö°¡ ¸ÊµÈ ¸ñÀûÁö ¹öÆÛ·Î SourceBytesToCopy¸¦ º¹»çÇß´Ù¸é STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù. ¹Ý¸é¿¡ SourceBytesToCopy°¡ ³Ê¹« Ä¿¼­ ÁÖ¾îÁø DestinationOffset¿¡¼­ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ¸ñÀûÁö ¹öÆÛ¾ÈÀ¸·Î º¹»çÇÒ ¼ö ¾ø´Ù¸é STATUS_BUFFER_OVERFLOW¸¦ ¸®ÅÏÇÑ´Ù.

ÁÖ¼®

TdiCopyBufferToMdl ÇÔ¼ö´Â STATUS_BUFFER_OVERFLOW¸¦ ¸®ÅÏÇÑ´Ù ÇÒÁö¶óµµ ¼Ò½º ¹öÆÛ¿¡¼­ ¸ñÀûÁö ¹öÆÛ·Î °¡´ÉÇÑ ÇÑ ¸¹Àº ¹öÆÛ¸¦ º¹»çÇÒ ¼ö ÀÖ´Ù. ´ëºÎºÐ BytesCopiedÀÇ ¸®ÅϰªÀº ÁÖ¾îÁø SourceBytesToCopy¿Í °°´Ù.

Æ®·£½ºÆ÷Æ®¿Í ±×µéÀÇ Ä¿³Î ¸ðµå Ŭ¶óÀÌ¾ðÆ® ¸ðµÎ TdiCopyBufferToMdl ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.

¼Ò½º¿Í ¸ñÀûÁö ¹öÆÛ°¡ Á¸ÀçÇÑ´Ù¸é TdiCopyBufferToMdl ÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù. ±×Áß Çϳª°¡ ÆäÀÌÀúºíÀ̶ó¸é È£ÃâÀÚ´Â IRQL < DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.