NdisMRegisterMiniport

NDIS_STATUS 

  NdisMRegisterMiniport(

    IN NDIS_HANDLE  NdisWrapperHandle,

    IN PNDIS_MINIPORT_CHARACTERISTICS  MiniportCharacteristics,

    IN UINT  CharacteristicsLength

    );

NdisMRegisterMiniport´Â NIC µå¶óÀ̹ö ÃʱâÈ­ ´Ü°è¿¡¼­ ù¹ø¤Š ´Ü°è·Î¼­ NDIS ¶óÀ̺귯¸®¿¡°Ô ¹Ì´ÏÆ÷Æ®ÀÇ MiniportXxx ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇÑ´Ù.

¸Å°³º¯¼ö

NdisWrapperHandle
NdisMInitializeWrapper¿¡ ÀÇÇØ ¸®ÅÏµÈ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

MiniportCharacteristics
È£ÃâÀÚ¿¡ ÀÇÇØ ¼³Á¤µÈ NDIS_MINIPORT_CHARACTERISTICS ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù. MiniportCharacteristics¿¡¼­ ±¸Á¶Ã¼´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù.

typedef struct _NDIS_MINIPORT_CHARACTERISTICS

{

   UCHAR MajorNdisVersion;

   UCHAR MinorNdisVersion;

   UINT Reserved;

   W_CHECK_FOR_HANG_HANDLER CheckForHangHandler;

   W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler;

   W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler;

   W_HALT_HANDLER HaltHandler;

   W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler;

   W_INITIALIZE_HANDLER InitializeHandler;

   W_ISR_HANDLER ISRHandler;

   W_QUERY_INFORMATION_HANDLER QueryInformationHandler;

   W_RECONFIGURATION_HANDLER ReconfigurationHandler;

   W_RESET_HANDLER ResetHandler;

   W_SEND_HANDLER SendHandler;

   W_SET_INFORMATION_HANDLER SetInformationHandler;

   W_TRANSFER_DATA_HANDLER TransferDataHandler;

//

// Version used is V4.0 or V5.0

// with following members

//

   W_RETURN_PACKET_HANDLER ReturnPacketHandler;

   W_SEND_PACKETS_HANDLER SendPacketsHandler;

   W_ALLOCATE_COMPLETE_HANDLER TransferDataHandler;

//

//    Version used is V5.0 with the following members

//

   W_CO_CREATE_VC_HANDLER CoCreateVcHandler;

   W_CO_DELETE_VC_HANDLER CoDeleteHandler;

   W_CO_ACTIVATE_VC_HANDLER CoActivateVcHandler;

   W_CO_DEACTIVATE_VC_HANDLER CoDeactivateVcHandler;

   W_CO_SEND_PACKETS_HANDLER CoSendPacketsHandler;

   W_CO_REQUEST_HANDLER CoRequestHandler;

} NDIS_MINIPORT_CHARACTERISTICS, *PNDIS_MINIPORT_CHARACTERISTICS;

µå¶óÀ̹ö´Â ´ÙÀ½°ú °°Àº ¸â¹öµéÀ» ¼³Á¤Çϱâ Àü¿¡ 0À¸·Î ÀÌ ±¸Á¶Ã¼¸¦ ÃʱâÈ­ÇØ¾ß ÇÑ´Ù.

MajorNdisVersion
µå¶óÀ̹ö°¡ »ç¿ëÇÏ´Â NDIS ¶óÀ̺귯¸®ÀÇ ÁÖ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÇöÀç °ªÀº 0x05ÀÌ´Ù. ºñ·Ï NDIS ¶óÀ̺ñ·¯¸®°¡ NDIS V4.0 ±×¸®°í V3.0À» À§ÇØ °³¹ßµÈ Á¸ÀçÇÏ´Â NIC µå¶óÀ̹öµéÀ» °è¼ÓÇØ¼­ Áö¿øÇÑ´Ù.

ÀÌ ¸â¹ö´Â ¸¸¾à È£ÃâÀÚ°¡ TransferDataHandler ´ÙÀ½ÀÇ ¸â¹öµéÀÇ ¿£Æ®¸® Æ÷ÀÎÆ® ¼³Á¤ÇÑ´Ù¸éÀº 0x05 ȤÀº 0x04·Î ¼³Á¤µÉ °ÍÀÌ´Ù. ; ¸¸¾à È£ÃâÀÚ°¡ AllocateCompleteHandler ´ÙÀ½ÀÇ ¸â¹öµéÀÇ ¿£Æ®¸® Æ÷ÀÎÅ͵éÀ» ¼³Á¤ÇÑ´Ù¸éÀº 0x05·Î ¼³Á¤µÉ °ÍÀÌ´Ù.

