NdisTransferData

VOID

  NdisTransferData(

    OUT PNDIS_STATUS  Status,

    IN NDIS_HANDLE  NdisBindingHandle,

    IN NDIS_HANDLE  MacReceiveContext,

    IN UINT  ByteOffset,

    IN UINT  BytesToTransfer,

    IN OUT PNDIS_PACKET  Packet,

    OUT PUINT  BytesTransferred

    );

NdisTransferData´Â ¾Æ·§°èÃþÀÇ NIC¿¡¼­ ¹ÞÀº µ¥ÀÌÅ͸¦ Ä«ÇÇÇϱâ À§ÇÑ ¿ä±¸¸¦ ÇÁ·ÎÅäÄÝ Á¦°ø ÆÐŶ¿¡ º¸³½´Ù.

¸Å°³º¯¼ö

NdisBindingHandle
NdisOpenAdapter¿¡ ÀÇÇØ ¸®ÅÏµÈ Çڵ鰪

MacReceiveContext
¾Æ·¡ °èÃþ µå¶óÀ̹ö ÇÚµé

ByteOffset
Àü¼ÛÇϱ⠽ÃÀÛÇÒ °÷ÀÇ ¼ö½Å ³×Æ®¿÷ ÆÐŶÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍÀÇ ¿É¼Â

BytesToTransfer
Àü¼ÛÇϱâ À§ÇÑ ¹ÙÀÌÆ® ¼ö. ÀÌ °ªÀº 0ÀÌ µÉ ¼ö ÀÖ´Ù.

Packet
È£ÃâÀÚ¿¡ ÀÇÇØ Á¦°øµÇ´Â ÆÐŶ µð½ºÅ©¸³ÅÍ·Î ¾Æ·§ °èÃþÀÇ NIC°¡ µ¥ÀÌÅ͸¦ Ä«ÇÇÇÒ Àå¼ÒÀÌ´Ù.

BytesTransferred
È£ÃâÀÚ°¡ Á¦°øÇÒ º¯¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â ½ÇÁ¦ Àü¼ÛµÇ¾îÁö´Â ¹ÙÀÌÆ®¼ö¸¦ ¸®ÅÏÇÑ´Ù.

ÁÖ¼®

¸î¸î ÇÁ·ÎÅäÄݵéÀº ÇϳªÀÇ ¾Æ·§ °èÃþ NIC°ú ¹Ù¿îµåµÇ¾îÁú ¼ö ÀÖ´Ù. ±×¸®°í °¢ ±×·¯ÇÑ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀº °°Àº ÆÐŶÀ» À§ÇÑ Áö½Ã¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù. ±×·¯ÇÑ ÆÐŶÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿¡°Ô´Â Àбâ Àü¿ëÀÌ´Ù. °¢ ±×·¯ÇÑ µå¶óÀ̹öÀÇ ProtocolReceive ÇÔ¼ö´Â NdisTransferData ÇÔ¼ö·Î Áö½ÃµÈ ÆÐŶÀÇ º¹»ç¸¦ ÇÏ´À³Ä¸¦ °áÁ¤ÇÑ´Ù.

NdisTransferData¸¦ È£ÃâÇϱâ Àü¿¡, ÇÁ·ÎÅäÄÝÀº ÆÐŶ µð½ºÅ©¸³Å͸¦ ÇÒ´çÇØ¾ß Çϰí, ¾Æ·§ °èÃþ µå¶óÀ̹ö°¡ µ¥ÀÌÅ͸¦ Ä«ÇÇÇÏ´Â °÷¿¡ ÇÁ·ÎÅäÄÝ ÇÒ´ç ¹öÆÛµéÀ» ¸ÊÇÎÇÏ´Â ¸î°¡Áö ¹öÆÛ µð½ºÅ©¸³Å͵éÀ» ¿¬°á(chain)ÇØ¾ß ÇÑ´Ù. ÇÁ·ÎÅäÄÝÀº ¶ÇÇÑ NdisTransferData¸¦ È£ÃâÇϱâ Àü¿¡ ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ ProtocolReserced ºÎºÐÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù.

NdisTransferData È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.