TdiProviderReady
NTSTATUS
TdiProviderReady(
IN HANDLE ProviderHandle
);
TdiProviderReady ÇÔ¼ö´Â ÇϳªÀÌ»óÀÇ ÇϺΠNIC°ú ¼º¸³µÈ ¹ÙÀεùÀ» °¡Áö´Â ƯÁ¤ Æ®·£½ºÆ÷Æ®ÀÇ TDI Ŭ¶óÀÌ¾ðÆ®¸¦ ÀνÄÇÑ´Ù. ±×¸®°í ³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ º¸³»°Å³ª ¹ÞÀ» ¼ö ÀÖ´Ù.
¸Å°³º¯¼ö
- ProviderHandle
- Æ®·£½ºÆ÷Æ®°¡ TdiRegisterProvider ÇÔ¼ö·ÎºÎÅÍ ¾òÀº ÇÚµéÀ» ¼¼úÇÑ´Ù.
¸®Åϰª
³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ º¸³»±âÀ§ÇÑ ÇöÀçÀÇ ¸ðµç ¹ÙÀεù Ŭ¶óÀ̾ðÆ®ÀÇ Æ®·£½ºÆ÷Æ® Áغñ°¡ µÆÀ» ¶§ TdiProviderReady ÇÔ¼ö´Â STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é STATUS_INSUFFICIENT_RESOURCES¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù. (½Ã½ºÅÛ ÀÚ¿øÀÇ »ç¿ëÀÌ µ¿ÀûÀ̱⠶§¹®¿¡ °°Àº Æ®·£½ºÆ÷Æ®·ÎºÎÅÍÀÇ ¼øÂ÷ÀûÀΠȣÃâÀº ¼º°øÇÒ ¼ö ÀÖ´Ù.)
ÁÖ¼®
TDI Æ®·£½ºÆ÷Æ®´Â ´ÙÀ½ÀÇ ¸ðµç ¿¬»êÀ» ÇÏÀÚ¸¶ÀÚ TdiProviderReady ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù:
- Æ®·£½ºÆ÷Æ® ½ºÅÿ¡¼ ÃÖÇÏÀ§ µå¶óÀ̹öÀÇ ProtocolBindAdapter ÇÔ¼ö°¡ ÇϳªÀÌ»óÀÇ ÇϺΠNDIS ¹Ì´ÏÆ÷Æ®¿ÍÀÇ ¹ÙÀεùÀ» ¼º°øÀûÀ¸·Î ¼º¸³Çؼ ÀÌ ¹Ì´ÏÆ÷Æ®ÀÇ NICÀº ÃʱâÈµÆ°í ³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Ù.
- NDIS´Â NetEventBindsComplete ŸÀÔÀÇ ÀÔ·Â NET_PNP_EVENT¸¦ °¡Áö°í Æ®·£½ºÆ÷Æ® ½ºÅÃÀÇ ¹Ø¿¡¼ ProtocolPnPEvent ÇÔ¼ö¸¦ È£ÃâÇß´Ù.
- »õ·Ó°Ô ¼º¸³µÈ Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεù¿¡¼ ±×µéÀÌ ³×Æ®¿÷ Àü¼ÛÀ» Æ®·¢ÇÒ Çʿ䰡 ÀÖ´Â »óŰ¡ ¹«¾ùÀ̵çÁö Æ®·£½ºÆ÷Æ® ½ºÅþȿ¡ ¾î¶² ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö°¡ ÇÒ´çµÇ°í ÃʱâȵǾú´Ù.
- ¶ÇÇÑ »õ·Ó°Ô ¼º¸³µÈ Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεù¿¡¼ Ŭ¶óÀ̾ðÆ®ÀÇ ³×Æ®¿÷ Àü¼ÛÀ» Æ®·¢ÇÒ Çʿ䰡 ÀÖ´Â »óŰ¡ ¹«¾ùÀ̵çÁö TDI Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö°¡ ÇÒ´çµÇ°í ÃʱâȵǾú´Ù. ¿¹¸¦µé¾î Æ®·£½ºÆ÷Æ®´Â °¢°¢ÀÇ ±×·¯ÇÑ ¹ÙÀεù¿¡¼ Ŭ¶óÀ̾ðÆ®ÀÇ ³×Æ®¿÷ I/O ¿¬»êÀÇ Å¸°ÙÀ» ±¸ÇöÇϱâ À§Çؼ »ý¼ºµÈ ÀåÄ¡ °´Ã¼ÀÇ À̸§À» °¡Áö°í ÇѹøÀÌ»ó TdiRegisterDeviceObject ÇÔ¼ö¸¦ È£ÃâÇß´Ù. ¶ÇÇÑ Æ®·£½ºÆ÷Æ®´Â ¹æ±Ý ¼º¸³µÈ ¹ÙÀεù¿¡¼ ÇѹøÀÌ»ó TdiRegisterNetAddress ÇÔ¼ö¸¦ È£ÃâÇß´Ù.
TdiProviderReady ÇÔ¼ö·ÎÀÇ Æ®·£½ºÆ÷Æ® È£ÃâÀº ´ÙÀ½ÀÇ ¸ðµÎ³ª Çϳª¸¦ ¿Ï¼ºÇÑ´Ù:
- TDI´Â ÀÔ·Â PnPOpcode °ª TDI_PNP_OP_PROVIDERREADY¸¦ °¡Áö°í ÀÌ Æ®·£½ºÆ÷Æ®ÀÇ Å¬¶óÀÌ¾ðÆ®¿¡ ´ëÇÑ µî·ÏµÈ ClientPnPBindingChange ·çƾÀ» È£ÃâÇÑ´Ù. µû¶ó¼ TDI´Â ÇϺÎÀÇ Æ®·£½ºÆ÷Æ® ½ºÅÃÀÌ »õ·Ó°Ô ¼º¸³µÈ Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεùÀ» ÅëÇØ¼ ³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ º¸³»°Å³ª ¹ÞÀ» Áغñ°¡ µÈ Ŭ¶óÀÌ¾ðÆ®¸¦ ÀνÄÇÑ´Ù.
- ÀÌ ±â°è»ó¿¡¼ ·¹Áö½ºÆ®¸®¾È¿¡ ÀúÀåµÈ ³×Æ®¿÷ ±¸¼º Á¤º¸¿¡ µû¶ó¼ À̰ÍÀÌ TDI¿¡°Ô ÁÖ¾îÁø ¸¶Áö¸· Æ®·£½ºÆ÷Æ® Áغñ ÀεðÄÉÀ̼ÇÀÌ°í ¼º¸³µÈ ¸¶Áö¸· Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεùÀ̶ó¸é TDI´Â ¸ðµç Æ®·£½ºÆ÷Æ®ÀÇ Å¬¶óÀÌ¾ðÆ®¿¡ ´ëÇØ¼ µî·ÏµÈ ClientPnPBindingChange ·çƾÀ» È£ÃâÇÑ´Ù. °á±¹ TDI´Â ½Ã½ºÅÛ ÃʱâȽÿ¡ ¹ÙÀεù ¿¬»êÀÌ NULL DeviceName Æ÷ÀÎÅÍ¿Í °ªÀÌ TDI_PNP_OP_NETREADYÀÎ PnPOpcode¸¦ °¡Áö°í °¢°¢ÀÇ µî·ÏµÈ ClientPnPBindingChange ·çƾÀ» È£ÃâÇϹǷνá ÇàÇØÁú ¶§ ¸ðµç µî·ÏµÈ Ŭ¶óÀÌ¾ðÆ®¸¦ ÀνÄÇÑ´Ù.
IoCreateDevice ÇÔ¼ö¸¦ °¡Áö°í ÀåÄ¡ °´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ À§Çؼ Ä¿³Î ¸ðµå µå¶óÀ̹ö ·¹ÆÛ·±½º¸¦ ºÁ¶ó.
TdiProviderReader ÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL < DISPATCH_LEVEL¿¡¼ ½ÇÇàµÇ¾î¾ßÇÑ´Ù.
|