MinorNdisVersion
µå¶óÀ̹ö°¡ »ç¿ëÇÏ´Â NDIS ¶óÀ̺귯¸®ÀÇ ¸¶ÀÌ³Ê ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÇöÀç °ªÀ» 0x00ÀÌ µÈ´Ù.

Reserved
ÀÌ ¸â¹ö´Â ½Ã½ºÅÛ »ç¿ëÀ» À§ÇØ ¿¹¾àµÇ¾ú´Ù.

CheckForHangHandler
È£ÃâÀÚÀÇ MiniportCheckForHang ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇϵçÁö NULL·Î ÁöÁ¤ÇÑ´Ù.

DisableInterruptHandler
È£ÃâÀÚÀÇ MiniportDisableInterrupt ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. if any

EnableInterruptHandler
È£ÃâÀÚÀÇ MiniportEnableInterrupt ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. if any

HaltHandler
È£ÃâÀÚÀÇ MiniportHalt ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

HandleInterruptHandler
È£ÃâÀÚÀÇ MiniportHandleInterrupt ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. if any

InitializeHandler
È£ÃâÀÚÀÇ MiniportInitialize ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

ISRHandler
È£ÃâÀÚÀÇ MiniportISR ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. if any. ÀÌ ¹Ì´ÏÆ÷Æ® ÇÔ¼ö´Â ¸¸¾à ³ªÁß¿¡ µå¶óÀ̹ö°¡ MiniportInitializeÇÔ¼ö·ÎºÎÅÍ NdisMRegisterInterrupt¸¦ È£ÃâÇÑ´Ù¸éÀº ÇÊ¿ä·Î ÇÑ´Ù.

QueryInformationHandler
È£ÃâÀÚÀÇ MiniportQueryInformation ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à È£ÃâÀÚ°¡ MiniportCoRequest ÇÔ¼ö¸¦ ÁöÁ¤ÇÑ´Ù¸éÀº ¼±ÅÃÀûÀÌ´Ù.

ReconfigureHandler
È£ÃâÀÚÀÇ MiniportReconfigure ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ȤÀº NULLÀÌ´Ù.

ResetHandler
È£ÃâÀÚÀÇ MiniportReset ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

SendHandler
È£ÃâÀÚÀÇ MiniportSend ÇÔ¼ö, MiniportWanSend ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à È£ÃâÀÚ°¡ MiniportSendPackets ȤÀº MiniportCoSendPackets ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù¸éÀº NULLÀÌ´Ù.

SetInformationHandler
È£ÃâÀÚÀÇ MiniportSetInformation ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à È£ÃâÀÚ°¡ MiniportCoRequest ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù¸éÀº ¼±ÅÃÀûÀÌ´Ù.

TransferDataHandler
È£ÃâÀÚÀÇ MiniportTransferData ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. if any. ÀÌ ¹Ì´ÏÆ÷Æ® ÇÔ¼ö´Â ¸¸¾à È£ÃâÀÚ°¡ WAN NICÀÇ µå¶óÀ̹öÀ̰ųª È£ÃâÀÚ multipacket ¼ö½ÅµéÀ» Áö¿øÇÏ°í ±×·¯¹Ç·Î ReturnPacketHandler¿¡¼­ MiniportReturnPacketÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ Á¦°øÇÑ´Ù. ¿¬°á ÁöÇâ NICµéÀÇ µå¶óÀ̹öµéÀº ¸ÖƼÆÐŶ ¼ö½ÅµéÀ» Á¦°øÇØ¾ß ÇÑ´Ù.

ReturnPacketHandler
È£ÃâÀÚÀÇ MiniportReturnPacket ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. if any

SendPacketsHandler
È£ÃâÀÚÀÇ MiniportSendPackets ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ µî·ÏÇÑ´Ù. if any. ¸¸¾à ºñ¿¬°á ÁöÇâ NIC µå¶óÀ̹ö°¡ ¶ÇÇÑ SendHandler ¸â¹öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ¼³Á¤ÇÑ´Ù¸éÀº NDIS´Â Ç×»ó MiniportSendPackets ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ¿¬°á ÁöÇâ NICÀÌ ÀÌ ¸â¹ö ´ë½Å¿¡ CoSendPacketsHandler ¸â¹ö¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù.

