NdisMSetAttributes

VOID 

  NdisMSetAttributes(

    IN NDIS_HANDLE  MiniportAdapterHandle,

    IN NDIS_HANDLE  MiniportAdapterContext,

    IN BOOLEAN  BusMaster,

    IN NDIS_INTERFACE_TYPE  AdapterType

    );

NdisMSetAttributes ÇÔ¼ö´Â ÃʱâÈ­ µ¿¾È¿¡ È£ÃâÀÚ NICÀÇ Áß¿äÇÑ Æ¯Â¡¿¡ ´ëÇØ¼­ NDIS ¶óÀ̺귯¸®¿¡°Ô ¾Ë¸°´Ù.

¸Å°³º¯¼ö

MiniportAdapterHandle
MiniportInitialize ÇÔ¼ö·Î ÀԷµǴ ÇÚµéÀ» ¼­¼úÇÑ´Ù.

MiniportAdapterContext
MiniportInitialize ÇÔ¼ö¿¡ ÀÇÇØ¼­ ÇÒ´çµÈ Á¸ÀçÇÏ´Â ÄÁÅØ½ºÆ® Áö¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ¼­¼úÇÑ´Ù.

BusMaster
È£ÃâÀÚÀÇ NICÀÌ ¹ö½º¸¶½ºÅÍ DMA ÀåÄ¡¶ó¸é TRUE¸¦ ¼­¼úÇÑ´Ù.

AdapterType
NICÀÌ ¿¬°áµÆÀ» ¶§ ´ÙÀ½°ú °°Àº I/O ¹ö½º ŸÀÔÀÇ È£ÃâÀÚ NICÀÇ I/O ¹ö½º ÀÎÅÍÆäÀ̽º ŸÀÔÀ» ¼­¼úÇÑ´Ù:

NdisInterfaceInternal
È£½ºÆ® ƯÁ¤ ³»ºÎ ÀÎÅÍÆäÀ̽º¸¦ ¼­¼úÇÑ´Ù.

NdisInterfaceIsa
ISA ÀÎÅÍÆäÀ̽º¸¦ ¼­¼úÇÑ´Ù.

NdisInterfaceEisa
È®ÀåµÈ ISA (EISA) ÀÎÅÍÆäÀ̽º¸¦ ¼­¼úÇÑ´Ù.

NdisInterfaceMca
À̰ÍÀº ´õÀÌ»ó Áö¿øµÇÁö ¾Ê´Â MCA ¹ö½º¸¦ ¾ð±ÞÇÑ´Ù.

NdisInterfaceTurboChannel
Åͺ¸ ä³Î ÀÎÅÍÆäÀ̽º¸¦ ¼­¼úÇÑ´Ù.

NdisInterfacePci
PCI ÀÎÅÍÆäÀ̽º¸¦ ¼­¼úÇÑ´Ù.

NdisInterfacePcMcia
ÆÛ½º³Î ÄÄÇ»ÅÍ ¸Þ¸ð¸® Ä«µå ÀÎÅͳ»¼Ç³Î Çùȸ(PC Card) ÀÎÅÍÆäÀ̽º¸¦ ¼­¼úÇÑ´Ù.

ÁÖ¼®

MiniportInitialize ÇÔ¼ö´Â NdisMSetAttributes(Ex) ÇÔ¼ö·Î Á¦°øµÇ´Â Á¤º¸¿¡ ÀÇÁ¸ÇÏ´Â NdisMRegisterXxx³ª NdisXxx ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ NdisMSetAttributes³ª NdisMSetAttributesEx ÇÔ¼ö¸¦ È£ÃâÇØ¾ßÇÑ´Ù. ¿¹¸¦µé¾î MiniportInitialize ÇÔ¼ö°¡ BusMaster°¡ TRUE·Î ¼³Á¤µÈ NdisMSetAttributes ÇÔ¼ö¸¦ ¾ÆÁ÷ È£ÃâÇÏÁö ¾Ê¾Ò°Å³ª AttributeFlags°¡ NDIS_ATTRIBUTE_BUS_MASTER·Î ¼³Á¤µÈ NdisMSetAttributesEx ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê¾Ò´Ù¸é NdisMAllocateMapRegisters ÇÔ¼öÀÇ È£ÃâÀº ½ÇÆÐÇÒ °ÍÀÌ´Ù.

