NdisMFreeSharedMemory
VOID
NdisMFreeSharedMemory(
IN NDIS_HANDLE MiniportAdapterHandle,
IN ULONG Length,
IN BOOLEAN Cached,
IN PVOID VirtualAddress,
IN NDIS_PHYSICAL_ADDRESS PhysicalAddress
);
|
NdisMFreeSharedMemory´Â Àü¿¡ ¹ö½º¸¶½ºÅÍ DMA NICÀÇ µå¶óÀ̹ö¿¡ ÀÇÇØ NdisMAllocateSharedMemory ȤÀº NdisMAllocateSharedMemoryAsync¿¡ ÀÇÇØ Àü¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù.
¸Å°³º¯¼ö
- MiniportAdapterHandle
- ¿ø·¡ MiniportInitialize¿¡ ´ëÇÑ ÀÔ·ÂÀÎ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- Length
- ¿ø·¡ ÇÒ´çµÈ ¹ÙÀÌÆ® ¼öµéÀ» ÁöÁ¤ÇÑ´Ù.
- Cached
- ¸¸¾à ¿ø·¡ ÇÒ´çÀÌ Ä³½¬°¡ µÉ ¼ö ÀÖ´Ù¸éÀº TRUE¸¦ ÁöÁ¤ÇÑ´Ù.
- VirtualAddress
- NdisMAllocateSharedMemory(Async)¿¡ ÀÇÇØ ¸®ÅÏµÈ º£À̽º °¡»ó ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.
- PhysicalAddress
- NdisMAllcoateSharedMemory(Async)¿¡ ÀÇÇØ ¸®ÅÏµÈ ÀÀ´äÇÏ´Â ½ÇÁ¦ ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.
ÁÖ¼®
¸¸¾à ÀÌ¹Ì NdisMAllcoateSharedMemory ȤÀº NdisMAllocateSharedMemoryAsync¿¡ ´ëÇÑ ¼º°øÀûÀΠȣÃâÀ» ¸¸µç´Ù¸éÀº, ¹ö½º¸¶½ºÅÍ DMA ÀåÄ¡¿¡ ´ëÇÑ NIC µå¶óÀ̹ö´Â ¸¸¾à ´ÙÀ½°ú °°Àº ¾î¶² °æ¿ì°¡ ÀϾٸéÀº NdisMFreeSharedMemory¸¦ È£ÃâÇÑ´Ù.
- MiniportInitialize ÇÔ¼ö´Â NICÀ» ÃʱâÈÇÒ ¼ö ¾ø°í, ±×·¡¼ ÀÌ ÇÔ¼ö´Â Á¦¾î¸¦ ¸®ÅÏÇϱâ Àü¿¡ ±×·¯ÇÑ NICÀ» À§ÇØ Çϵå¿þ¾î ÀÚ¿øµé¿¡ ´ëÇÑ ¸ðµç Á¸ÀçÇÏ´Â ¿ä±¸µéÀ» ÇØÁ¦ÇØ¾ß ÇÑ´Ù.
- ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ ¹Ì´ÏÆ÷Æ®°¡ Á¦°ÅµÇ¾úÀ» ¶§ NIC
- µå¶óÀ̹ö°¡ ½Ã½ºÅÛÀÌ ¼Ë´Ù¿î µÇ°Å³ª ȤÀº ³×Æ®¿öÅ© ¿ä¼ÒµéÀ» À籸¼ºÇÑ »ç¿ëÀÚ°¡ ±â°è¿¡¼ »ç¿ëµÇ¾ú±â ¶§¹®¿¡ ¾ð·ÎµåµÈ´Ù.
- µå¶óÀ̹ö°¡ NIC¿¡ ´ëÇÑ I/O ¿ä±¸°¡ ¸¹Áö¸¸Àº ³×Æ®¿öÅ© Æ®·¡ÇÈÀÌ Áö±Ý Æò±Õ ·¹º§º¸´Ù ³·À» ¶§ NdisMAllocateSharedMemoryAsync·Î Ãß°¡ÀûÀÎ °øÀ¯ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ´Ù.
¹Ì´ÏÆ÷Æ®´Â ÇÒ´çµÈ °øÀ¯ ¸Þ¸ð¸® ¹üÀ§³»¿¡¼ ºÎºÐ¹üÀ§¸¦ ÇØÁ¦Çϱâ À§ÇØ NdisMFreeSharedMemory¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù. NdisMFreeSharedMemory¿¡ Àü´ÞµÇ´Â ¸Å°³º¯¼öµéÀº Á¤È®ÇÏ°Ô NdisMAllocateSharedMemory ȤÀº NdisMAllocateSharedMemoryAsync¿¡ Àü´ÞµÇ¾îÁö´Â °Íµé°ú Á¤È®ÇÏ°Ô ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.
NdisMFreeSharedMemory ÇÔ¼ö´Â MiniportShutdown ÇÔ¼ö·ÎºÎÅÍ È£ÃâµÇ¾îÁú ¼ö ¾ø´Ù.
NdisMFreeSharedMemoryÀÇ È£ÃâÀÚµéÀº MiniportHaltÀÇ ÄÁÅØ½ºÆ®³»¿¡¼ ÀÌ °æ¿ì¿¡´Â ÀÌ ÇÔ¼öÀÇ È£ÃâÀÚµéÀº IRQL PASSIVE_LEVEL¿¡¼ ½ÇÇàÇØ¾ß ÇÑ´Ù. ¸¦ Á¦¿ÜÇØ¼ IRQL <= DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|