NdisMRegisterDmaChannel
NDIS_STATUS
NdisMRegisterDmaChannel(
OUT PNDIS_HANDLE MiniportDmaHandle,
IN NDIS_HANDLE MiniportAdapterHandle,
IN UINT DmaChannel,
IN BOOLEAN Dma32BitAddresses,
IN PNDIS_DMA_DESCRIPTION DmaDescription,
IN ULONG MaximumLength
);
|
NdisMRegisterDmaChannel ÇÔ¼ö´Â ½½·¹À̺ê NIC ȤÀº ISA ¹ö½º¸¶½ºÅÍ NIC¿¡¼ DMA ¿¬»êÀ» À§Çؼ Ãʱâȵ¿¾È¿¡ ½Ã½ºÅÛ DMA ÄÁÆ®·Ñ·¯ ä³ÎÀ» ¿ä±¸ÇÑ´Ù.
¸Å°³º¯¼ö
- MiniportDmaHandle
- NdisMXxx ½Ã½ºÅÛ DMA ÇÔ¼öÀÇ ¼øÂ÷ÀûÀΠȣÃâ¿¡¼ ¹Ì´ÏÆ÷Æ®°¡ »ç¿ëÇÑ ÇÚµéÀ» ¸®ÅÏÇÏ´Â ÀÌ ÇÔ¼öÀÇ È£ÃâÀÚ Á¦°ø º¯¼ö¸¦ °¡¸®Å²´Ù.
- MiniportAdapterHandle
- MiniportInitialize ÇÔ¼ö·Î ÀԷµǴ ÇÚµéÀ» ¼¼úÇÑ´Ù.
- DmaChannel
- ¹«½ÃµÈ´Ù. ÀÖ´Ù¸é DmaDescription¿¡ DMA ä³ÎÀ» ¼³Á¤Çضó.
- Dma32BitAddresses
- NICÀÌ 32 ÁÖ¼Ò ¶óÀÎÀ̶ó¸é TRUE¸¦ ¼¼úÇÑ´Ù.
- DmaDescription
- È£ÃâÀÚ¿¡ ÀÇÇØ¼ ä¿öÁø NDIS_DMA_DESCRIPTION ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù. ÀÌ ±¸Á¶Ã¼´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵȴÙ:
typedef struct _NDIS_DMA_DESCRIPTION {
BOOLEAN DemandMode;
BOOLEAN AutoInitialize;
BOOLEAN DmaChannelSpecified;
DMA_WIDTH DmaWidth;
DMA_SPEED DmaSpeed;
ULONG DmaPort;
ULONG DmaChannel;
} NDIS_DMA_DESCRIPTION, *PNDIS_DMA_DESCRIPTION;
µå¶óÀ̹ö´Â ´ÙÀ½ÀÇ ¸â¹ö¸¦ ä¿ì±â Àü¿¡ 0À¸·Î ÀÌ ±¸Á¶Ã¼¸¦ ÃʱâÈÇØ¾ßÇÑ´Ù:
- DemandMode
- ½½·¹À̺ê NICÀÌ ½Ã½ºÅÛ DMA ÄÁÆ®·Ñ·¯ÀÇ ¿ä±¸ ¸ðµå¸¦ »ç¿ëÇÑ´Ù¸é TRUE¸¦ ¼¼úÇÑ´Ù.
- AutoInitialize
- ½½·¹À̺ê NICÀÌ ½Ã½ºÅÛ DMA ÄÁÆ®·Ñ·¯ÀÇ ÀÚµ¿ÃʱâÈ ¸ðµå¸¦ »ç¿ëÇÑ´Ù¸é TRUE¸¦ ¼¼úÇÑ´Ù.
- DmaChannelSpecified
- DmaChannelÀÌ NIC¿¡ ÀÇÇØ¼ »ç¿ëµÈ ½Ã½ºÅÛ DMA ÄÁÆ®·Ñ·¯ ä³ÎÀÇ ¹ö½º °ü·Ã °ªÀ¸·Î ¼³Á¤µÆ´Ù¸é TRUE¸¦ ¼¼úÇÑ´Ù.
- DmaWidth
- DMA ¿¬»ê¿¡ ´ëÇÑ Àü¼Û ³ÐÀ̸¦ ¼¼úÇÑ´Ù. Width8Bits, Width16Bits, ȤÀº Width32Bits Áß¿¡ ÇϳªÀÌ´Ù.
- DmaSpeed
- Compatible, TypeA, TypeB, ȤÀº TypeC Áß¿¡ Çϳª¸¦ ¼¼úÇÑ´Ù.
- DmaPort
- ´õÀÌ»ó Áö¿øµÇÁö ¾Ê´Â MCA ¹ö½º¸¦ ¾ð±ÞÇÑ´Ù. ÀÌ ¸â¹ö´Â 0À̾î¾ßÇÑ´Ù.
- DmaChannel
- NIC¿¡ ÀÇÇØ¼ »ç¿ëµÈ ½Ã½ºÅÛ DMA ÄÁÆ®·Ñ·¯ ä³ÎÀÇ ¹ö½º °ü·Ã ¼ö¸¦ ¼¼úÇÑ´Ù.
- MaximumLength
- NICÀÌ ÇϳªÀÇ DMA ¿¬»ê¿¡¼ Àü¼ÛÇÒ ¼ö ÀÖ´Â ÃÖ´ëÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ¼¼úÇÑ´Ù. NICÀÌ ¹«Á¦ÇÑÀÇ Àü¼Û ´É·ÂÀ» °¡Áø´Ù¸é ÀÌ ¸Å°³º¯¼ö¸¦ -1·Î ¼³Á¤Çضó.
¸®Åϰª
NdisMRegisterDmaChannel ÇÔ¼ö´Â ´ÙÀ½ »óŰª Áß¿¡ Çϳª¸¦ ¸®ÅÏÇÑ´Ù:
- NDIS_STATUS_SUCCESS
- NDIS´Â È£ÃâÀÚÀÇ NICÀ» À§Çؼ ·¹Áö½ºÆ®¸®¿¡¼ ¸í½ÃµÈ DMA ä³ÎÀ» ¿ä±¸ÇÏ°í ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇÑ ¼øÂ÷ÀûÀÎ DMA ¿¬»êÀ» À§Çؼ ÇÊ¿äÇÑ ÀÚ¿øÀ» ¼³Á¤ÇÑ´Ù.
- NDIS_STATUS_RESOURCE_CONFLICT
- ´Ù¸¥ µå¶óÀ̹ö°¡ ÀåÄ¡¿¡ ´ëÇØ¼ ±× ä³ÎÀ» ÀÌ¹Ì ¿ä±¸Ç߱⠶§¹®¿¡ ·¹Áö½ºÆ®¸®¿¡¼ DMA ä³ÎÀ» ¿ä±¸ÇÏ´Â ½Ãµµ°¡ ½ÇÆÐÇß´Ù. À̰ÍÀÌ ¹ß»ýÇÑ´Ù¸é NdisMRegisterDmaChannel ÇÔ¼ö´Â ¿¡·¯¸¦ ÀúÀåÇÑ´Ù.
- NDIS_STATUS_RESOURCES
- NDIS´Â ÀÌ NIC µå¶óÀ̹ö¿¡ ÀÇÇÑ DMA ¿¬»êÀ» Áö¿øÇÒ Çʿ䰡 ÀÖ´Â ½Ã½ºÅÛ ÀÚ¿øÀ» ÇÒ´çÇÏÁö ¾Ê¾Ò´Ù.
- NDIS_STATUS_FAILURE
- ¹ö½º ŸÀÔ È¤Àº ¹ö½º ³Ñ¹ö°¡ ¹üÀ§ ¹ÛÀ̰ųª µå¶óÀ̹ö°¡ ISA°¡ ¾Æ´Ñ ´Ù¸¥ I/O ¹ö½º »ó¿¡¼ NICÀ» ¹ö½º¸¶½ºÅÍ·Î ¼±¾ðÇß´Ù.
ÁÖ¼®
½½·¹À̺ê DMA NICÀÇ µå¶óÀ̹ö´Â ¼øÂ÷ÀûÀÎ DMA ¿¬»ê¿¡ ´ëÇÑ ½Ã½ºÅÛ ÀÚ¿øÀ» ¿¹¾àÇϱâ À§Çؼ MiniportInitialize ÇÔ¼ö·ÎºÎÅÍ NdisMRegisterDmaChannel ÇÔ¼ö¸¦ È£ÃâÇØ¾ßÇÑ´Ù.
¶ÇÇÑ ISA ¹ö½º¸¶½ºÅÍ NICÀÇ µå¶óÀ̹ö´Â ·¹Áö½ºÆ®¸®¿¡¼ NIC¿¡ ´ëÇÑ ½Ã½ºÅÛ DMA ÄÁÆ®·Ñ·¯¸¦ ¿ä±¸Çϱâ À§Çؼ MiniportInitialize ÇÔ¼ö·ÎºÎÅÍ NdisMRegisterDmaChannel ÇÔ¼ö¸¦ È£ÃâÇØ¾ßÇÑ´Ù.
MiniportInitialize ÇÔ¼ö´Â NdisMRegisterDmaChannel ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ NdisMSetAttributes³ª NdisMSetAttributesEx ÇÔ¼ö¸¦ È£ÃâÇØ¾ßÇÑ´Ù.
MiniportInitialize ÇÔ¼ö´Â ·¹Áö½ºÆ®¸®³ª ¹ö½º ŸÀÔ Æ¯Á¤ NdisXxx ±¸¼ºÇÔ¼ö¸¦ È£ÃâÇϹǷνá NdisMRegisterDmaChannel ÇÔ¼ö·Î Àü´ÞµÇ´Â ¹ö½º °ü·Ã °ªÀ» ¾ò´Â´Ù.
±×·¯ÇÑ µå¶óÀ̹ö°¡ ÀåÄ¡°¡ ÇÊ¿ä·ÎÇÏ´Â ½Ã½ºÅÛ DMA ÀÚ¿øÀ» ÇÒ´çÇÒ ¼ö ¾ø´Ù¸é MiniportInitialize ÇÔ¼ö´Â NICÀ» À§Çؼ ÀÌ¹Ì ÇÒ´çÇÑ ¸ðµç ÀÚ¿øÀ» ÇØÁ¦ÇؾßÇÑ´Ù. ±×·¯¸é ±× NIC¿¡ ´ëÇÑ ÃʱâÈ´Â ½ÇÆÐÇÑ´Ù.
NdisMRegisterDmaChannel ÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL PASSIVE_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|