AllocateCompleteHandler
È£ÃâÀÚÀÇ MiniportAllocateComplete ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. if any

CoCreateVcHandler
È£ÃâÀÚÀÇ MiniportCoCreateVc ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à È£ÃâÀÚ°¡ ÅëÇÕ ÄÝ ¸Å´ÏÀú¿Í ¿¬°á ÁöÇâ NIC(MCm) µå¶óÀ̹ö¸éÀº, ÀÌ ¸â¹ö´Â ±×·¯ÇÑ µå¶óÀ̹ö´Â °è¼ÓÇØ¼­ NdisMCmRegisterAddressFamily·Î ÄÝ ¸Å´ÏÀú·Î¼­ ProtocolCoCreateVc ÇÔ¼ö¸¦ µî·ÏÇϱ⠶§¹®¿¡ NULL·Î ¼³Á¤µÈ´Ù.

CoDeleteVcHandler
È£ÃâÀÚÀÇ MiniportCoDeleteVc ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à È£ÃâÀÚ°¡ ÅëÇÕ ÄÝ ¸Å´ÏÀú¿Í ¿¬°á ÁöÇâ(MCm) µå¶óÀ̹ö¸éÀº ÀÌ ¸â¹ö´Â ±×·¯ÇÑ µå¶óÀ̹ö°¡ °è¼ÓÇØ¼­ NdisMCmRegisterAddressFamily·Î È£Ãâ °ü¸®Àڷμ­ ProtocolCoDeleteVc ÇÔ¼ö¸¦ µî·ÏÇϱ⠶§¹®¿¡ NULL·Î ¼³Á¤ÇÑ´Ù.

CoActivateVcHandler
È£ÃâÀÚÀÇ MiniportCoActivateVc ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CoDeactivateVcHandler
È£ÃâÀÚÀÇ MiniportCoDeactivateVc ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù.

CoSendPacketsHandler
È£ÃâÀÚÀÇ MiniportCoSendPackets ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. SendHandler¿Í SendPacketsHandler ¸â¹öµéÀº ¸¸¾à µå¶óÀ̹ö°¡ MiniportCoSendPackets ÇÔ¼ö¸¦ ÁöÁ¤ÇÑ´Ù¸éÀº NULLÀÌ µÉ °ÍÀÌ´Ù.

CoRequestHandler
È£ÃâÀÚÀÇ MiniportCoRequest ÇÔ¼öÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à µå¶óÀ̹ö°¡ ¶ÇÇÑ MiniportQueryInformation°ú MiniportSetInformation ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù¸éÀº MiniportCoRequest ÇÔ¼ö´Â ´ÜÁö OID_GEN_CO_XXX¿Í ¿¬°á ÁöÇ⠹̵ð¾ö ƯÁ¤ OID_XXX ¿ä±¸µéÀ» ´Ù·é´Ù. ¸¸¾à µå¶óÀ̹ö°¡ QueryInformationHandler¿Í SetInformationHandler ¸â¹öµéÀ» NULL·Î ¼³Á¤ÇÑ´Ù¸éÀº, MiniportCoRequest ÇÔ¼ö´Â ¸ðµç °¡´ÉÇÑ OID ¿ä±¸µéÀ» ÀÀ´äÇØ¾ß ÇÑ´Ù. ¸ðµç NDIS ¹Ì´ÏÆ÷Æ®µéÀÌ ´Ù·ï¾ß ÇÏ´Â OID_GEN_XXX¸¦ Æ÷ÇÔÇÑ´Ù.

CharacteristicsLength
È£ÃâÀÚ Á¦°ø ƯÁ¤ ¹öÆÛÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. sizeof(NDIS_MINIPORT_CHARACTERISTICS). ÇÒ´çµÈ Á¤È®ÇÑ ¹öÆÛ Å©±â´Â ÄÄÆÄÀÏ·¯ ȤÀº ¹Ì´ÏÆ÷Æ®¸¦ À§ÇÑ ¼³Á¤µÈ ºôµå µð·ºµðºêµé¿¡ ÀÇÁ¸ÇÑ´Ù.

