NDISред NET_BUFFER рд╡рд╛рд╕реНрддреБрдХрд▓рд╛

рд╣рдо NDIS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреА рдЖрд░рдВрднрд┐рдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рд╣рдо NDIS рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ "рд╕реНрдЯреИрдХ" рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдФрд░ NET_BUFFER рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмреАрдЪ рдкреИрдХреЗрдЯ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЫрд╡рд┐



рдкрд░рд┐рдЪрдп



рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдПрдирдбреАрдЖрдИрдПрд╕ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВред



рдореИрдВ W2K рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ NDIS 4.0 рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреЗ рдХреВрдбрд╝реЗрджрд╛рди рдХреЛ рдирд╣реАрдВ рдЫреВрдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред Microsoft рд╡рд┐рдВрдбреЛрдЬ 8 рдореЗрдВ NDIS 5.1 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рднреА рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реВрдЪреА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ NDIS 5.x рдФрд░ NDIS 6.x рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрд▓ рд╕реЗ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдерд╛ред рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдлрд┐рд▓рд┐рдВрдЧ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╡реИрд╕реЗ, 20% рдиреЗ рдЗрд╕ рд╡реГрджреНрдзрд┐ рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рд╡рд┐рд╕реНрдЯрд╛ рдЕрдкрдиреЗ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИред рдлрд╝рд┐рд▓реНрдЯрд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрдореА рдереАред рдкреИрдХреЗрдЯ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдП рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН: рдпрджрд┐ рдордзреНрдпрд╡рд░реНрддреА рдЪрд╛рд▓рдХ рдХреЛ рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рдХрдо рд╕реЗ рдХрдо рддреАрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдерд╛, рддреЛ рдЕрдм рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╣реИред рдпрд╣ NET_BUFFER рдирд╛рдордХ рдПрдХ рдирдП рдкреИрдХреЗрдЯ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

NET_BUFFER рд╡рд╛рд╕реНрддреБрдХрд▓рд╛


рддреЛ рдХреНрдпрд╛ рд╣реИ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, NET_BUFFER рдкрд┐рдЫрд▓реЗ NDIS_BUFFER'y рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗред рдХреНрдпрд╛ рдерд╛? рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рддреАрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд░реВрд╕реА рдореЗрдВ, рд╣рдо рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╣рддреЗ рд╣реИрдВ:



рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдХ рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЛ рдирд╣реАрдВ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ) рдФрд░ рдЗрд╕реЗ рднреЗрдЬреЗрдВред рдЗрд╕рд▓рд┐рдП, NET_BUFFER рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдПрдирдбреАрдЖрдИрдПрд╕ 6.x рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП 2 рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдЕрдм рдпрд╣ рдПрдХ рдкреИрдХреЗрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдмрдлрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдирдбреАрдЖрдИрдПрд╕ 6+ рдХреЗ рдЖрддреЗ рд╣реА рдЗрди рд╢рдмреНрджреЛрдВ рдХреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рдорд╛рдирд╛рд░реНрдердХ рд╢рдмреНрдж рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВ)ред рд╣рд╛рдВ, рдореИрдВрдиреЗ 2x рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЭреВрда рдмреЛрд▓рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпреЗ рджреЛрдиреЛрдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рднрдЯрдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдп, рдореИрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдпрд╣рд╛рдВ рд▓рд┐рдЦреВрдВрдЧрд╛:

VOID FilterSendNetBufferLists( IN NDIS_HANDLE FilterModuleContext, IN PNET_BUFFER_LIST NetBufferLists, IN NDIS_PORT_NUMBER PortNumber, IN ULONG SendFlags ); VOID FilterReceiveNetBufferLists( IN NDIS_HANDLE FilterModuleContext, IN PNET_BUFFER_LIST NetBufferLists, IN NDIS_PORT_NUMBER PortNumber, IN ULONG NumberOfNetBufferLists, IN ULONG ReceiveFlags ); 


рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ NDIS рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп, рдпрд╛ рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕ рд╕реВрдЪрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд░ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЕрд╕реАрдорд┐рдд рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИред рдмрд╣реБрдд рд╕рд╣рдЬ рд╣реИред
рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ NET_BUFFER рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдХреЗрдд рд╣реИрдВред рд╣рдо рдЗрд╕рд╕реЗ рдмрд╛рдж рдореЗрдВ рдирд┐рдкрдЯреЗрдВрдЧреЗред
рдЕрдиреНрдп рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рд╣рдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рд╣реА рдЙрддреНрддреАрд░реНрдг рд╣реЛрддреЗ рд╣реИрдВред
рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ:

рдЫрд╡рд┐

рдкреНрд░рддреНрдпреЗрдХ NET_BUFFER рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдкреИрдХреЗрдЬ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
рдЫрд╡рд┐

рдЫрд╛рдпрд╛рдВрдХрд┐рдд рд╕реНрдерд╛рди рдореЗрдВ рд╣рдорд╛рд░рд╛ рдкреИрдХреЗрдЬ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рдирд┐рд░рдВрддрд░ рдмреНрд▓реЙрдХ рд╣реИ, рдПрдХ рдкреИрдХреЗрдЯ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдореЗрдВ рдмрд┐рдЦрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдХреЛ рдиреЙрдирдкреЗрдб рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ (рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: IRQL> = DISPATCH_LEVEL рдкрд░ рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдХреЛрдб D1 рдХреЗ рд╕рд╛рде рдПрдХ рдиреАрд▓реА рд╕реНрдХреНрд░реАрди рдорд┐рд▓рддреА рд╣реИред DRIVER_IRQL_NOTOESS_OR_EQUAL, рд╕рдмрд╕реЗ рдЖрдо рдбреНрд░рд╛рдЗрд╡рд░-рд▓реЗрдЦрдХ рддреНрд░реБрдЯрд┐)ред

рддреБрд░рдВрдд рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рдордиреЗ рдЦрд╛рд▓реА рдЬрдЧрд╣ рдХреНрдпреЛрдВ рдЫреЛрдбрд╝реА? рдлрд┐рд░, рдЬрдм рдЖрдИрдкреА рдкреИрдХреЗрдЯ рдиреАрдЪреЗ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдИрдерд░рдиреЗрдЯ рдлреНрд░реЗрдо рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдХрдЯреНрдард╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдИрдерд░рдиреЗрдЯ рд╣реЗрдбрд░ рдХреЛ рдмрд╕ рдкреИрдХреЗрдЯ рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрд╛ред рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдореЗрдВ рднреА рдпрд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдерд╛рдХрдерд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА Backfill (рдЙрд░реНрдл рдбреЗрдЯрд╛рдСрдлрд╝рд╕реЗрдЯ) рд╕реНрдерд╛рди, рдСрдлрд╝рд╕реЗрдЯ рдФрд░ рдмрдлрд░ рд▓рдВрдмрд╛рдИ NET_BUFFER рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдореИрдВ рдпрд╣ рднреА рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдмрдлрд░ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдмрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рджрд╛рдИрдВ рдУрд░ рдЕрдВрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, NDIS рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


рдпрд╣ рд▓реЗрдЦ рдПрдирдбреАрдЖрдИрдПрд╕ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореБрдЭреЗ рдорд┐рд▓реА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдпрд╛рдж рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рдордЧреНрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХрд┐рд╕реА рднреА рдЙрдЪрд┐рдд рдврд╛рдВрдЪреЗ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЙрд╕реА рд╕рдордп, рдореИрдВ рдХреБрдЫ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдХрд┐ рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХреЗ рд╕рд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдорд╛рдирддрд╛ рд╣реВрдВред

рдЖрдЧреЗ рдкрдврд╝реЗ рдпрд╣рд╛рдВ:

www.codemachine.com/article_ndis6nbls.html
msdn.microsoft.com/en-us/library/ff564881 (v = рдмрдирд╛рдо 85) .aspx

рдЕрдЧрд▓реА рдмрд╛рд░ рддрдХред

Source: https://habr.com/ru/post/In113255/


All Articles