ÀϹÝÀûÀ¸·Î NIC µå¶óÀ̹ö´Â NICÀ» À§Çؼ­ ·¹Áö½ºÆ®¸®¾È¿¡ Çϵå¿þ¾î ÀÚ¿øÀ» ¿ä±¸ÇÏ´Â ¾î¶² NdisXxx ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ NdisMSetAttributes(Ex) ÇÔ¼ö¸¦ È£ÃâÇØ¾ßÇÑ´Ù. ¿Ö³ªÇϸé NDIS´Â ±×·¯ÇÑ È£ÃâÀÌ ÀϾ±â Àü¿¡ BusMaster³ª AttributeFlags °ªÀ» °¡Áö°í ÀÖ¾î¾ßÇϱ⠶§¹®ÀÌ´Ù. ±×¸®°í µå¶óÀ̹ö´Â ÀÌ È£Ãâ¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â MiniportAdapterContext¿¡ ¸Þ¸ð¸®¸¦ ÇÊ¿ä·ÎÇϱ⠶§¹®ÀÌ´Ù. ÀÌ·¯ÇÑ Á¦ÇÑÀº NIC µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö°¡ NdisMSetAttributes(Ex) ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ´ÙÀ½ÀÇ NdisXxx ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ¾øÀ½À» ¾Ï½ÃÇÑ´Ù:

  • NdisMPciAssignResources
  • NdisMAllocateMapRegisters¿Í NdisMAllocateSharedMemory
  • NdisMMapIoSpace¿Í ±×¿¡ µû¸¥ Ndis..RegisterXxx ÇÔ¼öµé
  • NdisMRegisterDmaChannel
  • NdisMRegisterInterrupt
  • NdisMRegisterIoPortRange¿Í ±×¿¡ µû¸¥ NdisRaw..PortXxx ÇÔ¼öµé
±×·¯³ª NdisMSetAttributes(Ex) ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ NIC µå¶óÀ̹ö´Â ·¹Áö½ºÆ®¸®¾È¿¡ ±×¸®°í NdisImmediate..PortXxx ÇÔ¼ö¿Í ¸¶Âù°¡Áö·Î NdisImmediateReadPciSlotInformation ȤÀº NdisImmediateReadSharedMemory ÇÔ¼ö°°Àº NdisImmediateXxx ÇÔ¼ö¿¡ ¼³Ä¡µÈ ±¸¼º Á¤º¸¸¦ ¾ò±â À§Çؼ­ Ndis..Configuration ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ MiniportInitialize ÇÔ¼ö´Â µå¶óÀ̹öÀÇ ÀÎÅÍÆäÀ̽º ŸÀÔÀ» À§Çؼ­ ¼³Ä¡µÈ ·¹Áö½ºÆ®¸® ¿£Æ®¸®°¡ MiniportInitialize ÇÔ¼ö°¡ È£ÃâÇÏ´Â ¹ö½º ŸÀÔ Æ¯Á¤ NdisReadXxx ÇÔ¼ö¿Í ÀûÀýÇÏ°Ô ¾î¿ï¸®´Â ÇÑ NdisReadPciSlotInformation ÇÔ¼öó·³ ¹ö½º ŸÀÔ Æ¯Á¤ NdisReadXxx ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.

NdisMSetAttributes(Ex) ÇÔ¼ö¿¡¼­ Á¦°øµÈ MiniportAdapterContext ÇÚµéÀº NdisMRegisterMiniport ÇÔ¼öÀÇ È£Ãâ¿¡¼­ µî·ÏµÈ MiniportInitialize ÇÔ¼ö¸¦ µû¸£´Â ¸ðµç MiniportXxx ÇÔ¼öÀÇ ÀÔ·Â ¸Å°³º¯¼ö°¡ µÈ´Ù. º¸Åë ÀÌ ÇÚµéÀº MiniportInitialize ÇÔ¼ö¿¡ ÀÇÇØ¼­ ÇÒ´çµÈ NIC ƯÁ¤ ·±Å¸ÀÓ »óŸ¦ À¯ÁöÇÏ´Â µå¶óÀ̹ö¾È¿¡ Á¸ÀçÇÏ´Â ¸Þ¸ð¸®¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ´Ù.

ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â NdisMSetAttributes ÇÔ¼öº¸´Ù´Â NdisMSetAttributesEx ÇÔ¼ö¸¦ È£ÃâÇØ¾ßÇÑ´Ù. NIC µå¶óÀ̹ö´Â ÀÌ ÇÔ¼öÁß Çϳª¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ NdisMSetAttributesEx ÇÔ¼ö´Â ¹Ì´ÏÆ÷Æ®·Î ÇÏ¿©±Ý MiniportCheckForHangÀ̳ª MiniportReset ÇÔ¼ö°¡ È£ÃâµÉ ¶§·Î °£°ÝÀ» Àû¿ëÇÏ°Ô ÇÑ´Ù.

NdisMSetAttributes ÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL PASSIVE_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.