¿¹¸¦ µç´Ù¸é, ´ÙÀ½ °ÍÀº ¸¸¾à µå¶óÀ̹ö°¡ V5.0 NDIS_MINIPORT_CHARACTERISTICS ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù¸éÀº ¹Ì´ÏÆ÷Æ®ÀÇ ¼Ò½º ÄÚµåÀÇ ½ÃÀÛ¿¡ ºÙ¿©³Ö´Â Àû´çÇÑ ÄÄÆÄÀÏ·¯ µð·ºÆ¼ºê(Áö½ÃÀÚ)¸¦ º¸¿©ÁØ´Ù.


#define NDIS_MINIPORT_DRIVER

#define NDIS50_MINIPORT 1

#include   // AFTER preceding directives

ndis.hÀÇ Æ÷ÇÔÀº NDIS_MINIPORT_DRIVER¿Í NDISXX_MINIPORT µð·ºÆ¼ºêµé ÈÄ ÀϾ °ÍÀÌ´Ù. ¿©±â¼­ XX´Â 50ÀÌ º¸¿©Áø °Í°ú °°ÀÌ 40ÀÌ µÉ ¼ö ÀÖ´Ù. ¸¸¾à NDISXX_MINIPORT µð·ºÆ¼ºê°¡ ºüÁø´Ù¸éÀº, NDIS_MINIPORT_CHARACTERISTICS ±¸Á¶Ã¼ Å©±â´Â version 3.0 ·Î µðÆúÆ®µÇ¾îÀÖ´Ù.

´ëü ¹æ¹ýÀ¸·Î °°Àº µå¶óÀ̹ö´Â ¼±Çà ÄÄÆÄÀÏ·¯ Áö½ÃÀÚ¸¦ »ç¿ëÇÏ´Â °Í ´ë½Å¿¡ sources ÆÄÀϳ»¿¡ ´ÙÀ½ build Áö½ÃÀÚ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.


....

C_FLAGS = $(C_FLAGS) -DNDIS_MINIPORT_DRIVER -DNDIS50_MINIPORT_DRIVER

....

´ëÀÀÇÏ´Â ÄÄÆÄÀÏ·¯ Áö½ÃÀÚ¿Í °°ÀÌ µå¶óÀ̹ö °³¹ßÀÚ´Â 50°ú ¸¶Âù°¡Áö·Î XX°ªÀÌ 40ÀÌ µÉ ¼ö ÀÖ´Â -DNDISXX_MINIPORT_DRIVER Áö½ÃÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

Àû´çÇÑ ÄÄÆÄÀÏ·¯/ºôµå Áö½ÃÀÚµéÀ» ¼³Á¤ÇÏ´Â °ÍÀÌ ÀÚµ¿ÀûÀ¸·Î CharacteristicsLength¸¦ ¼³Á¤ÇÑ´Ù. characteristics ±¸Á¶Ã¼ÀÇ MajorNdisVersion°ú MinorVersionÀÇ °ª ¼³Á¤Àº ¹Ì´ÏÆ÷Æ®¸¦ À§ÇØ ÄÄÆÄÀÏ·¯/ºôµå Áö½ÃÀÚµé·Î ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.

¸®Åϰª

NdisMRegisterMiniport´Â ¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ µî·ÏµÈ´Ù¸éÀº NDIS_STATUS_SUCCESS°¡ ¸®ÅϵȴÙ. ȤÀº ´ÙÀ½ »óÅ °ªµé Áß Çϳª°¡ ¸®Å쵃 ¼ö ÀÖ´Ù. :

NDIS_STATUS_BAD_CHARACTERISTICS
CharacteristicsLength´Â MiniportCharacteristics¿¡¼­ ¹öÆÛ¿¡ ÁöÁ¤µÈ MajorNdisVersionº¸´Ù ³Ê¹« ÀÛ´Ù.

NDIS_STATUS_BAD_VERSION
characteristics¿¡ ÁöÁ¤µÈ MajorNdisVersion ȤÀº MinorNdisVersionÀÌ À߸øµÈ °ªÀÌ´Ù.

NDIS_STATUS_RESOURCES
ÀÚ¿øÀÇ ºÎÁ·, °¡´ÉÇÑÇÑ ¸Þ¸ð¸®, ÀÌ NDIS ¶óÀ̺귯¸®°¡ È£ÃâÀÚ¸¦ µî·ÏÇÏ´Â °ÍÀ» ¸·´Â´Ù.

