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¿¡¼ ½ÇÇàÇÑ´Ù.
|