API N e t B I O S Wi n s o c k A P I Wi n s o c k 1 N e t B I O S Wi n s o c k A P I N e t B I O S O S / 2 D O S 2 3 4 Wi n d o w s Wi n d o w s 1 NetBIOS Network Basic Input/Output System, NetBIOS A P I1 983 S y t e k I B M N e t B I O S 1985 I B M N e t B I O S NetBIOS Extended User Interface, NetBEUI N e t B I O S N e t B I O S T C P / I P I P X / S P X N e t B I O S N e t B I O S Windows NT Windows 2000 Windows 95 Windows 98 Windows CE NetBIOS API TCP/IP NetBIOS Win32 NetBIOS N e t B I O N e t B I O S N e t B I O L A N A N e t B I O S A N e t B I O S OSI O S I O S 1-1 O S I
2 API 1-1 OSI O S I N e t B I O S 1.1 Microsoft NetBIOS NetBIOS API N e t B I O S T C P / I P N e t B I O I P X / S P X N e t B I O S N e t B I O S T C P / I P N e t B E U I N e t B I O S N e t B I O S Microsoft TCP/IP N e t B E U I N e t B I O S I P X / S P X I P X / S P X N e t B I O S I P X / S P X Windows 2000 NWLink IPX/SPX/NetBIOS Windows 95 Windows 98 I P X / S P X I P X / S P X N e t B I O S N e t B E U I T C P / I P I P X / S P X N e t B I O S 6 1.1.1 LANA N e t B I O S L A N LAN adapter, LANA N e t B I O S N e t B I O S L A N A Wi n 3 2
1 NetBIOS 3 L A N A N e t B I O S T C P / I P N e t B E U I L A N A 0. T C P / I P 1 1. N e t B E U I 1 2. T C P / I P 2 3. N e t B E U I 2 L A N A 0 9 LANA 0 LANA 0 LANA 0 L A N A N e t B I O S LANA 0 L A N A LANA 0 Windows 95 Windows 98 N e t B I O S LANA 0 Windows 95 Windows 98 Windows NT 4 N e t B I O S N e t B I O S N e t B I O S L A N A 1-2 N e t B I O S E d i t L A N A Windows 2000 L A N A L A N A 1-2 NetBIOS TCP/IP NetBTNetBEUI Nbf IPX/SPX NwlnkNb
4 API N e t B I O S L A N A N e t B I O S LANA 2 LANA 2 T C P / I P LANA 2 LANA 2 N e t B E U I T C P / I P N e t B E U I L A N A L A N A L A N A 1.1.2 NetBIOS L A N A N e t B I O S L A N A N e t B I O S 16 16 Wi n 32 L A N A N e t B I O S LANA 0 LANA 0 L A N A 254 1 2 54 0 2 55 254 L A N A N e t B I O S N e t B I O S Wi n d o w s W I N S W I N W I N S N e t B I O S T C P / I P W I N S N e t B I O S I P W I N S N e t B I O S 16 W I N S W I N S W I N S N b t s t a t N e t B I O S 1-1 N b t s t a t - n D a v e m a c N e t B I O S D a v e m a c
1 NetBIOS 5 Windows NT Server I n t e r n e t I I S 1-1 NetBIOS 1 6 D AV E M A C 1 < 0 0 > D AV E M A C 1 < 2 0 > D AV E M A C D < 0 0 > D AV E M A C D < 1 C > D AV E M A C D < 1 B > D AV E M A C 1 < 0 3 > I n e t ~ S e r v i c e s < 1 C > I n t e r n e t I S ~ D AV E M A C 1 < 0 0 > I n t e r n e t D AV E M A C 1 + + + + + + + < B F > T C P / I P N b t s t a t - a I P - A 1-2 M i c r o s o f t N e t B I O S 16 1-2 1 6 < 00 > N e t B I O S < 03 > W I N S W I N < 1 B > < 06 > R A S < 1 F > N e t D D E < 2 0 > < 2 1 > R A S < B E > < B F > 1-3 N e t B I O S 16 N e t B I O S N e t B I O S 1-3 1 6 < 1 C > W I N S 25 1 C W I N S 1 C I P
6 API 1 6 < 1 D > W I N S W I N S W I N S h m b N e t B I O S p W I N S m b p b p h p b Wi n d o w s h < 1 E > < 20 > I n t e r n e t W I N S _ M S B R O W S E _ p r i n t e r s g 16 _ M S B R O W S E _ 1.1.3 NetBIOS N e t B I O S N e t B I O S L A N A N e t B I O S
1 NetBIOS 7 1.2 NetBIOS N e t B I O S NetBIOS API UCHAR Netbios(PNCB pncb); N e t B I O S N b 30. h N e t B I O S N e t a p i 32. l i b p N C B N C B N C B N e t B I O S N e t b i o s N e t B I O S N e t b i o s N e t b i o s N C B 1-4 A N e t B I O S NCB 1-4 NCB n c b _ c o m m a n d n c b _ r e t c o d e f n c b _ l s n n c b _ n u m n c b _ b u ff e r N e t B I O S A S Y N C H ( 0 X 80 ) O R N R C _ P E N D I N G N C B C A L L N C B L I S T E N N C B A D D N A M E N C B A D D G R N A M E N e t b i o s
8 API ( ) n c b _ l e n g t h n c b _ c a l l n a m e n c b _ n a m e n c b _ r t o n c b _ s t o n c b _ p o s t n c b _ l a n a _ n u m n c b _ c m d _ c p l n c b _ r e s e r v e n c b _ e v e n t N C B E N U M L A N A _ E N U M N e t b i o s N e t b i o s N R C _ B U F L E N 500 1 N C B C A L L N C B L I S T E N N C B R E C V 500 1 N C B C A L L N C B L I S T E N N C B S E N D N C B C H A I N S E N D void CALLBACK PostRoutine(PNCB pncb); p n c b L A N A Netbios NRC_PENDING 0 N o n s i g n a l e d Wi n d o w s S i g n a l e d n c b _ c o m m a n d A S Y N C H n c b _ p o s t 0 0 N e t b i o s N R C _ I L L C M D N e t b i o s N e t B I O S N e t b i o s N C B L I S T E N N e t b i o s N e t B I O S A S Y N C H O R A S Y N C H n c b _ p o s t Post Routine n c b _ e v e n t N e t b i o s N R C _ G O O D R E T ( 0 x 00 ) n c b _ c m d _ c p l t N R C _ P E N D I N G ( 0 x F F ) N e t b i o s N C B n c b _ c m d _ c p l t N R C _ P E N D I N G n c b _ c m d _ c p l t N e t b i o s n c b _ r e t c o d e 1.3 NetBIOS N e t B I O S N e t B I O S C a l l B a c k N e t B I O S 1-1 N b c o m m o n. c
1 NetBIOS 9 \ E x a m p l e s \ C h a p t e r 0 1 \ C o m m o n 1-1 N e t B I O S ( N b c o m m o n. c )
10 API
1 NetBIOS 11
12 API
1 NetBIOS 13 N b c o m m o n. c L a n a E n u m N e t B I O S L A N A N C B 0 n c b _ c o m m a n d N C B E N U M n c b _ b u ff e r L A N A _ E N U M n c b _ l e n g t h L A N A _ E N U M N C B N C B E N U M L a n a E n u m N e t b i o s N e t B I O S N e t b i o s N R C _ G O O D R E T L A N A L A N A N e t B I O S L A N A _ E N U M L A N A _ E N U M l e n g t h L A N A l a n a L A N A l e n g t h l a n a L A N A R e s e t A l l N e t B I O S N e t B I O S L A N A L A N A _ E N U M L a n a E n u m L A N A L A N N C B R E S E T R e s e t A l l L A N A _ E N U M n c b _ c o m m a n d N C B R E S E T n c b _ l a n a _ n u m L A N A Windows 95 L A N A Windows NT L A N A N e t b i o s 52 N R C _ E N V N O T D E F L A N A n c b _ c a l l n a m e N e t B I O S R e s e t A l l u c M a x S e s s i o n n c b _ c a l l n a m e 0
14 API Windows NT 4 6 R e s e t A l l n c b _ c a l l n a m e 2 L A N A N e t B I O S u c M a x N a m e R e s e t A l l 3 N e t B I O S b F i r s t N a m e T R U E N e t B I O S N e t B I O S A d d N a m e L A N A L A N A L A N A L A N A N C B A D D N A M E L A N A n c b _ n a m e A d d N a m e n c b _ n a m e n a m e N e t b i o s n c b _ n u m N e t B I O S N e t B I O S N R C _ D U P N A M E A d d G r o u p N a m e A d d N a m e N C B A D D G R N A M E N R C _ D U P N A M E D e l N a m e N e t B I O S L A N A 1-1 S e n d R e c v n c b _ c o m m a n d N C B S E N D N C B R E C V L A N A N C B C A L L N C B L I S T E N N C B C A L L N C B L I S T E N N e t B I O S S e n d R e c v n c b _ b u ff e r n c b _ l e n g t h n c b _ b u ff e r l e n g t h b u ff e r N e t b i o s S e n d R e c v S e n d N C B S E N D N C B C H A I N S E N D N e t b i o s N C B S E N D N A N C B C H A I N S E N D N A 1-1 H a n g u p C a n c e l
1 NetBIOS 15 N e t B I O S N C B H A N G U P N R C _ S C L O S E D ( 0 x 0 A ) H a n g u p 1.3.1 N e t B I O S 1-2 C b n b s v r. c / E x a m p l e s / C h a p t e r 01 / S e r v e r m a i n L a n a E n u m L A N A R e s e t A l l L A N A N e t B I O S 1-2 C b n b s v r. c
16 API
1 NetBIOS 17
18 API m a i n L A N A T E S T- S E RV E R - 1 L A N A N e t B I O S N e t B I O S N C B L I S T E N L i s t e n N C B N e t B I O S N C B N C B N C B N C B L I S T E N L A N A 1-1
1 NetBIOS 19 N C B L I S T E N A S Y N C H O R A S Y N C H n c b _ p o s t n c b _ e v e n t N e t b i o s N R C _ I L L C M D 1-2 L i s t e n n c b _ p o s t L i s t e n C a l l b a c k L i s t e n n c b _ n a m e n c b _ c a l l n a m e n c b _ c a l l n a m e L i s t e n N e t b i o s N e t b i o N C B n c b _ c m d _ c p l t N R C _ P E N D I N G ( 0 x F F ) m a i n L A N A N C B L I S T E N N e t B I O S LANA NCBLISTEN L A N A N C B L I S T E N n c b _ p o s t N C B n c b _ r e t c o d e n c b _ r e t c o d e N R C _ G O O D R E T ( 0 x 00 ) L A N A N C B L I S T E N L A N A N C B L I S T E N L A N A N C B L I S T E N N C B R E C V N C B S E N D N C B H A N G U P N C B N e t b i o s A S Y N C H n c b _ s t o n c b _ r t o n c b _ s t o 500
20 API n c b _ r t o 1.3.2 1-3 1-2 Wi n 3 Wi n 3 2 Wa i t F o r S i n g l e E v e n t Wa i t F o r M u l t i p l e E v e n t s 1) L A N A 2) L A N A 3) L A N A 4) L A N A N C B 1-3 N C B N C B L A N A N C B L I S T E N N C B L i s t e n N C B 1-3 E v n b s v r. c
1 NetBIOS 21
22 API
1 NetBIOS 23
24 API m a i n L A N A N C B L I S T E N Wa i t F o r M u l t i p l e O b j e c t s Wa i t F o r M u l t i p l e O b j e c t s N C B N C B N C B L I S T E N L i s t e n n c b _ l s n L A N A n c b _ l a n a _ n u m N C B G l o b a l F r e e N C B L I S T E N N C B L I S T E N L A N A 2 L A N A N C B L I S T E N N R C _ N O C A L L ( 0 x 14 ) N C B L I S T E N L A N A N C B L I S T E N A S Y N C H N e t B I O S N e t b i o s N C B 1.3.3 NetBIOS N e t B I O S 1-4
1 NetBIOS 25 L A N A N C B L A N A n c b _ c m d _ c p l t N R C _ P E N D I N G N C B N C Wa i t F o r M u l t i p l e O b j e c t s L A N A L A N N C B H A N G U P 1-4 N b c l i e n t. c
26 API
1 NetBIOS 27
28 API 1.4 D a t a g r a m N e t B I O S N C B D G S E N D N C B D G S E N D B C n c b _ n u m N C B A D D N A M E N C B A D D G R N A M E n c b _ b u ff e r n c b _ l a n a _ n u m L A N A L A N A n c b _ c a l l n a m e N e t B I O S n c b _ c a l l n a m e N C B D G R E C V N e t B I O S N C B D G R E C V B C
1 NetBIOS 29 n c b _ n u m N C B A D D N A M E N C B A D D G R N A M E 0 x F F N e t B I O S n c b _ b u ff e r n c b _ l e n g t h n c b _ l a n a _ n u m L A N A N C B D G R E C V N C B D G R E C V B C N e t b i o s n c b _ l e n g t h n c b _ c a l l n a m e N e t B I O S 1-5 L A N A L A N A N C B D G R E C V N C B D G R E C V B C 1-5 NetBIOS N b d g r a m. c
30 API
1 NetBIOS 31
32 API
1 NetBIOS 33
34 API
1 NetBIOS 35
36 API
1 NetBIOS 37
38 API
1 NetBIOS 39 L A N A 1-5 1-6
40 API Nbdgram /n:client01 1-5 Nbdgram.c Nbdgram /s /n:server01 /r:client01 Nbdgram /n:client01 /b Nbdgram /s /n:server01 /b Nbdgram /g:clientgroup / n : m y - n a m e m y - n a m e / g : g r o u p - n a m e g r o u p - n a m e Nbdgram /s /r:clientgroup 1-6 Nbdgram.c / s / c : n n / r : r e c e i v e r N e t B I O S / b / a N e t B I O S n c b _ n u m 0 x F F / l : n LANA n L A N A / d : n n / l : x x L A N A L A N A L A N A Nbdgram /n:client01 /l:0 LANA 0 L A N A / a N e t B I O S / n : N C B D G R E C V 1.5 NetBIOS N C B A S TAT N C B F I N D N A M E L A N A N e t B I O S N e t B I O S 1.5.1 N C B A S TAT L A N A Windows 95 Windows NT 4 M A C Windows 2000 Windows 98 IP Helper I P
1 NetBIOS 41 M A C Wi n 32 A D A P T E R _ S TAT U S N A M E _ B U F F E R M A C a d a p t e r _ a d d r e s s m a x _ d g r a m _ s i z e m a x _ s e s s n a m e _ c o u n t N A M E _ B U F F E R L A N A N e t B I O S 254 n c b _ l e n g t h 0 N e t b i o s N C B A S TAT n c b _ c o m m a n d n c b _ b u ff e r n c b _ l e n g t h n c b _ l a n a _ n u m n c b _ c a l l n a m e n c b _ c a l l n a m e * N e t B I O S N e t b i o s n c b _ c a l l n a m e N e t B I O S
42 API n c b _ c a l l n a m e Microsoft 16 0 A s t a t. c L A N A / l : L O C A L N A M E / r : R E M O T E N A M E M A C N e t B I O S L A N A R A S L A N A R A L A N A M A C R A S M A C R A S M A C N b t s t a t N C B A S TAT T C P / I P T C P / I P 1.5.2 N C B F I N D N A M E Windows NT Windows 2000 N e t B I O S L A N A F I N D _ N A M E _ H E A D E R F I N D _ N A M E _ B U F F E R N C B F I N D N A M E 0 N e t b i o s N R C _ B U F L E N F I N D _ N A M E _ H E A D E R u n i q u e _ g r o u p 0 1 n o d e _ c o u n t F I N D _ N A M E _ B U F F E R
1 NetBIOS 43 F I N D _ N A M E _ B U F F E R d e s t i n a t i o n _ a d d r s o u r c e _ a d d r s o u r c e _ a d d r M A C d e s t i n a t i o n _ a d d r M A C L A N A L A N A R A S Windows NT 4.0 T C P / I P N e t b i o s Windows NT 4.0 L A N A T C P / I P 1.5.3 LANA T C P / I P N e t B E U I L A N A N e t B I O S Windows NT 4 Windows 2000 Winsock 2 W S A E n u m P r o t o c o l s Winsock 2 5 6 W S A E n u m P r o t o c o l s Winsock 2 Windows 95 Windows 98 N e t B I O S Winsock 2 W S A S t a r t u p Winsock 2 W S A E n u m P r o t o c o l s W S A P R O TO C O L _ I N F O C D N b p r o t o. c W S A E n u m P r o t o c o l s 0 W S A E n u m P r o t o c o l s W S A P R O TO C O L _ I N F O s z P r o t o c o l i A d d r e s s F a m i l y i P r o t o c o l i A d d r e s s F a m i l y A F _ N E T B I O S i P r o t o c o l s z P r o t o c o l ProvidedId GUID G U I D Windows NT Windows 2000 LANA 0 i P r o t o c o l 0 x 80000000 LANA 0 0 x 80000000 1.6 N e t B I O S
44 API 1.6.1 Windows CE N e t B I O S Windows CE N e t B I O S 1.6.2 Windows 9x Windows 95 Windows 98 L A N A N e t B I O S L A N A L A N A L A N Windows 95 T C P / I P L A N A N C B R E S E T L A N A N C B R E S E T NetBIOS TCP/IP V X D 1.6.3 N C B S E N D N A N C B C H A I N S E N D N A N e t B I O S T C P / I P 1.7 N e t B I O S T C P / I P N e t B E U I S P X / I P X N e t B I O S Wi n s o c k N e t B I O S N e t B I O S N e t B I O S Wi n s o c k 2 3 4
2 Wi n d o w s N O S Windows 95 Windows 98 Wi n d o w s N T Windows 2000 Windows CE Wi n d o w s 3 4 I / O I / O I / O I / O I / O I/O Redirection Wi n d o w s E : E : I / O R e d i r e c t o r A P I R e a d F i l e Wr i t e F i l e I / O U N C Multiple UNC Provider, MUP Universal Naming Convention, UNC M U P Server Message Block, SMB I / O 2.1 U N C U N C U N C \\[ ]\[ ]\[ ] \\[ ]
46 API U N C \[ ] \[ ] M y s e r v e r D :\ D M y f i l e s \ C o o l M u s i c M y s h a r e S a m p l e. m p 3 M P 3 U N C \ \ M y s e r v e r \ M y s h a r e \ S a m p l e. m p 3 M y s h a r e U N C U N C U N C U N C 3 4 U N C 2-1 Wi n d o w s U N C N O S U N C \\ M y s e r v e r \ M y s h a r e \ S a m p l e. m p 3 MUP I/O 2-1
2 47 2.2 UNC M U P 2-1 U N C Network Provider M U P U N C I / O Windows NT Windows 2000 Windows 95 Windows 98 Wi n d o w s M i c r o s o f t Client for Microsoft N e t w o r k N o v e l l Novell Client v3.01 for Windows 95/98 U N C Windows CE M i c r o s o f t M U P U N C M U P U N C U N C M U P U N C M U P Windows NT Windows 2000 Windows 95 Windows 98 R e g i s t r y P r o v i d e r O r d e r \ H K E Y _ L O C A L _ M A C H I N E \ S Y E T E M \ C u r r e n t C o n t r o l S e t \ C o n t r o l \ N e t w o r k P r o v i d e r \ O r d e r Windows CE M U P U N C U N C 2.3 E : U N C Wi n d o w s Wi n d o w s M i c r o s o f t M i c r o s o f t M S N P M S N P 32 M S N P Windows NT 4 Windows 2000 Windows 95 Windows 98 Windows CE Windows CE M S N P
48 API 2.4 I / O I / O M U P I / O M S N P N e t B I O S 1 NetBIOS API M S N P L A N LAN Manager Redirector Microsoft LAN Manager M S - D O S N e t B I O S 1 N e t B I O S M S N P M S N P T C P / I P N e t B E U I I P X / S P X A T C P / I P B I P X M S N P M S N P S M B Server Message Block File Sharing S M B 2.5 S M B I n t e l 8 0 M S - D O S S M B Windows MSNP M S N S M B S M B M S N P S M B S M B S M T C P / I P S M B
2 49 M S N P \\ M y s e r v e r \ M y s h a r e \ S a m p l e. m p 3 1) C r e a t e F i l e A P I \ \ M y s e r v e r \ M y s h a r e \ S a m p l e. m p 3 2) U N C I / O \\ M y s e r v e r M U P 3) MUP I / O M S N P \\ M y s e r v e r N e t B I O S 4) I/O M S N P 5) S M B \ M y s h a r e S a m p l e. m p 3 6) S M B 7) \\ M y s e r v e r S M B M S N P 8) I / O \ M y s h a r e S a m p l e. m p 3 9) S M B I / O 10) S M B 11) MSNP S M P 12) CreateFile API M S N P M S N P 2.6 Windows NT Windows 2000 Windows NT Windows 2000 2.6.1 Security Descriptor S E C U R I T Y _ D E S C R I P TO R
50 API Security Identifier S I D S I D Discretionary Access Control List D A C L System Access Control List S A C L Wi n 32 A P I A P 1. D A C L S A C L access control list, ACL access control entities, ACE A C E A C S I D A C E A C E A C E S A C L A C E D A C 2-2 D A C L SID SID DACL SACL ACE ACE ACE 2-2 DACL D A C L D A C L A P I S e t S e c u r i t y D e s c r i p t o r D a c l D A C L D A C L A C E D A C L A C E D A C L A C E A C E
2 51 A C E A C E A C E A C E A C A C E A C E A C E A C E 2-2 D A C L 2 - A C E A C L A P I 2. A C E S I D S I D Windows NT S I D S I Windows NT S I D 2.6.2 Windows NT S I D S I D D A C L S I D 2.7 M S N P M S N P U N C
52 API Windows NT Windows 2000 M S N P B \ H a c k \ S l a s h A \ H a c k G \ S l a s h H M S N P M S N 2-3 M S N P Windows NT 1. Windows NT A 5. 2. Windows NT 2.8 2-3 M S N P Wi n 32 C r e a t e F i l e R e a d F i l e Wr i t e F i l e A P I Windows NT Windows 2000 Wi n 32 2-1 U N C \ E x a m p l e s \ C h a p t e r 02 A 3. U N C B B 4 M S N P 1 6. U N C Windows NT Wi n d o w s 2 0 0 0 2-1
2 53 2.9 Wi n d o w s Wi n d o w s Windows NT Windows 2000
3 Microsoft Windows NT Windows 2000 Windows 95 Windows 98 Windows CE interprocess communication, I P C M a i l s l o t T C P / I P I P X 3.1 Wi n d o w s Wi n 32 I / O R e a d F i l e Wr i t e F i l e Wi n 32 Wi n d o w s Mailslot File System, MSFS 2 Wi n d o w s 3.1.1
3 55 \ \ s e r v e r \ M a i l s l o t \ [ p a t h ] n a m e \\ s e r v e r \ M a i l s l o t \ [ p a t h ] n a m e \\ s e r v e r \ M a i l s l o t M S F S \[ p a t h ] n a m e p a t h M a i l s l o t \ \ O r e o \ M a i l s l o t \ M y m a i l s l o t \ \ Te s t s e r v e r \ M a i l s l o t \ C o o l d i r e c t o r y \ F u n t e s t \ A n o t h e r m a i l s l o t \ \. \ M a i l s l o t \ E a s y m a i l s l o t \ \ * \ M a i l s l o t \ M y s l o t. * Wi n d o w s Wi n d o w s Wi n d o w s S M B Wi n d o w s Windows NT Windows 2000 3.1.2 D a t a g r a m Windows NT Windows 2000 424 Windows NT Windows 2000 426 S M B Windows NT Windows 2000 Windows NT Windows 2000 Windows NT Windows 2000 Windows 95
56 API Windows 98 Windows 95 Windows 98 Windows 95 Windows 98 424 Windows NT Windows 2000 Windows NT Windows 2000 424 Windows NT Windows 2000 S M B Windows NT Windows 2000 Windows 95 Windows 98 Windows 95 Windows 98 426 Windows NT Windows 2000 Windows 95 Windows 98 3-1 Windows CE 3-1 Windows NT Windows 2000 425 4 26 Windows 95 Windows 98 - > Windows 95 Windows 98 Windows NT Windows 2000 - > Windows NT Windows 2000 Windows NT Windows 2000 - > Windows 95 Windows 98 Windows 95 Windows 98 3-1 64 K B 424 426 424 424 - > Windows NT Windows 2000 Windows NT Windows 2000 Windows NT Windows 2000 425 4 26 Windows NT Windows 2000 Windows 95 Windows 98 Windows NT Windows 2000 Windows NT 4 2 4 Wi n d o w s 424 4 3.1.3 Microsoft Visual C++ Wi n b a s e. h Wi n d o w s. Wi n b a s e. h K e r n e l 32. l i b Visual C++
3 57 3.1.4 Win32 API C r e a t e F i l e C r e a t e M a i l s l o t 0 C r e a t e F i l e C r e a t e M a i l s l o t A P I I N VA L I D _ H A N D L E _ VA L U E A P I G e t L a s t E r r o r C Wi n d o w s Wi n e r r o r. h 3.2 3.2.1 1) CreateMailslot API 2) ReadFile API 3) C l o s e H a n d l e A P I A P I C r e a t e M a i l s l o t A P I l p N a m e \ \. \ M a i l s l o t \ [ p a t h ] n a m e l p N a m e n M a x M e s s a g e S i z e n M a x M e s s a g e S i z e 0 l R e a d Ti m e o u t M A I L S L O T _ WA I T _ F O R E V E R 0
58 API l p S e c u r i t y A t t r i b u t e s Windows NT Windows 2000 n u l l I / O.. I / O Windows NT Windows 2000 I / O l p S e c u r i t y A t t r i b u t e s Windows NT Windows 2000 R e a d F i l e Wi n 32 R e a d F i l e C r e a t e M a i l s l o t h F i l e l p B u ff e r n N u m b e r O f B y t e s To R e a d CreateMailslot API n M a x M e s s a g e S i z e R e a d F i l e E R R O R _ I N S U F F I C I E N T _ B U F F E R l p N u m b e r O f B y t e s R e a d R e a d F i l e l p O v e r l a p p e d Wi n 32 I / O 4 R e a d F i l e I / O Windows NT Windows 2000 Windows 95 Windows 98 N U L L 3-1 3-1
3 59 3.2.2 1) C r e a t e F i l e A P I 2) Wr i t e F i l e A P I 3) C l o s e H a n d l e A P I C r e a t e F i l e A P I l p F i l e N a m e 3-2 d w D e s i r e d A c c e s s G E N E R I C _ W R I T E d w S h a r e M o d e F I L E _ S H A R E _ R E A D l p S e c u r i t y A t t r i b u t e s N U L L d w C r e a t i o n D i s p o s i t i o n O P E N _ E X I S T I N G A P I C r e a t e F i l e d w C r e a t i o n D i s p o s i t i o n 3-2 \ \. \ m a i l s l o t \ n a m e \\ s e r v e r n a m e \ m a i l s l o t \ n a m e s e r v e r n a m e \\ d o m a i n n a m e \ m a i l s l o t \ n a m e d o m a i n n a m e \\*\ m a i l s l o t \ n a m e n a m e
60 API d w F l a g s A n d A t t r i b u t e s F I L E _ AT T R I B U T E _ N O R M A L h Te m p l a t e F i l e N U L L Wi n 32 Wr i t e F i l e h F i l e C r e a t e F i l e l p B u ff e r n N u m b e r O f B y t e s To Wr i t e 64 K B * Windows NT Windows 2000 424 Windows 95 Windows 98 64 K B Wr i t e F i l e G e t L a s t E r r o r E R R O R _ B A D _ N E T PAT H l p N u m b e r O f B y t e s Wr i t t e n Wr i t e F i l e l p O v e r l a p p e d Wr i t e F i l e I / O N U L L 3-2 3-2
3 61 3.3 API A P I G e t M a i l s l o t I n f o S e t M a i l s l o t I n f o G e t M a i l s l o t I n f o G e t M a i l s l o t I n f o G e t M a i l s l o t I n f o h M a i l s l o t CreateMailslot API l p M a x M e s s a g e S i z e l p N e x t S i z e G e t M a i l s l o t I n f o M A I L S L O T _ N O _ M E S S A G E R e a d F i l e C P U R e a d F i l e Wi n 32 I / O l p M e s s a g e C o u n t l p R e a d Ti m e o u t S e t M a i l s l o t I n f o S e t M a i l s l o t I n f o
62 API b M a i l s l o t CreateMailslot API l R e a d Ti m e o u t 0 M A I L S L O T _ WA I T _ F O R E V E R 3.4 Windows 95 O S R 2 Windows 98 8. 3 I / O 3.4.1 8.3 Windows 95 Windows 98 8. 3 Windows 95/98 Windows NT/2000 \\.\ M a i l s l o t \ M y m a i l s l o t Windows 95 \\.\ M a i l s l o t \ M y m a i l s l C r e a t e M a i l s l o t C r e a t e F i l e Windows 2000 Windows 95 Windows 95 8 3.4.2 I/O Windows 95 Windows 98 I / O R e a d F i l e M A I L S L O T _ WA I T _ P O R E V E R R e a d F i l e Wi n d o w s 3-3 3-3
3 63
64 API 3.4.3 Windows 95 Windows 98 C r e a t e M a i l s l o t 0 R e a d F i l e FA L S E R e a d F i l e R e a d F i l T R U E M S - D O S 0 M A I L S L O T _ WA I T _ F O R E V E R h t t p : // s u p p o r t. m i c r o s o f t. c o m / s u p p o r t / s e a r c h Q 1 3 9 7 1 5 R e a d F i l e
3 65 C r e a t e M a i l s l o t R e a d F i l e R e a d F i l e G e t L a s t E r r o r 5 Q 192276 G e t M a i l s l o t I n f o l p N e x t S i z e Windows 95 OEM Service Release 2 O S R 2 Windows 98 A P I G e t M a i l s l o t I n f o l p N e x t S i z e Q 170581 Wi n 95 4093 Wr i t e F i l e A P I 4093 Windows 95 Q 1 3 1 4 9 3 C r e a t e F i l e A P I C r e a t e F i l e C r e a t e F i l e 3.5 M a i l s l o t Wi n d o w s Wi n d o w s
4 Named Pipes I P C Microsoft Windows NT Windows 2000 Windows 95 Windows 98 Windows CE T C P / I P I P X M S N P Windows NT Windows 2000 Windows NT Windows 2000 4.1 Wi n d o w s N a m e d Pipe File System, NPFS Wi n 32 A P I R e a d F i l e Wr i t e F i l e A P I Wi n 32 Windows NT/Windows 2000 N P F S M S N P T C P I P X N P F S U N C 2 U N C Wi n d o w s
4 67 4.1.1 U N C \ \ s e r v e r \ P i p e \ [ p a t h ] n a m e \\ s e r v e r \ P i p e \ [ p a t h ] n a m e \\ s e r v e r \ P i p e N P F S \[ p a t h ] n a m e \ \ m y s e r v e r \ P I P E \ m y p i p e \ \ Te s t s e r v e r \ p i p e \ c o o l d i r e c t o r y \ f u n t e s t \ j i m \ \. \ P i p e \ E a s y n a m e d p i p e. 4.1.2 4-1 2 3 4-1 4.1.3 Microsoft Visual C++ Wi n b a s e. h Wi n d o w s.
68 API Wi n b a s e. h K e r n e l 32. l i b Visual C++ 4.1.4 Win32 API C r e a t e F i l e C r e a t e N a m e d P i p e 0 C r e a t e F i l e C r e a t e N a m e d P i p e I N VA L I D _ H A N D L E _ VA L U E G e t L a s t E r r o r Wi n e r r o r. h C 4.2 Wi n 32 R e a d F i l e Wr i t e F i l e Windows NT Windows 2000 Windows 95 Windows 98 Windows 95 Windows 98 Windows 95 Windows Windows NT Windows 2000 4.2.1 1) A P I C r e a t e N a m e d P i p e 2) A P I C o n n e c t N a m e d P i p e 3) R e a d F i l e Wr i t e F i l e A P I 4) A P I D i s c o n n e c t N a m e d P i p e 5) A P I C l o s e H a n d l e C r e a t e N a m e d P i p e A P I
4 69 l p N a m e U N C [ p a t h ] n a m e d w O p e n M o d e I / O 4-1 O R P I P E _ A C C E S S _ P I P E _ A C C E S S _ D U P L E X P I P E _ A C C E S S _ I N B O U N D P I P E _ A C C E S S _ O U T B O U N D 4-2 4-1 P I P E _ A C C E S S _ D U P L E X P I P E _ A C C E S S _ O U T B O U N D P I P E _ A C C E S S _ I N B O U N D I / O F I L E _ F L A G _ W R I T E _ T H R O U G H W R I T E _ D A C F I L E _ F L A G _ O V E R L A P P E D A C C E S S _ S Y S T E M _ S E C U R I T Y W R I T E _ O W N E R I / O D A C L S A C L S I D d w O p e n M o d e I / O F I L E _ F L A G _ W R I T E _ T H R O U G H F I L E _ F L A G _ O V E R L A P P E D I / O
70 API P I P E _ A C C E S S _ D U P L E X G E N E R I C _ R E A D I G E N E R I C _ W R I T E P I P E _ A C C E S S _ O U T B O U N D G E N E R I C _ R E A D P I P E _ A C C E S S _ I N B O U N D G E N E R I C _ W R I T E 4-2 4-1 d w O p e n M o d e W R I T E _ D A C D A C L A C C E S S _ S Y S T E M _ S E C U R I T Y S A C L W R I T E _ O W N E R I D S I D A P I D A C L 2 D A C L S A C L S I D C r e a t e N a m e d P i p e A P I d w P i p e M o d e 4-2 O R P I P E _ R E A D M O D E _ BYTE PIPE_TYPE_BYTE 500 10 PIPE_READMODE_MESSAGE PIPE_TYPE_MESSAGE 500 R e a d F i l e 500 R e a d F i l e E R R O R _ M O R E _ D ATA P I P E _ T Y P E _ M E S S A G E P I P E _ R E A D M O R E _ B Y T E P I P E _ T Y P E _ B Y T E P I P E _ R E A D M O R E _ M E S S A G E C r e a t e N a m e d P i p e E R R O R _ I N VA L I D _ PA R A M E T E R I / O P I P E _ WA I T P I P E _ N O WA I T P I P E _ WA I T P I P E _ N O WA I R e a d F i l e I / O
4 71 I / O P I P E _ N O WA I TI / O Wi n 32 I / O Microsoft LAN Manager 2.0 R e a d F i l e Wr i t e F i l e Wi n 32 I / O I / O 4-2 P I P E _ T Y P E _ B Y T E P I P E _ T Y P E _ M E S S A G E P I P E _ R E A D M O D E _ B Y T E P I P E _ R E A D M O D E _ M E S S A G E P I P E _ WA I T P I P E _ N O WA I T PIPE_NOWAIT Win32 I/O Microsoft LAN Manager 2.0 n M a x I n s t a n c e s 1 P I P E _ U N L I M I T E D _ I N S TA N C E S 5 P I P E _ U N L I M I T E D _ I N S TA N C E S C r e a t e N a m e d P i p e n O u t B u ff e r S i z e n I n B u ff e r S i z e I / O R e a d F i l e Wr i t e F i l e n D e f a u l t Ti m e O u t Wa i t N a m e P i p e l p S e c u r i t y A t t r i b u t e s N U L L 2 Windows NT Windows 2000 A P I S E C U R I T Y _ D E S C R I P TO R
72 API S E C U R I T Y _ D E S C R I P TO R D A C L C r e a t e N a m e d P i p e C o n n e c t N a m e d P i p e A P I h N a m e d P i p e C r e a t e N a m e d P i p e l p O v e r l a p p e d A P I F I L E _ F L A G _ O V E R L A P P E D Wi n 32 I / O N U L L C o n n e c t N a m e d P i p e I / O C o n n e c t N a m e d P i p e A P I Wr i t e F i l e R e a d F i l D i s c o n n c t N a m e d P i p e 4-1 4-1
4 73 NULL DACL Windows NT Windows 2000 Win32 API SECURITY_ATTRIBUTES l p S e c u r i t y D e s c r i p t o r S E C U R I T Y _ D E S C R I P TO R S E C U R I T Y _ D E S C R I P TO R D A C L N U L S E C U R I T Y _ D E S C R I P TO R Wi n 32 A P I S E C U R I T Y _ D E S C R I P TO R D A C L 1) S E C U R I T Y _ D E S C R I P TO R A P I I n i t i a l i z e S e c u r i t y D e s c r i p t o r 2) S E C U R I T Y _ D E S C R I P TO R D A C L A P I S e t S e c u r i t y D e s c r i p t o r D a c l S E C U R I T Y _ D E S C R I P TO R S E C U R I T Y _ AT T R I B U T E S C r e a t e N a m e d P i p e Wi n 32 S E C U R I T Y _ AT T R I B U T E S D A C L A P I
74 API 4.2.2 4-1 A P I I / O C r e a t e N a m e d P i p e A P I n M a x I n s t a n c e s Win32 I/O I / O I / O I / O Wi n d o w s 8 1. 4-2 E c h o 4-2 Wi n 32
4 75
76 API A P I C r e a t e T h r e a d C r e a t e T h r e a d P i p e I n s t a n c e P r o c P i p e I n s t a n c e P r o c 4-1 D i s c o n n e c t N a m e d P i p e A P I D i s c o n n e c t N a m e d P i p e C o n n e c t N a m e P i p e 2. I / O I / O Win32 API R e a d F i l e Wr i t e F i l e I / O A P I O V E R L A P P E D A P I G e t O v e r l a p p e d R e s u l t O V E R L A P P E D I / O Win32 API I / O C r e a t e N a m e d P i p e n M a x I n s t a n c e s 1 d w O p e n M o d e F I L E _ F L A G _ O V E R L A P P E D 4-3
4 77 4-3 Wi n 32 I / O
78 API
4 79
80 API C r e a t e N a m e d P i p e I / O C o n n e c t N a m e d P i p e I / O D i s c o n n e c t N a m e d P i p e C o n n e c t N a m e d P i p e 3. Windows NT Windows 2000 Windows NT Windows 2000 Windows NT Windows 2000 C r e a t e N a m e d P i p e S E C U R I T Y _ D E S C R I P TO R C o n n e c t N a m e d P i p e A P I I m p e r s o n a t e N a m e d P i p e C l i e n t h N a m e d P i p e C r e a t e N a m e d P i p e A n o n y m o u s I d e n t i f i c a t i o n I m p e r s o n a t i o n D e l e g a t i o n
4 81 R e v e r t To S e l f R e v e r t To S e l A P I 4.2.3 1) A P I Wa i t N a m e d P i p e 2) A P I C r e a t e F i l e 3) A P I Wr i t e F i l e R e a d F i l e 4) A P I C l o s e H a n d l e Wa i t N a m e d P i p e l p N a m e d P i p e N a m e n Ti m e O u t C o n n e c t N a m e d P i p e Wa i t N a m e d P i p e C r e a t e F i l A P I C r e a t e F i l e l p F i l e N a m e 4 d w D e s i r e d A c c e s s G E N E R I C _ R E A D G E N E R I C _ W R I T E O R C r e a t e N a m e d P i p e d w O p e n M o d e P I P E _ A C C E S S _ I N B O U N D G E N E R I C _ W R I T E d w S h a r e M o d e 0
82 API l p S e c u r i t y A t t r i b u t e s N U L L C r e a t e F i l e d w C r e a t i o n D i s p o s i t i o n O P E N _ E X I S T I N G C r e a t e F i l e d w F l a g s A n d A t t r i b u t e s F I L E _ AT T R I B U T E _ N O R M A L F I L E _ F L A G _ W R I T E _ T H R O U G H F I L E _ F L A G _ O V E R L A P P E D S E C U R I T Y _ S Q O S _ P R E S E N T F I L E _ AT T R I B U T E _ N O R M A L O R F I L E _ F L A G _ W R I T E _ T H R O U G H F I L E _ F L A G _ O V E R L A P P E D 4-1 S E C U R I T Y _ S Q O S _ P R E S E N T S E C U R I T Y _ S Q O S _ P R E S E N T S E C U R I T Y _ A N O N Y M O U S A n o n y m o u s S E C U R I T Y _ I D E N T I F I C AT I O N I d e n t i f i c a t i o n S E C U R I T Y _ I M P E R S O N AT I O N I m p e r s o n a t i o n S E C U R I T Y _ D E L E G AT I O N D e l e g a t i o n Windows 2000 SECURITY_DELEGATION Windows NT 4 SP6 S E C U R I T Y _ C O N T E X T _ T R A C K I N G S E C U R I T Y _ E F F E C T I V E _ O N LY 4. 2. 1 C r e a t e F i l e h Te m p l a t e F i l e N U L L C r e a t e F i l e R e a d F i l e Wr i t e F i l
4 83 C l o s e H a n d l e 4-4 A P I This is a test 4-4 4.3 API C a l l N a m e d P i p e
84 API Tr a n s a c t N a m e d P i p e A P I C a l l N a m e d P i p e C a l l N a m e d P i p e l p N a m e d P i p e N a m e U N C l p I n B u ff e r n I n B u ff e r S i z e l p O u t B u ff e r n O u t B u ff e r S i z e l p B y t e s R e a d n Ti m e O u t Tr a n s a c t N a m e d P i p e A P I M S N P I / O Tr a n s a c t N a m e d P i p e h N a m e d P i p e C r e a t e N a m e d P i p e C r e a t e F i l e A P I l p I n B u ff e r n I n B u ff e r S i z e l p O u t B u ff e r n O u t B u ff e r S i z e l p B y t e s R e a d l p O v e r l a p p e d Tr a n s a c t N a m e d P i p e I / O G e t N a m e d P i p e H a n d l e S t a t e S e t N a m e d P i p e H a n d l e S t a t e G e t N a m e d P i p e I n f o G e t N a m e d P i p e H a n d l e S t a t e
4 85 G e t N a m e d P i p e H a n d l e S t a t e G e t N a m e d P i p e H a n d l e S t a t e h N a m e d P i p e C r e a t e N a m e d P i p e C r e a t e F i l e A P I l p S t a t e l p S t a t P I P E _ N O WA I T P I P E _ R E A D M O D E _ M E S S A G E l p C u r I n s t a n c e s l p M a x C o l l e c t i o n C o u n t l p C o l l e c t D a t a Ti m e o u t l p U s e r N a m e n M a x U e r N a m e S i z e S e t N a m e d P i p e H a n d l e S t a t e G e t N a m e d P i p e H a n d l e S t a t e S e t N a m e d P i p e H a n d l e S t a t e h N a m e d P i p e C r e a t e N a m e d P i p e C r e a t e F i l e A P I l p M o d e l p M a x C o l l e c t i o n C o u n t l p C o l l e c t D a t a Ti m e o u t G e t N a m e d P i p e I n f o A P I h N a m e d P i p e C r e a t e N a m e d P i p e C r e a t e F i l e A P I l p F l a g s l p O u t B u ff e r S i z e
86 API l p I n B u ff e r S i z e l p M a x I n s t a n c e A P I P e e k N a m e d P i p e R e a d F i l e A P I P e e k N a m e d P i p e h N a m e d P i p e C r e a t e N a m e d P i p e C r e a t e F i l e A P I l p B u ff e r n B u ff e r S i z e l p B y t e s R e a d l p To t a l B y t e s Av a i l l p B y t e s L e f t T h i s M e s s a g e l p B u ff e r 0 4.4 h t t p : / / s u p p o r t. m i c r o s o f t. c o m / s u p p o r t Q 1 0 0 2 9 1 \\.\ P i p e \ M y p i p e s \\. P i p e \ M y p i p e s \ P i p e 1 \\.\ P i p e \ M y p i p e s Q 119218 64 K A P I Wr i t e F i l e 64 K B FA L S E G e t L a s t E r r o r E R R O R _ M O R E _ D ATA Q 110148 Wr i t e F i l e R e a d F i l e E R R O R _ I N VA L I D _ PA R A M E T E R I / O Wr i t e F i l e R e a d F i l e E R R O R _ I N VA L I D _ PA R A M E T E R O V E R L A P P E D O ff s e t O ff s e t H i g h 0 Q 1 8 0 2 2 2 Windows 95 Wa i t N a m e d P i p e 2 5 3 Windows 95 Wa i t N a m e d P i p e G e t L a s t E r r o r 253 Windows NT 4
4 87 1 61 E R R O R _ B A D _ PAT H N A M E 253 161 E R R O R _ B A D _ PAT H N A M E Q 141709 4 49 49 Q 1 2 6 6 4 5 Windows NT 5 4.5 Wi n d o w s Windows NT Wi n d o w s 2 0 0 0 Wi n s o c k
Winsock API Wi n 32 Wi n s o c k Wi n s o c k Wi n 32 Wi n s o c k Wi n s o c k U n i x B e r k e l e y B S D Wi n 32 Wi n s o c k Winsock 2 Wi n s o c k Wi n s o c k Winsock 2 Q o S Winsock 2 Winsock 2 Wi n 32 Windows CE Wi n s o c k B S D Wi n s o c k 5 Winsock 2 Wi n s o c k 5.1 5.1.1 5-1 128 6 4 3 2 256 128 6 4 3 2
90 Winsock API preserving message boundaries 32 128 Win32 64 64 Win32 128 32 5-1 5-2 128 6 4 3 2 2 N a g l e T C P / I P N a g l e N a g l e 5-2 256 224 20 2 p s e u d o - s t r e a m 5-1 5-2
5 91 32 Win32 64 ------------ 128 224 Win32 5-2 5.1.2 5.1.3
92 Winsock API 5.1.4 T C P F I N A C K F I N F I F I N A C K 5.1.5 L A N L A N L A N 5.1.6 I P I P 11 Wi n s o c k 5.1.7 Q o S Q o S Q o S 12 Q o S
5 93 5.1.8 5.1.9 A B A B B N e t B E U I Wi n 3 2 5.1.10 Wi n 3 2 Wi n s o c k Winsock 2 5. 3 5.2 Wi n 3 2 2 Wi n d o w s Wi n s o c k 6 Wi n s o c k 5.2.1 Win32 Wi n 3 2
94 Winsock API I P 5-1 5-1 ( ) I P MSAFD TCP MSAFD UDP 65467 RSVP TCP RSVP UDP 65467 I P X / S P X MSAFD 576 nwlnkipx[ipx] M S A F D n w l n k s p x [ S P X ] M S A F D n w l n k s p x [ S P X ][ ] M S A F D n w l n k s p x [ S P X I I ] M S A F D n w l n k s p x [ S P X I I ][ ] N e t B I O S 64 K B ( 65535 ) 64 K B ( S P 25 ) ( 65535 ) A p p l e Ta l k M S A F D 64 K B A p p l e Ta l k [ A D S P ] ( 65535 ) M S A F D A p p l e Ta l k [ A D S P ][ ] M S A F D 4096 A p p l e Ta l k [ PA P ] M S A F D A p p l e Ta l k [ RT M P ] M S A F D A p p l e Ta l k [ Z I P ] AT M MSAFD ATM AAL5 AT M ( A A L 5 ) MSAFD lrda[lrda] NetBIOS NetBIOS 5.2.2 Windows CE Windows CE Wi n 32 T C P / I P Windows CE Winsock 1.1 Winsock 2 Windows CE T C P / I P N e t B I O S NetBIOS API Wi n s o c k N e t B I O S 5.3 Winsock 2 Winsock 2
5 95 T C P / I P I P T C P I P W S A E n u m P r o t o c o l s Winsock 1.1 E n u m P r o t o c o l s E n u m P r o t o c o l s Windows CE W S A E n u m P r o t o c o l s W S A P R O TO C O L S _ I N F O E n u m P r o t o c o l s P R O TO C O L _ I N F O W S A P R O TO C O L S _ I N F O W S A P R O TO C O L _ I N F O Winsock Wi n s o c k Wi n s o c Wi n s o c k W S A S t a r t u p int WSAStartup(WORD wve r s i o n R e q u e s t e d, L P W S A D ATA lpwsadata) Wi n s o c k Wi n 32 Winsock 2 2. 2 Windows CE Winsock 1.1 Winsock 2.2 0 x 0202 M A K E W O R D ( 2, 2 ) W S A D ATA W S A D
96 Winsock API W S A S t a r t u p Wi n s o c k 5-2 W S A D ATA W S A D ATA W S A D ATA w Ve r s i o n w H i g h Ve r s i o n U D P 5-2 WSADATA w Ve r s i o n w H i g h Ve r s i o n s z D e s c r i p t i o n s z S y s t e m S t a t u s i M a x S o c k e t s i M a x U d p D g l p Ve n d o r I n f o Wi n s o c k Wi n s o c k Wi n s o c k w Ve r s i o n Wi n s o c k Winsock 2 U D P Winsock 2 Winsock 2 Wi n s o c k Wi n s o c k int WSACleanup (void); W S A S t a r t u p W S A C l e a n u p Winsock DLL W S A C l e a n u p Winsock 2 Winsock 1.1 Wi n s o c k 1. 1 Winsock 2 Winsock 1.1 Winsock 2 W S A E n u m P r o t o c o l s N U L L l p d w B u ff e r L e n g t h l p P r o t o c o l B u ff e r 0 W S A E N O B U F S l p d w B u ff e r L e n g t h W S A P R O TO C O L _ I N F O C D - R O M E n u m. c W S A P R O TO C O L _ I N F O d w S e r v i c e F l a g s 1 5 3 d w S e r v i c e F l a g s 1
5 97 5-3 X P l _ C O N N E C T I O N L E S S X P l _ G U A R A N T E E D _ D E L I V E RY X P l _ G U A R A N T E E D _ O R D E R X P l _ M E S S A G E _ O R I E N T E D X P l _ P S E U D O _ S T R E A M X P l _ G R A C E F U L _ C L O S E X P l _ E X P E D I T E D _ D ATA X P l _ C O N N E C T _ D ATA X P l _ D I S C O N N E C T _ D ATA X P l _ S U P P O RT _ B R O A D C A S T X P l _ S U P P O RT _ M U LT I P O I N T X P l _ M U LT I P O I N T _ C O N T R O L _ P L A N E X P l _ M U LT I P O I N T _ D ATA _ P L A N E X P l _ Q O S _ S U P P O RT E D X P l _ U N I _ S E N D X P l _ U N I _ R E C V X P l _ I F S _ H A N D L E S X P l _ PA RT I A L _ M E S S A G E Q o S Installable File System ReadFile Wr i t e F i l e A P I W S A S e n d W S A S e n d To M S G _ PA RT I A L i P r o t o c o l i S o c k e t Ty p e i A d d r e s s F a m i l y i P r o t o c o l i S o c k e t Ty p e i A d d r e s s F a m i l y 5.4 Windows Wi n s o c k Wi n s o c k A P I Wi n 32 S O C K E T
98 Winsock API a f U D P T C P A F _ I N E T I P t y p e S O C K _ S T R E A M S O C K _ D G R A M S O C K _ S E Q PA C K E T S O C K _ R AW S O C K _ R D M p r o t o c o l 5-4 5-4 I n t e r n e t A F _ I N E T T C P S O C K _ S T R E A M I P P R O TO _ I P P r o t o c o l ( I P ) U D P S O C K _ D G R A M I P P R O TO _ U D P Raw sockets S O C K _ R AW I P P R O TO _ R AW I P P R O TO _ I C M P I P X / S P X A F / N S M S A F D S O C K _ D G R A M N S P R O TO _ I P X n w l n k i p x [ I P X ] A F _ I P X M S A F D S O C K _ S E Q PA C K E T N S P R O TO _ S P X n w l n k s p x [ S P X ] M S A F D S O C K _ S T R E A M N S P R O TO _ S P X n w l n k s p x [ S P X ] [ P s e u d o - s t r e a m ] M S A F D S O C K _ S T R E A M N S P R O TO _ S P X I I n w l n k s p x [ S P X I I ] M S A F D S O C K _ S T R E A M N S P R O TO _ S P X I I n w l n k s p x [ S P X I I ] [ P s e u d o - s t r e a m ] N e t B I O S A F _ N E T B I O S S e q u e n t i a l S O C K _ S E Q PA C K E T LANA n u m b e r P a c k e t s D a t a g r a m s S O C K _ D G R A M LANA n u m b e r A p p l e Ta l k A F _ A P P L E TA L K M S A F D S O C K _ R D M AT P R O TO _ A D S P A p p l e Ta l k [ A D S P ] M S A F D S O C K _ S T R E A M AT P R O TO _ A D S P A p p l e Ta l k [ A D S P ] [ P s e u d o - s t r e a m ] M S A F D S O C K _ R D M AT P R O TO _ PA P A p p l e Ta l k [ PA P ] M S A F D S O C K _ D G R A M D D P P R O TO _ RT M P A p p l e Ta l k [ RT M P ] M S A F D S O C K _ D G R A M D D P P R O TO _ Z I P A p p l e Ta l k [ Z I P ] AT M A F _ AT M MSAFD ATM AAL5 S O C K _ R AW AT M P R O TO _ A A L 5 Native AT M ( A A L 5 ) S O C K _ R AW AT M P R O TO _ A A L 5 I n f r a r e d A F _ I R D A MSAFD Irda[IrDA] S O C K _ S T R E A M I R D A _ P R O TO S o c k e t s _ S O C K _ S T R E A M
5 99 AT M A F _ AT M S O C K _ R AW 0 a f t y p e W S A P R O TO C O L _ I N F O d w P r o v i d e r F l a g s s o c k e t W S A S o c k e t 0 W S A S o c k e t W S A E n u m P r o t o c o l s W S A P R O TO C O L _ I N F O l p P r o t o c o l I n f o W S A S o c k e t a f t y p e p r o t o c o l F R O M _ P R O TO C O L _ I N F O W S A P R O TO C O L _ I N F O W S A S o c k e t 0 Wi n s o c k d w F l a g s W S A _ F L A G _ O V E R L A P P E D W S A _ F L A G _ M U LT I P O I N T _ C _ R O O T W S A _ F L A G _ M U LT I P O I N T _ C _ L E A F W S A _ F L A G _ M U LT I P O I N T _ D _ R O O F W S A _ F L A G _ M U LT I P O I N T _ D _ L E A F W S A _ F L A G _ O V E R L A P P E D I / O Wi n s o c k 8 s o c k e t W S A _ F L A G _ O V E R L A P P E D W S A S o c k e t W S A S o c k e t W S A P R O TO C O L _ I N F O I P U D P I C M PI C M I C M P U D P T C P I P 13 5.5 Windows 95 Winsock 1.1 Wi n s o c k We b h t t p :// w w w. m i c r o s o f t. c o m / Windows 95/downloads/ Wi n s o c k 2 SDK Winsock 2 Windows 98 Windows NT 4 Windows 2000 Wi n s o c k 2 Windows CE Winsock 1.1
100 Winsock API Windows CE T C P / I P Windows 95 Windows 98 Winsock API N e t B I O S A F _ N E T B I O S W S A E n u m P r o t o c o l s N e t B I O S N e t B I O S N e t B I O S N e t B I O 1 R S V P Q o S AT M Windows 98 Windows 2000 Winsock API OSI O S I 4 1-1 Wi n s o c k W S A E n u m P r o t o c o l s O S I U D P T C P I Winsock API Wi n s o c k Wi n d o w s Wi n s o c k Wi n s o c k 5.6 T C P / I P A p p l e Ta l k N e t B I O S I P X / S P X Windows 95 N e t B E U I I P X / S P X T C P / I P Windows 2000 T C P / I P N e t B I O S T C P / I P T C P / I P AT M AT Wi n s o c k AT M T C P / I P AT M T C P / I P T C P / I 5.7
5 101 W S A S o c k e t s o c k e t W S A E n u m P r o t o c o l s W S A P R O TO C O L _ I N F O W S A S o c k e t
6 Wi n s o c k Wi n s o c k Winsock 2 g e t s o c k o p t 10 10 6.1 IP Internet Protocol, IP L A N WA N I P T C P U D P I P 6.1.1 TCP Transmission Control Protocol, TCP T C P T C 6.1.2 UDP User Datagram Protocol, UDP U D P T C P U D P I P T C P / I P U D P / I P Wi n s o c k A F _ I N E T I P Winsock 1.h Winsock 2.h 6.1.3 I P I 32 I P v 4 T C P U D P I
6 103 I P Wi n s o c k S O C K A D D R _ I N I P s i n _ f a m i l y A F _ I N E T Wi n s o c k I P IP 6 I P 6 I P I 16 I P v 4 I P v 6 Wi n s o c k I P v 6 Wi n 32 I P v 6 Wi n d o w s 2000 I P v 6 h t t p :// r e s e a r c h. m i c r o s o f t. c o m / m s t r i p v 6 / 6 T C P U D P s i n _ p o r t F T P H T T P I A N A RFC 1700 0 ~ 1 0 2 3 I A N A 1 0 2 4 ~ 4 9 1 5 1 I A N A 4 9 1 5 2 ~ 6 5 5 3 5 1024 ~ 49151 49152 ~ 65535 I A N A bind API Wi n s o c k W S A E A D D R I N U S E 7 Wi n s o c k S O C K A D D R _ I N s i n _ a d d r I P 4 I P I P a. b. c. d 4 sin_ zero S O C K A D D R _ I N S O C K A D D R i n e t _ a d d r I P 32 unsigned long inet_addr( const char FAR *cp );
104 Winsock API c p I P I 32 1. I P I N A D D R _ A N Y I N A D D R _ B R O A D C A S T I P U D P S O _ B R O A D C A S T 9 2. b i g - e n d i a n l i t t l e - e n d i a n Intel 86 I P h o s t - b y t e I P n e t w o r k - b y t e A P I h t o n l W S A H t o n l h o s t l o n g 4 h t o n l W S A H t o n l l p n e t l o n g h t o n s W S A H t o n s h o s t s h o r t 2 h t o n s 2 W S A H t o n s l p n e t s h o r t
6 105 i n e t _ a d d r h t o n s S O C K A D D R _ I N 6.1.4 I P T C P U D P I P T C P I P A F _ I N E T S O C K _ S T R E A M s o c k e t W S A S o c k e t 0 U D P I P s o c k e t S O C K _ S T R E A M W S A S o c k e t I P S O C K _ R AW 13 S O C K _ R AW 6.1.5 Wi n s o c k I P I I I P Wi n s o c k I P Wi n d o w s g e t h o s t b y n a m e WSAAsynGetHostByName API H O S T E N T
106 Winsock API h _ n a m e D N S F Q D N I P h _ a l i a s e s h _ a d d r t y p e h _ l e n g t h h _ a d d r _ l i s t h _ a d d r _ l i s t I P I P gethostbyname API n a m e H O S T E N T H O S T E N T WSAAsyncGetHostByName API g e t h o s t b y n a m e Wi n d o w s W S A A s y n G e t H o s t B y N a m e b W n d w M s g n a m e b u f H O S T E N T H O S T E N M A X G E T H O S T S T R U C T g e t h o s t b y a d d r WSAAsynGetHostByName API I P I g e t h o s t b y a d d r a d d r I P l e n a d d r t y p e A F _ I N E T I P WSAAsyncGetHostByAddr API g e t h o s t b y a d d r
6 107 I P T C P U D P T C P T C P S P X 21 F T P 80 F T T P 1 ~ 1023 T C P 1023 g e t s e r v b y n a m e W S A A s y n c G e t S e r v B y N a m e s e r v i c e s Windows 95 Windows 98 W I N D O W S Windows NT Windows 2000 W I N D O W S \ S y s t e m 32 \ D r i v e r s \ E t c g e t s e r v b y n a m e n a m e F T P n a m e f t pp r o t o n a m e W S A A s y n c G e t S e r v B y N a m e g e t s e r v b y n a m e Windows 2000 T C P U D P W S A S e t S e r v i c e I P A P I W S A L o o k u p S e r v i c e B e g i n W S A L o o k u p S e r v i c e N e x t W S A L o o k u p S e r v i c e E n d 10 6.2 I r S o c k Wi n d o w s Windows 98 Windows 2000 6.2.1 Infrared Data Association, IrDA I r D A I r D A Wi n s o c k I P I r S o c k T C P / I P I P I r S o c k
108 Winsock API i r d a A d d r e s s F a m i l y A F _ I R D A i r d a D e v i c e I D 4 I r S o c k I r D A i r d a S e r v i c e N a m e 6.2.2 I r D A L S A P - S E L I A S I A S L S A P - S E L I P L S A P - S E L L S A P - S E L I r D A Wi n 32 L S A P - S E L 1 1 27 I A S W I N S L S A P - S E L I A S M y S e r v e r S O C K A D D R _ I R D A I A S M y S e r v e r I r D A : Ti n y T P : L s a p - S E L 3 L S A P - S E L L S A P - S E L S O C K A D D R _ I R D A I A S M y S e r v e r I r D A : Ti n y T P : L s a p - S E L I A S 3 g e t s o c k e t o p t I R L M P _ I A S _ Q U E RY I A S I A S L A S P - S E L I A S I A I r D A S O C K A D D R _ I R D A L S A P - S E L - x x x I A S x x x 1 1 27 L S A P - S E L L S A P - S E L I A S L S A P - S E L 6.2.3 Windows CE Windows 98 Wi n d o w s 2000 Windows CE I r S o c k Windows 98 Windows 2000 I r S o c k
6 109 Windows CE A F _ i r d a. h I r S o c k A f _ i r d a. h g e t s o c k o p t I R L M P _ E N U M _ D E V I C E D E V I C E L I S T o p t v a l Windows 98 Wi n d o w s 2000 Windows CE Windows 98 Windows 2000 Windows CE Windows 98 Windows 2000 W I N D O W S _ I R D A _ D E V I C E _ I N F O W C E _ I R D A _ D E V I C E _ I N F O # d e f i n e D E V I C E L I S T I R D A _ D E V I C E _ I N F O # d e f i n e I R D A _ D E V I C E _ I N F O I R L M P _ E N U M _ D E V I C E S g e t s o c k o p t I D
110 Winsock API g e t s o c k o p t D E V I C E L I S T n u m D e v i c e 0 n u m D e v i c e 0 D e v i c e I R D A _ D E V I C E _ I N F O g e t s o c k o p t S l e e p I r S o c k 1) A F _ I R D A S O C K _ S T R E A M 2) S O C K A D D R _ I R D A 3) S O C K A D D R _ I R D A b i n d 4) b a c k l o g l i s t e n 5) a c c e p t I r S o c k 1) A F _ I R D A S O C K - S T R E A M 2) I R L M P _ E N U M _ D E V I C E S g e t s o c k o p t 3) I D SOCKADDR_ IRDA 4) S O C K A D D R _ I R D A c o n n e c t 3 4 6.2.4 IAS I A S I R L M P _ I A S _ Q U E RY g e t s o c k o p t I A S _ Q U E RY Windows 98 Windows 2000 Windows CE
6 111 L S A P - S E L i r d a C l a s s N a m e L S A P - S E L I r D A : I r L M P : L s a p S e l i r d a A t t r i b u t e N a m e i r d a D e v i c e I D 6.2.5 I r S o c k s o c k e t W S A S o c k e t Winsock 1.1 Windows CE s o c k e t I R D A _ P R O TO _ S I C K _ S T R E A M A F _ I R D A
112 Winsock API A F _ I R D A 6.2.6 I r D A S O _ s o c k e t S O _ L I N G E R I r S o c k A F _ I R D A 9 9 6.3 IPX/SPX I P X Novell NetWa r e I P X I P X I P X S P X SPX II S P X I P X Wi n s o c k Wi n d o w s I P X Windows 95 Windows 98 Windows NT Windows 2000 Windows CE I P X 6.3.1 I P X I P X 4 I P X 6 I P X I P X I P X Wi n s o c k S O C K A D D R _ I P X W s i p x. h Winsock 2.h S O C K A D D R _ I P X s a _ f a m i l y A F _ I P X s a _ n e t n u m 4 I P X s a _ n o d e n u m 6 s a _ s o c k e t I P X 6.3.2 I P X I P A F _ I P X N S P R O TO _ I P X s o c k e t W S A S o c k e t
6 113 0 I P X I P X I P X S P X SPX II s o c k e t W S A S o c k e t S O C K _ S E Q PA C K E T S O C K _ S T R E A M N S P R O TO _ S P X N S P R O TO_SPX II S O C K _ S T R E A M T C P / I P 2000 2000 S P X SPX II S P X SOCK_ STREAM Winsock recv W S A R e c v S O C K _ S T R E A M r e c v S O C K _ S E Q PA C K E T 1. I P X b i n d S O C K A D D R _ I P X b i n d I P X Windows 95 Windows 98 Windows NT Windows 2000 g e t s o c k n a m e
114 Winsock API 2. I P X I P X Windows 95 Windows 98 Windows NT Windows 2000 Windows 95 Windows 98 Windows NT Windows 2000 N e t Wa r e I P X S O C K A D D R _ I P X s a _ n e t n u m s a _ n o d e n u m 0 I P X A B 3. Wi n s o c k I P X N S P R O TO _ I P X Wi n s o c k I P X I P I P X N o v e l l I P X 0 1 h R I P 0 4 h S A P 0 5 h S P X 11 h N e t Ware Core N C P 1 4 h Novell NetBIOS I P X N S P R O TO_IPX + N socket API n 04 h S A P I P X s o c k e t 4. Wi n s o c k I P X I P X S A P I P X 10 Winsock 2 WSASetService API S A P I P X W S A A e t S e r v i c e
6 115 Winsock 2 A P I W S A L o o k u p S e r v i c e B e g i n W S A l o o k u p S e r v i c e N e x t W S A l o o k u p S e r v i c e E n d I P X S A P I P X S A P S A P IPX SAP 6.4 NetBIOS N e t B I O S Wi n s o c k 1 N e t B I O S Wi n s o c k N e t B I O S N e t B I O S L A N A 1 Wi n s o c k N e t B I O S NetBIOS Winsock Windows NT Windows 2000 Windows 95 Windows 98 Windows CE 6.4.1 N e t B I O S N e t B I O S 1 N e t B I O S 16 N e t B I O S F O O F O Wi n s o c k N e t B I O S W s a n e t b s. h s n b _ f a m i l y A F _ N E T B I O S s n b _ t y p e s n b _ t y p e s n b _ n a m e N e t B I O S
116 Winsock API _ s n b S O C K A D D R _ N B s n b _ f a m i l y A F _ N E T B I O S _ t y p e N E T B I O S _ U N I Q U E _ N A M E N E T B I O S _ G R O U P _ N A M E _ n a m e N e t B I O S N E T B I O S _ N A M E _ L E N G T H 1 s n b _ n a m e s n b _ n a m 16 _ p o r t Wi n s o c k N e t B I O S T C P I r D A N e t B I O S Wi n s o c k N e t B I O S 6.4.2 L A N A NetBIOS API L A N A N e t B I O S N e t B I O S s o c k e t W S A S o c k e t W S A S o c k e t t y p e S O C K _ D G R A M S O C K _ S E Q PA C K E T p r o t o c o l L A N A W S A P R O TO C O L _ I N F O d w F l a g s W S A _ F L A G _ O V E R L A P P E D W S A S o c k e t W S A _ F L A G _ O V E R L A P P E D L A N A Wi n s o c k L A N A Wi n s o c k W S A E n u m P r o t o c o l s N C B E N U M N e t b i o s L A N A 5 W S A E n u m P r o t o c o l s N e t B I O S
6 117 A F _ N E T B I O S S O C K _ S E Q PA C K E T S O C K _ D G R A M N e t B I O S L A N A W S A P R O TO C O L S _I N F O i P r o t o c o l L A N A i P r o t o c o l 0 x 80000000 0 Wi n s o c k j 6.5 AppleTalk Wi n s o c k A p p l e Ta l k M A C A p p l e Ta l k A p p l e Ta l k N e t B I O S A p p l e Ta l k N e t B I O S A p p l e Ta l k 6.5.1 A p p l e Ta l k 3 2 A p p l e Ta l k A p p l e Ta l k Wi n d o w s A p p l e Ta l k N B P A p p l e Ta l k RT M P A p p l e Ta l k Wi n s o c k A p p l e Ta l k
118 Winsock API S O C K A D D R _ AT b i n d c o n n e c t W S A c o n n e c t Wi n s o c k g e t s o c k o p t s e t s o c k o p t 6.5.2 AppleTalk S O _ R E G I S T E R _ N A M E s e t s o c k o p t A p l p l e Ta l k W S H _ N B P _ N A M E W S H _ R E G I S T E R _ N A M E W S H _ D E R E G I S T E R _ N A M E W S H _ R E M O V E _ N A M E W S H _ N B P _ N A M E A p p l e Ta l k