NDIS_STATUS_FAILURE
À̰ÍÀº µðÆúÆ® ¿¡·¯ »óÅÂÀÌ´Ù. ¼±Çà ¿¡·¯µé ¾Æ¹«°Íµµ µî·ÏÀ» ½ÇÆÐ·Î ¾ß±âÇÏÁö ¾ÊÀ» ¶§ ¸®ÅϵȴÙ.

ÁÖ¼®

NIC µå¶óÀ̹ö´Â NdisMInitializeWrapper¿¡ ´ëÇÑ È£Ãâ ´ÙÀ½¿¡ DriverEntry·ÎºÎÅÍ NdisMRegisterMiniport ¸¦ È£ÃâÇÑ´Ù.

¸ðµç NIC µå¶óÀ̹ö´Â NdisMRegisterMiniport¸¦ È£ÃâÇÏ°í Æ¯¼º ±¸Á¶Ã¼¸¦ ¼³Á¤ÇÔÀ¸·Î½á Ç¥ÁØ MiniportXxx ÇÔ¼öµéÀ» ÀͽºÆ÷Æ®ÇÑ´Ù. ÀÌ ±¸Á¶Ã¼´Â NDIS ¶óÀ̺귯¸® ³»ºÎ ÀúÀå °ø°£¿¡ ´ëÇÑ NdisMRegisterMiniport ¿ä±¸³»¿¡ º¹»çµÇ¾îÁø´Ù. ÀÏ´Ü µî·ÏµÇ¾îÁø´Ù¸éÀº ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â MiniportXxx ÇÔ¼öµéÀ» ¹Ù²Ü ¼ö ¾ø´Ù.

µå¶óÀ̹ö°¡ NdisMRegisterMiniport¸¦ È£ÃâÇÑ ÈÄ DriverEntry ÇÔ¼ö°¡ Á¦¾î¸¦ ¸®ÅÏÇÑ ÈÄ, characteristics ±¸Á¶Ã¼¿¡ ÁöÁ¤µÈ MiniportInitialize ¿£Æ®¸® Æ÷ÀÎÆ®¿¡ ÄݹéµÇ¾îÁú Áغñ°¡ µÇ¾îÁ³´Ù. PnP ȯ°æ¿¡¼­ NdisMRegisterMiniport¿¡ ´ëÇÑ NIC µå¶óÀ̹öÀÇ È£ÃâÀº PnP °ü¸®ÀÚ°¡ NICÀÌ ½ÃÀÛÇϱâ À§ÇÑ ¿ä±¸¸¦ NDIS¿¡°Ô º¸³¾¶§±îÁö µå¶óÀ̹öÀÇ MiniportInitialize ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀ» Áö¿¬ÇÏ´Â NDIS¿¡ ¹Ì´ÏÆ÷Æ® ¿£Æ®¸® Æ÷ÀÎÆ®µéÀ» µî·ÏÇÑ´Ù. PnP¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº Driver Setup, Plug and Play, Power Management¸¦ ºÁ¶ó.

NDIS ¶óÀ̺귯¸®´Â ÇöÀç MiniportReconfigure¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù. ±×·¡¼­ Á¸ÀçÇÏ´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö³»¿¡ ÇÔ¼ö´Â ¹Ì´ÏÆ÷Æ®°¡ MiniportInitialize·ÎºÎÅÍ MiniportReconfigure¿¡ ´ëÇÑ ³»ºÎ È£ÃâÇϱâ Àü±îÁö´Â Á×Àº ÄÚµåÀÌ´Ù.

NDIS intermediate µå¶óÀ̹öµéÀº, MiniportXxx¿Í ProtocolXxx ÇÔ¼öµéÀ» ÀͽºÆ÷Æ®ÇÏ´Â, NdisMRegisterMiniport ¸¦ È£ÃâÇÏ´Â °Í ´ë½Å¿¡ NdisIMRegisterLayeredMiniport¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. ¿¬°á ÁöÇâ MCM µå¶óÀ̹öµéÀº, ±×·¯³ª, MiniportXxx ¿Í ProtocolCMXxx ÇÔ¼öµéÀ» ÀͽºÆ÷Æ®ÇÏ´Â, MdisMRegisterMiniport¸¦ È£ÃâÇÑ´Ù.

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