2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Ancillary Function Driver
5 * PURPOSE: TDI event handlers
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
8 * CSH 01/09-2000 Created
12 NTSTATUS
AfdEventError(
13 IN PVOID TdiEventContext
,
16 AFD_DbgPrint(MAX_TRACE
, ("Called.\n"));
18 return STATUS_SUCCESS
;
22 NTSTATUS
AfdEventDisconnect(
23 IN PVOID TdiEventContext
,
24 IN CONNECTION_CONTEXT ConnectionContext
,
25 IN LONG DisconnectDataLength
,
26 IN PVOID DisconnectData
,
27 IN LONG DisconnectInformationLength
,
28 IN PVOID DisconnectInformation
,
29 IN ULONG DisconnectFlags
)
31 AFD_DbgPrint(MAX_TRACE
, ("Called.\n"));
33 return STATUS_SUCCESS
;
37 NTSTATUS
AfdEventReceive(
38 IN PVOID TdiEventContext
,
39 IN CONNECTION_CONTEXT ConnectionContext
,
40 IN ULONG ReceiveFlags
,
41 IN ULONG BytesIndicated
,
42 IN ULONG BytesAvailable
,
43 OUT ULONG
*BytesTaken
,
45 OUT PIRP
*IoRequestPacket
)
47 AFD_DbgPrint(MAX_TRACE
, ("Called.\n"));
49 return STATUS_SUCCESS
;
53 TDI_STATUS
ClientEventReceiveExpedited(
54 IN PVOID TdiEventContext
,
55 IN CONNECTION_CONTEXT ConnectionContext
,
56 IN ULONG ReceiveFlags
,
57 IN ULONG BytesIndicated
,
58 IN ULONG BytesAvailable
,
59 OUT ULONG
*BytesTaken
,
61 OUT PIRP
*IoRequestPacket
)
63 AFD_DbgPrint(MAX_TRACE
, ("Called.\n"));
65 return STATUS_SUCCESS
;
69 NTSTATUS
ClientEventChainedReceive(
70 IN PVOID TdiEventContext
,
71 IN CONNECTION_CONTEXT ConnectionContext
,
72 IN ULONG ReceiveFlags
,
73 IN ULONG ReceiveLength
,
74 IN ULONG StartingOffset
,
76 IN PVOID TsduDescriptor
)
78 AFD_DbgPrint(MAX_TRACE
, ("Called.\n"));
80 return STATUS_SUCCESS
;
84 NTSTATUS
AfdEventReceiveDatagramHandler(
85 IN PVOID TdiEventContext
,
86 IN LONG SourceAddressLength
,
87 IN PVOID SourceAddress
,
88 IN LONG OptionsLength
,
90 IN ULONG ReceiveDatagramFlags
,
91 IN ULONG BytesIndicated
,
92 IN ULONG BytesAvailable
,
93 OUT ULONG
*BytesTaken
,
95 OUT PIRP
*IoRequestPacket
)
97 AFD_DbgPrint(MAX_TRACE
, ("Called.\n"));
99 AFD_DbgPrint(MID_TRACE
, ("Receiving (%d) bytes from (0x%X).\n",
100 BytesAvailable
, *(PULONG
)SourceAddress
));
102 return STATUS_SUCCESS
;
106 NTSTATUS
AfdRegisterEventHandlers(
111 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
113 (PVOID
)AfdEventError
,
115 if (!NT_SUCCESS(Status
)) { return Status
; }
117 switch (FCB
->SocketType
) {
119 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
120 TDI_EVENT_DISCONNECT
,
121 (PVOID
)AfdEventDisconnect
,
123 if (!NT_SUCCESS(Status
)) { return Status
; }
125 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
127 (PVOID
)AfdEventReceive
,
129 if (!NT_SUCCESS(Status
)) { return Status
; }
131 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
132 TDI_EVENT_RECEIVE_EXPEDITED
,
133 (PVOID
)ClientEventReceiveExpedited
,
135 if (!NT_SUCCESS(Status
)) { return Status
; }
137 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
138 TDI_EVENT_CHAINED_RECEIVE
,
139 (PVOID
)ClientEventChainedReceive
,
141 if (!NT_SUCCESS(Status
)) { return Status
; }
144 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
145 TDI_EVENT_RECEIVE_DATAGRAM
,
146 (PVOID
)AfdEventReceiveDatagramHandler
,
148 if (!NT_SUCCESS(Status
)) { return Status
; }
150 return STATUS_SUCCESS
;
154 NTSTATUS
AfdDeregisterEventHandlers(
159 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
163 if (!NT_SUCCESS(Status
)) { return Status
; }
165 switch (FCB
->SocketType
) {
167 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
168 TDI_EVENT_DISCONNECT
,
171 if (!NT_SUCCESS(Status
)) { return Status
; }
173 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
177 if (!NT_SUCCESS(Status
)) { return Status
; }
179 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
180 TDI_EVENT_RECEIVE_EXPEDITED
,
183 if (!NT_SUCCESS(Status
)) { return Status
; }
185 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
186 TDI_EVENT_CHAINED_RECEIVE
,
189 if (!NT_SUCCESS(Status
)) { return Status
; }
193 Status
= TdiSetEventHandler(FCB
->TdiAddressObject
,
194 TDI_EVENT_RECEIVE_DATAGRAM
,
197 if (!NT_SUCCESS(Status
)) { return Status
; }
199 return STATUS_SUCCESS
;