Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1324 lines
24 KiB

  1. /*++
  2. Copyright (c) 1990-1995 Microsoft Corporation
  3. Module Name:
  4. Wanproto.h
  5. Abstract:
  6. This file contains the prototypes for functions that NdisWan uses.
  7. Author:
  8. Tony Bell (TonyBe) June 06, 1995
  9. Environment:
  10. Kernel Mode
  11. Revision History:
  12. TonyBe 06/06/95 Created
  13. --*/
  14. #ifndef _NDISWAN_PROTO
  15. #define _NDISWAN_PROTO
  16. //
  17. // Functions from cl.c
  18. //
  19. NDIS_STATUS
  20. ClCreateVc(
  21. IN NDIS_HANDLE ProtocolAfContext,
  22. IN NDIS_HANDLE NdisVcHandle,
  23. OUT PNDIS_HANDLE ProtocolVcContext
  24. );
  25. NDIS_STATUS
  26. ClDeleteVc(
  27. IN NDIS_HANDLE ProtocolVcContext
  28. );
  29. VOID
  30. ClOpenAfComplete(
  31. IN NDIS_STATUS Status,
  32. IN NDIS_HANDLE ProtocolAfContext,
  33. IN NDIS_HANDLE NdisAfHandle
  34. );
  35. VOID
  36. ClCloseAfComplete(
  37. IN NDIS_STATUS Status,
  38. IN NDIS_HANDLE ProtocolAfContext
  39. );
  40. VOID
  41. ClRegisterSapComplete(
  42. IN NDIS_STATUS Status,
  43. IN NDIS_HANDLE ProtocolSapContext,
  44. IN PCO_SAP Sap,
  45. IN NDIS_HANDLE NdisSapHandle
  46. );
  47. VOID
  48. ClDeregisterSapComplete(
  49. IN NDIS_STATUS Status,
  50. IN NDIS_HANDLE ProtocolSapContext
  51. );
  52. VOID
  53. ClMakeCallComplete(
  54. IN NDIS_STATUS Status,
  55. IN NDIS_HANDLE ProtocolVcContext,
  56. IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
  57. IN PCO_CALL_PARAMETERS CallParameters
  58. );
  59. VOID
  60. ClModifyQoSComplete(
  61. IN NDIS_STATUS Status,
  62. IN NDIS_HANDLE ProtocolVcContext,
  63. IN PCO_CALL_PARAMETERS CallParameters
  64. );
  65. VOID
  66. ClCloseCallComplete(
  67. IN NDIS_STATUS Status,
  68. IN NDIS_HANDLE ProtocolVcContext,
  69. IN NDIS_HANDLE ProtocolPartyContext OPTIONAL
  70. );
  71. NDIS_STATUS
  72. ClIncomingCall(
  73. IN NDIS_HANDLE ProtocolSapContext,
  74. IN NDIS_HANDLE ProtocolVcContext,
  75. IN OUT PCO_CALL_PARAMETERS CallParameters
  76. );
  77. VOID
  78. ClIncomingCallQoSChange(
  79. IN NDIS_HANDLE ProtocolVcContext,
  80. IN PCO_CALL_PARAMETERS CallParameters
  81. );
  82. VOID
  83. ClIncomingCloseCall(
  84. IN NDIS_STATUS CloseStatus,
  85. IN NDIS_HANDLE ProtocolVcContext,
  86. IN PVOID CloseData OPTIONAL,
  87. IN UINT Size OPTIONAL
  88. );
  89. VOID
  90. ClCallConnected(
  91. IN NDIS_HANDLE ProtocolVcContext
  92. );
  93. //
  94. // Functions from cm.c
  95. //
  96. NDIS_STATUS
  97. CmCreateVc(
  98. IN NDIS_HANDLE ProtocolAfContext,
  99. IN NDIS_HANDLE NdisVcHandle,
  100. OUT PNDIS_HANDLE ProtocolVcContext
  101. );
  102. NDIS_STATUS
  103. CmDeleteVc(
  104. IN NDIS_HANDLE ProtocolVcContext
  105. );
  106. NDIS_STATUS
  107. CmOpenAf(
  108. IN NDIS_HANDLE CallMgrBindingContext,
  109. IN PCO_ADDRESS_FAMILY AddressFamily,
  110. IN NDIS_HANDLE NdisAfHandle,
  111. OUT PNDIS_HANDLE CallMgrAfContext
  112. );
  113. NDIS_STATUS
  114. CmCloseAf(
  115. IN NDIS_HANDLE CallMgrAfContext
  116. );
  117. NDIS_STATUS
  118. CmRegisterSap(
  119. IN NDIS_HANDLE CallMgrAfContext,
  120. IN PCO_SAP Sap,
  121. IN NDIS_HANDLE NdisSapHandle,
  122. OUT PNDIS_HANDLE CallMgrSapContext
  123. );
  124. NDIS_STATUS
  125. CmDeregisterSap(
  126. IN NDIS_HANDLE CallMgrSapContext
  127. );
  128. NDIS_STATUS
  129. CmMakeCall(
  130. IN NDIS_HANDLE CallMgrVcContext,
  131. IN OUT PCO_CALL_PARAMETERS CallParameters,
  132. IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
  133. OUT PNDIS_HANDLE CallMgrPartyContext OPTIONAL
  134. );
  135. NDIS_STATUS
  136. CmCloseCall(
  137. IN NDIS_HANDLE CallMgrVcContext,
  138. IN NDIS_HANDLE CallMgrPartyContext OPTIONAL,
  139. IN PVOID CloseData OPTIONAL,
  140. IN UINT Size OPTIONAL
  141. );
  142. NDIS_STATUS
  143. CmModifyCallQoS(
  144. IN NDIS_HANDLE CallMgrVcContext,
  145. IN PCO_CALL_PARAMETERS CallParameters
  146. );
  147. VOID
  148. CmIncomingCallComplete(
  149. IN NDIS_STATUS Status,
  150. IN NDIS_HANDLE CallMgrVcContext,
  151. IN PCO_CALL_PARAMETERS CallParameters
  152. );
  153. VOID
  154. CmActivateVcComplete(
  155. IN NDIS_STATUS Status,
  156. IN NDIS_HANDLE CallMgrVcContext,
  157. IN PCO_CALL_PARAMETERS CallParameters
  158. );
  159. VOID
  160. CmDeactivateVcComplete(
  161. IN NDIS_STATUS Status,
  162. IN NDIS_HANDLE CallMgrVcContext
  163. );
  164. NDIS_STATUS
  165. CmRequest(
  166. IN NDIS_HANDLE ProtocolAfContext,
  167. IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
  168. IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
  169. IN OUT PNDIS_REQUEST NdisRequest
  170. );
  171. //
  172. // Functions from ccp.c
  173. //
  174. VOID
  175. WanInitECP(
  176. VOID
  177. );
  178. VOID
  179. WanDeleteECP(
  180. VOID
  181. );
  182. NTSTATUS
  183. WanAllocateECP(
  184. PBUNDLECB BundleCB,
  185. PCOMPRESS_INFO CompInfo,
  186. PCRYPTO_INFO CryptoInfo,
  187. BOOLEAN IsSend
  188. );
  189. VOID
  190. WanDeallocateECP(
  191. PBUNDLECB BundleCB,
  192. PCOMPRESS_INFO CompInfo,
  193. PCRYPTO_INFO CryptoInfo
  194. );
  195. NTSTATUS
  196. WanAllocateCCP(
  197. PBUNDLECB BundleCB,
  198. PCOMPRESS_INFO CompInfo,
  199. BOOLEAN IsSend
  200. );
  201. VOID
  202. WanDeallocateCCP(
  203. PBUNDLECB BundleCB,
  204. PCOMPRESS_INFO CompInfo,
  205. BOOLEAN IsSend
  206. );
  207. //
  208. // Functions from indicate.c
  209. //
  210. VOID
  211. NdisWanLineUpIndication(
  212. IN POPENCB OpenCB,
  213. IN PUCHAR Buffer,
  214. IN ULONG BufferSize
  215. );
  216. VOID
  217. NdisWanLineDownIndication(
  218. IN POPENCB OpenCB,
  219. IN PUCHAR Buffer,
  220. IN ULONG BufferSize
  221. );
  222. VOID
  223. NdisWanFragmentIndication(
  224. IN POPENCB OpenCB,
  225. IN PUCHAR Buffer,
  226. IN ULONG BufferSize
  227. );
  228. VOID
  229. NdisCoWanFragmentIndication(
  230. IN PLINKCB LinkCB,
  231. IN PBUNDLECB BundleCB,
  232. IN PUCHAR Buffer,
  233. IN ULONG BufferSize
  234. );
  235. VOID
  236. NdisCoWanLinkParamChange(
  237. IN PLINKCB LinkCB,
  238. IN PBUNDLECB BundleCB,
  239. IN PUCHAR Buffer,
  240. IN ULONG BufferSize
  241. );
  242. VOID
  243. UpdateBundleInfo(
  244. IN PBUNDLECB BundleCB
  245. );
  246. VOID
  247. AddLinkToBundle(
  248. IN PBUNDLECB BundleCB,
  249. IN PLINKCB LinkCB
  250. );
  251. VOID
  252. RemoveLinkFromBundle(
  253. IN PBUNDLECB BundleCB,
  254. IN PLINKCB LinkCB,
  255. IN BOOLEAN Locked
  256. );
  257. VOID
  258. FreeBundleResources(
  259. PBUNDLECB BundleCB
  260. );
  261. //
  262. // Functions from init.c
  263. //
  264. //
  265. // Functions from io.c
  266. //
  267. VOID
  268. SetBundleFlags(
  269. PBUNDLECB BundleCB
  270. );
  271. #ifdef NT
  272. NTSTATUS
  273. NdisWanIoctl(
  274. IN PDEVICE_OBJECT pDeviceObject,
  275. IN PIRP pIrp
  276. );
  277. NTSTATUS
  278. NdisWanCreate(
  279. IN PDEVICE_OBJECT pDeviceObject,
  280. IN PIRP pIrp
  281. );
  282. NTSTATUS
  283. NdisWanCleanup(
  284. IN PDEVICE_OBJECT pDeviceObject,
  285. IN PIRP pIrp
  286. );
  287. NTSTATUS
  288. NdisWanPnPPower(
  289. IN PDEVICE_OBJECT pDeviceObject,
  290. IN PIRP pIrp
  291. );
  292. VOID
  293. NdisWanCancelRoutine(
  294. IN PDEVICE_OBJECT pDeviceObject,
  295. IN PIRP pIrp
  296. );
  297. NTSTATUS
  298. NdisWanIrpStub(
  299. IN PDEVICE_OBJECT pDeviceObject,
  300. IN PIRP pIrp
  301. );
  302. VOID
  303. FlushProtocolPacketQueue(
  304. PPROTOCOLCB ProtocolCB
  305. );
  306. VOID
  307. IoRecvIrpWorker(
  308. PKDPC Dpc,
  309. PVOID Context,
  310. PVOID Arg1,
  311. PVOID Arg2
  312. );
  313. #endif // NT
  314. VOID
  315. RemoveProtocolCBFromBundle(
  316. PPROTOCOLCB ProtocolCB
  317. );
  318. //
  319. // Functions from loopback.c
  320. //
  321. VOID
  322. NdisWanIndicateLoopbackPacket(
  323. PMINIPORTCB MiniportCB,
  324. PNDIS_PACKET NdisPacket
  325. );
  326. //
  327. // Functions from memory.c
  328. //
  329. PMINIPORTCB
  330. NdisWanAllocateMiniportCB(
  331. IN PNDIS_STRING AdapterName
  332. );
  333. VOID
  334. NdisWanFreeMiniportCB(
  335. IN PMINIPORTCB pMiniportCB
  336. );
  337. POPENCB
  338. NdisWanAllocateOpenCB(
  339. IN PNDIS_STRING BindName
  340. );
  341. VOID
  342. NdisWanFreeOpenCB(
  343. IN POPENCB pOpenCB
  344. );
  345. PPROTOCOLCB
  346. NdisWanAllocateProtocolCB(
  347. IN PNDISWAN_ROUTE Route
  348. );
  349. VOID
  350. NdisWanFreeProtocolCB(
  351. IN PPROTOCOLCB ProtocolCB
  352. );
  353. PLINKCB
  354. NdisWanAllocateLinkCB(
  355. IN POPENCB OpenCB,
  356. IN ULONG SendWindow
  357. );
  358. VOID
  359. NdisWanFreeLinkCB(
  360. IN PLINKCB LinkCB
  361. );
  362. PBUNDLECB
  363. NdisWanAllocateBundleCB(
  364. VOID
  365. );
  366. VOID
  367. NdisWanFreeBundleCB(
  368. IN PBUNDLECB BundleCB
  369. );
  370. PNDIS_PACKET
  371. NdisWanAllocateNdisPacket(
  372. ULONG MagicNumber
  373. );
  374. VOID
  375. NdisWanFreeNdisPacket(
  376. PNDIS_PACKET NdisPacket
  377. );
  378. PVOID
  379. AllocateDataDesc(
  380. POOL_TYPE PoolType,
  381. SIZE_T NumberOfBytes,
  382. ULONG Tag
  383. );
  384. VOID
  385. FreeDataDesc(
  386. PVOID Buffer
  387. );
  388. PRECV_DESC
  389. NdisWanAllocateRecvDesc(
  390. ULONG SizeNeeded
  391. );
  392. VOID
  393. NdisWanFreeRecvDesc(
  394. PRECV_DESC RecvDesc
  395. );
  396. PSEND_DESC
  397. NdisWanAllocateSendDesc(
  398. PLINKCB LinkCB,
  399. ULONG SizeNeeded
  400. );
  401. VOID
  402. NdisWanFreeSendDesc(
  403. PSEND_DESC SendDesc
  404. );
  405. NDIS_STATUS
  406. NdisWanAllocateSendResources(
  407. POPENCB OpenCB
  408. );
  409. VOID
  410. NdisWanFreeSendResources(
  411. POPENCB OpenCB
  412. );
  413. NDIS_STATUS
  414. NdisWanCreateProtocolInfoTable(
  415. VOID
  416. );
  417. VOID
  418. NdisWanDestroyProtocolInfoTable(
  419. VOID
  420. );
  421. NDIS_STATUS
  422. NdisWanCreateConnectionTable(
  423. ULONG TableSize
  424. );
  425. VOID
  426. CompleteThresholdEvent(
  427. PBUNDLECB BundleCB,
  428. ULONG DataType,
  429. ULONG ThresholdType
  430. );
  431. PCL_AFSAPCB
  432. NdisWanAllocateClAfSapCB(
  433. POPENCB OpenCB,
  434. PCO_ADDRESS_FAMILY AddressFamily
  435. );
  436. VOID
  437. NdisWanFreeClAfSapCB(
  438. PCL_AFSAPCB AfSapCB
  439. );
  440. PCM_AFSAPCB
  441. NdisWanAllocateCmAfSapCB(
  442. PMINIPORTCB MiniportCB
  443. );
  444. VOID
  445. NdisWanFreeCmAfSapCB(
  446. PCM_AFSAPCB AfSapCB
  447. );
  448. PCM_VCCB
  449. NdisWanAllocateCmVcCB(
  450. PCM_AFSAPCB AfSapCB,
  451. NDIS_HANDLE NdisVcHandle
  452. );
  453. VOID
  454. NdisWanFreeCmVcCB(
  455. PCM_VCCB CmVcCB
  456. );
  457. NDIS_STATUS
  458. AllocateIoNdisPacket(
  459. ULONG SizeNeeded,
  460. PNDIS_PACKET *NdisPacket,
  461. PNDIS_BUFFER *NdisBuffer,
  462. PUCHAR *DataBuffer
  463. );
  464. VOID
  465. FreeIoNdisPacket(
  466. PNDIS_PACKET NdisPacket
  467. );
  468. //
  469. // Functions from ndiswan.c
  470. //
  471. NDIS_STATUS
  472. DoMiniportInit(
  473. VOID
  474. );
  475. NDIS_STATUS
  476. DoProtocolInit(
  477. IN PUNICODE_STRING RegistryPath
  478. );
  479. NDIS_STATUS
  480. DoWanMiniportInit(
  481. VOID
  482. );
  483. VOID
  484. NdisWanReadRegistry(
  485. IN PUNICODE_STRING RegistryPath
  486. );
  487. VOID
  488. NdisWanBindMiniports(
  489. IN PUNICODE_STRING RegistryPath
  490. );
  491. VOID
  492. NdisWanGlobalCleanup(
  493. VOID
  494. );
  495. VOID
  496. SetProtocolInfo(
  497. IN PPROTOCOL_INFO ProtocolInfo
  498. );
  499. BOOLEAN
  500. GetProtocolInfo(
  501. IN OUT PPROTOCOL_INFO ProtocolInfo
  502. );
  503. NDIS_HANDLE
  504. InsertLinkInConnectionTable(
  505. IN PLINKCB LinkCB
  506. );
  507. VOID
  508. RemoveLinkFromConnectionTable(
  509. IN PLINKCB LinkCB
  510. );
  511. NDIS_HANDLE
  512. InsertBundleInConnectionTable(
  513. IN PBUNDLECB BundleCB
  514. );
  515. VOID
  516. RemoveBundleFromConnectionTable(
  517. IN PBUNDLECB BundleCB
  518. );
  519. NTSTATUS
  520. BindQueryRoutine(
  521. IN PWSTR ValueName,
  522. IN ULONG ValueType,
  523. IN PVOID ValueData,
  524. IN ULONG ValueLength,
  525. IN PVOID Context,
  526. IN PVOID EntryContext
  527. );
  528. BOOLEAN
  529. IsHandleValid(
  530. USHORT usHandleType,
  531. NDIS_HANDLE hHandle
  532. );
  533. #if DBG
  534. PUCHAR
  535. NdisWanGetNdisStatus(
  536. IN NDIS_STATUS GeneralStatus
  537. );
  538. #endif
  539. //
  540. // Functions from miniport.c
  541. //
  542. BOOLEAN
  543. MPCheckForHang(
  544. IN NDIS_HANDLE MiniportAdapterContext
  545. );
  546. #if 0
  547. NDIS_STATUS
  548. MPQueryInformation(
  549. IN NDIS_HANDLE MiniportAdapterContext,
  550. IN NDIS_OID Oid,
  551. IN PVOID InformationBuffer,
  552. IN ULONG InformationBufferLength,
  553. OUT PULONG BytesWritten,
  554. OUT PULONG BytesNeeded
  555. );
  556. NDIS_STATUS
  557. MPSetInformation(
  558. IN NDIS_HANDLE MiniportAdapterContext,
  559. IN NDIS_OID Oid,
  560. IN PVOID InformationBuffer,
  561. IN ULONG InformationBufferLength,
  562. OUT PULONG BytesWritten,
  563. OUT PULONG BytesNeeded
  564. );
  565. #endif
  566. VOID
  567. MPHalt(
  568. IN NDIS_HANDLE MiniportAdapterContext
  569. );
  570. NDIS_STATUS
  571. MPInitialize(
  572. OUT PNDIS_STATUS OpenErrorStatus,
  573. OUT PUINT SelectedMediumIndex,
  574. IN PNDIS_MEDIUM MediumArray,
  575. IN UINT MediumArraySize,
  576. IN NDIS_HANDLE MiniportAdapterHandle,
  577. IN NDIS_HANDLE WrapperConfigurationContext
  578. );
  579. NDIS_STATUS
  580. MPReconfigure(
  581. OUT PNDIS_STATUS OpenErrorStatus,
  582. IN NDIS_HANDLE MiniportAdapterContext,
  583. IN NDIS_HANDLE WrapperConfigurationContext
  584. );
  585. NDIS_STATUS
  586. MPReset(
  587. OUT PBOOLEAN AddressingReset,
  588. IN NDIS_HANDLE MiniportAdapterContext
  589. );
  590. VOID
  591. MPReturnPacket(
  592. IN NDIS_HANDLE MiniportAdapterContext,
  593. IN PNDIS_PACKET Packet
  594. );
  595. VOID
  596. MPSendPackets(
  597. IN NDIS_HANDLE MiniportAdapterContext,
  598. IN PPNDIS_PACKET PacketArray,
  599. IN UINT NumberOfPackets
  600. );
  601. NDIS_STATUS
  602. MPTransferData(
  603. OUT PNDIS_PACKET NdisPacket,
  604. OUT PUINT BytesTransferred,
  605. IN NDIS_HANDLE MiniportAdapterContext,
  606. IN NDIS_HANDLE MiniportReceiveContext,
  607. IN UINT ByteOffset,
  608. IN UINT BytesToTransfer
  609. );
  610. NDIS_STATUS
  611. MPCoCreateVc(
  612. IN NDIS_HANDLE MiniportAdapterContext,
  613. IN NDIS_HANDLE NdisVcHandle,
  614. OUT PNDIS_HANDLE MiniportVcContext
  615. );
  616. NDIS_STATUS
  617. MPCoDeleteVc(
  618. IN NDIS_HANDLE MiniportVcContext
  619. );
  620. NDIS_STATUS
  621. MPCoActivateVc(
  622. IN NDIS_HANDLE MiniportVcContext,
  623. IN OUT PCO_CALL_PARAMETERS CallParameters
  624. );
  625. NDIS_STATUS
  626. MPCoDeactivateVc(
  627. IN NDIS_HANDLE MiniportVcContext
  628. );
  629. VOID
  630. MPCoSendPackets(
  631. IN NDIS_HANDLE MiniportVcContext,
  632. IN PPNDIS_PACKET PacketArray,
  633. IN UINT NumberOfPackets
  634. );
  635. NDIS_STATUS
  636. MPCoRequest(
  637. IN NDIS_HANDLE MiniportAdapterContext,
  638. IN NDIS_HANDLE MiniportVcContext OPTIONAL,
  639. IN OUT PNDIS_REQUEST NdisRequest
  640. );
  641. //
  642. // Functions from protocol.c
  643. //
  644. NDIS_STATUS
  645. ProtoOpenWanAdapter(
  646. POPENCB pOpenCB
  647. );
  648. NDIS_STATUS
  649. ProtoCloseWanAdapter(
  650. IN POPENCB pOpenCB
  651. );
  652. VOID
  653. ProtoOpenAdapterComplete(
  654. IN NDIS_HANDLE ProtocolBindingContext,
  655. IN NDIS_STATUS Status,
  656. IN NDIS_STATUS OpenErrorStatus
  657. );
  658. VOID
  659. ProtoCloseAdapterComplete(
  660. IN NDIS_HANDLE ProtocolBindingContext,
  661. IN NDIS_STATUS Status
  662. );
  663. VOID
  664. ProtoResetComplete(
  665. IN NDIS_HANDLE ProtocolBindingContext,
  666. IN NDIS_STATUS Status
  667. );
  668. VOID
  669. ProtoReceiveComplete(
  670. IN NDIS_HANDLE ProtocolBindingContext
  671. );
  672. VOID
  673. ProtoIndicateStatus(
  674. IN NDIS_HANDLE ProtocolBindingContext,
  675. IN NDIS_STATUS GeneralStatus,
  676. IN PVOID StatusBuffer,
  677. IN UINT StatusBufferSize
  678. );
  679. VOID
  680. ProtoIndicateStatusComplete(
  681. IN NDIS_HANDLE ProtocolBindingContext
  682. );
  683. VOID
  684. ProtoWanSendComplete(
  685. IN NDIS_HANDLE ProtocolBindingContext,
  686. IN PNDIS_WAN_PACKET Packet,
  687. IN NDIS_STATUS Status
  688. );
  689. NDIS_STATUS
  690. ProtoWanReceiveIndication(
  691. IN NDIS_HANDLE NdisLinkHandle,
  692. IN PUCHAR Packet,
  693. IN ULONG PacketSize
  694. );
  695. VOID
  696. ProtoRequestComplete(
  697. IN NDIS_HANDLE ProtocolBindingContext,
  698. IN PNDIS_REQUEST NdisRequest,
  699. IN NDIS_STATUS Status
  700. );
  701. VOID
  702. ProtoBindAdapter(
  703. OUT PNDIS_STATUS Status,
  704. IN NDIS_HANDLE BindContext,
  705. IN PNDIS_STRING DeviceName,
  706. IN PVOID SystemSpecific1,
  707. IN PVOID SystemSpecific2
  708. );
  709. VOID
  710. ProtoUnbindAdapter(
  711. OUT PNDIS_STATUS Status,
  712. IN NDIS_HANDLE ProtocolBindingContext,
  713. IN NDIS_HANDLE UnbindContext
  714. );
  715. VOID
  716. ProtoUnload(
  717. VOID
  718. );
  719. NDIS_STATUS
  720. ProtoPnPEvent(
  721. IN NDIS_HANDLE ProtocolBindingContext,
  722. IN PNET_PNP_EVENT NetPnPEvent
  723. );
  724. VOID
  725. ProtoCoSendComplete(
  726. IN NDIS_STATUS Status,
  727. IN NDIS_HANDLE ProtocolVcContext,
  728. IN PNDIS_PACKET Packet
  729. );
  730. VOID
  731. ProtoCoIndicateStatus(
  732. IN NDIS_HANDLE ProtocolBindingContext,
  733. IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
  734. IN NDIS_STATUS GeneralStatus,
  735. IN PVOID StatusBuffer,
  736. IN UINT StatusBufferSize
  737. );
  738. UINT
  739. ProtoCoReceivePacket(
  740. IN NDIS_HANDLE ProtocolBindingContext,
  741. IN NDIS_HANDLE ProtocolVcContext,
  742. IN PNDIS_PACKET Packet
  743. );
  744. NDIS_STATUS
  745. ProtoCoRequest(
  746. IN NDIS_HANDLE ProtocolAfContext,
  747. IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
  748. IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
  749. IN OUT PNDIS_REQUEST NdisRequest
  750. );
  751. VOID
  752. ProtoCoRequestComplete(
  753. IN NDIS_STATUS Status,
  754. IN NDIS_HANDLE ProtocolAfContext,
  755. IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
  756. IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
  757. IN PNDIS_REQUEST NdisRequest
  758. );
  759. VOID
  760. ProtoCoAfRegisterNotify(
  761. IN NDIS_HANDLE ProtocolBindingContext,
  762. IN PCO_ADDRESS_FAMILY AddressFamily
  763. );
  764. NDIS_STATUS
  765. DoNewLineUpToProtocol(
  766. IN PPROTOCOLCB ProtocolCB
  767. );
  768. NDIS_STATUS
  769. DoLineUpToProtocol(
  770. IN PPROTOCOLCB ProtocolCB
  771. );
  772. NDIS_STATUS
  773. DoLineDownToProtocol(
  774. PPROTOCOLCB ProtocolCB
  775. );
  776. VOID
  777. NdisWanProcessStatusIndications(
  778. PMINIPORTCB MiniportCB
  779. );
  780. //
  781. // Functions from receive.c
  782. //
  783. NDIS_STATUS
  784. DetectBroadbandFraming(
  785. PLINKCB LinkCB,
  786. PRECV_DESC RecvDesc
  787. );
  788. NDIS_STATUS
  789. DetectFraming(
  790. PLINKCB LinkCB,
  791. PRECV_DESC RecvDesc
  792. );
  793. NDIS_STATUS
  794. ReceivePPP(
  795. PLINKCB LinkCB,
  796. PRECV_DESC RecvDesc
  797. );
  798. NDIS_STATUS
  799. ReceiveSLIP(
  800. PLINKCB LinkCB,
  801. PRECV_DESC RecvDesc
  802. );
  803. NDIS_STATUS
  804. ReceiveRAS(
  805. PLINKCB LinkCB,
  806. PRECV_DESC RecvDesc
  807. );
  808. NDIS_STATUS
  809. ReceiveARAP(
  810. PLINKCB LinkCB,
  811. PRECV_DESC RecvDesc
  812. );
  813. NDIS_STATUS
  814. ReceiveForward(
  815. PLINKCB LinkCB,
  816. PRECV_DESC RecvDesc
  817. );
  818. NDIS_STATUS
  819. ReceiveLLC(
  820. PLINKCB LinkCB,
  821. PRECV_DESC RecvDesc
  822. );
  823. VOID
  824. FlushAssemblyLists(
  825. IN PBUNDLECB BundleCB
  826. );
  827. BOOLEAN
  828. IpIsDataFrame(
  829. PUCHAR HeaderBuffer,
  830. ULONG HeaderBufferLength,
  831. ULONG TotalLength
  832. );
  833. BOOLEAN
  834. IpxIsDataFrame(
  835. PUCHAR HeaderBuffer,
  836. ULONG HeaderBufferLength,
  837. ULONG TotalLength
  838. );
  839. BOOLEAN
  840. NbfIsDataFrame(
  841. PUCHAR HeaderBuffer,
  842. ULONG HeaderBufferLength,
  843. ULONG TotalLength
  844. );
  845. VOID
  846. IndicatePromiscuousRecv(
  847. PBUNDLECB BundleCB,
  848. PRECV_DESC RecvDesc,
  849. RECV_TYPE RecvType
  850. );
  851. //
  852. // Functions from request.c
  853. //
  854. NDIS_STATUS
  855. NdisWanSubmitNdisRequest(
  856. IN POPENCB pOpenCB,
  857. IN PWAN_REQUEST WanRequest
  858. );
  859. NDIS_STATUS
  860. NdisWanOidProc(
  861. IN PMINIPORTCB pMiniportCB,
  862. IN OUT PNDIS_REQUEST NdisRequest
  863. );
  864. NDIS_STATUS
  865. NdisWanCoOidProc(
  866. IN PMINIPORTCB pMiniportCB,
  867. IN PCM_VCCB CmVcCB OPTIONAL,
  868. IN OUT PNDIS_REQUEST NdisRequest
  869. );
  870. //
  871. // Functions from send.c
  872. //
  873. VOID
  874. NdisWanQueueSend(
  875. IN PMINIPORTCB MiniportCB,
  876. IN PNDIS_PACKET NdisPacket
  877. );
  878. VOID
  879. SendPacketOnBundle(
  880. PBUNDLECB BundleCB
  881. );
  882. BOOLEAN
  883. SendFromPPP(
  884. PBUNDLECB BundleCB,
  885. PPROTOCOLCB ProtocolCB,
  886. PBOOLEAN PacketSent
  887. );
  888. BOOLEAN
  889. SendFromProtocol(
  890. PBUNDLECB BundleCB,
  891. PPROTOCOLCB ProtocolCB,
  892. PINT RetClass,
  893. PULONG SendMask,
  894. PBOOLEAN PacketSent
  895. );
  896. BOOLEAN
  897. SendFromFragQueue(
  898. PBUNDLECB BundleCB,
  899. BOOLEAN SendOne,
  900. PBOOLEAN PacketSent
  901. );
  902. UINT
  903. FramePacket(
  904. PBUNDLECB BundleCB,
  905. PPROTOCOLCB ProtocolCB,
  906. PNDIS_PACKET NdisPacket,
  907. PLIST_ENTRY LinkCBList,
  908. ULONG SendingLinks,
  909. INT Class
  910. );
  911. UINT
  912. SendOnLegacyLink(
  913. PSEND_DESC SendDesc
  914. );
  915. UINT
  916. SendOnLink(
  917. PSEND_DESC SendDesc
  918. );
  919. NDIS_STATUS
  920. BuildIoPacket(
  921. IN PLINKCB LinkCB,
  922. IN PBUNDLECB BundleCB,
  923. IN PNDISWAN_IO_PACKET pWanIoPacket,
  924. IN BOOLEAN SendImmediate
  925. );
  926. VOID
  927. CompleteNdisPacket(
  928. PMINIPORTCB MiniportCB,
  929. PPROTOCOLCB ProtocolCB,
  930. PNDIS_PACKET NdisPacket
  931. );
  932. VOID
  933. IndicatePromiscuousSendPacket(
  934. PLINKCB LinkCB,
  935. PNDIS_PACKET NdisPacket
  936. );
  937. VOID
  938. IndicatePromiscuousSendDesc(
  939. PLINKCB LinkCB,
  940. PSEND_DESC SendDesc,
  941. SEND_TYPE SendType
  942. );
  943. VOID
  944. DestroyIoPacket(
  945. PNDIS_PACKET NdisPacket
  946. );
  947. //
  948. // Functions from tapi.c
  949. //
  950. NDIS_STATUS
  951. NdisWanTapiRequestProc(
  952. HANDLE NdisWanKey,
  953. PNDIS_REQUEST NdisRequest
  954. );
  955. VOID
  956. NdisWanTapiRequestComplete(
  957. POPENCB OpenCB,
  958. PWAN_REQUEST WanRequest
  959. );
  960. VOID
  961. NdisWanTapiIndication(
  962. POPENCB OpenCB,
  963. PUCHAR StatusBuffer,
  964. ULONG StatusBufferSize
  965. );
  966. //
  967. // Function from util.c
  968. //
  969. VOID
  970. NdisWanStringToNdisString(
  971. IN PNDIS_STRING pDestString,
  972. IN PWSTR pSrcBuffer
  973. );
  974. VOID
  975. NdisWanAllocateAdapterName(
  976. PNDIS_STRING Dest,
  977. PNDIS_STRING Src
  978. );
  979. VOID
  980. NdisWanFreeNdisString(
  981. IN PNDIS_STRING NdisString
  982. );
  983. VOID
  984. NdisWanNdisStringToInteger(
  985. IN PNDIS_STRING Source,
  986. IN PULONG Value
  987. );
  988. VOID
  989. NdisWanCopyNdisString(
  990. OUT PNDIS_STRING Dest,
  991. IN PNDIS_STRING Src
  992. );
  993. VOID
  994. NdisWanCopyFromPacketToBuffer(
  995. IN PNDIS_PACKET NdisPacket,
  996. IN ULONG Offset,
  997. IN ULONG BytesToCopy,
  998. OUT PUCHAR Buffer,
  999. OUT PULONG BytesCopied
  1000. );
  1001. VOID
  1002. NdisWanCopyFromBufferToPacket(
  1003. PUCHAR Buffer,
  1004. ULONG BytesToCopy,
  1005. PNDIS_PACKET NdisPacket,
  1006. ULONG PacketOffset,
  1007. PULONG BytesCopied
  1008. );
  1009. BOOLEAN
  1010. IsLinkValid(
  1011. NDIS_HANDLE LinkHandle,
  1012. BOOLEAN CheckState,
  1013. PLINKCB *LinkCB
  1014. );
  1015. BOOLEAN
  1016. IsBundleValid(
  1017. NDIS_HANDLE BundleHandle,
  1018. BOOLEAN CheckState,
  1019. PBUNDLECB *BundleCB
  1020. );
  1021. BOOLEAN
  1022. AreLinkAndBundleValid(
  1023. NDIS_HANDLE LinkHandle,
  1024. BOOLEAN CheckState,
  1025. PLINKCB *LinkCB,
  1026. PBUNDLECB *BundleCB
  1027. );
  1028. VOID
  1029. DoDerefBundleCBWork(
  1030. PBUNDLECB BundleCB
  1031. );
  1032. VOID
  1033. DoDerefLinkCBWork(
  1034. PLINKCB LinkCB
  1035. );
  1036. VOID
  1037. DoDerefClAfSapCBWork(
  1038. PCL_AFSAPCB AfSapCB
  1039. );
  1040. VOID
  1041. DoDerefCmVcCBWork(
  1042. PCM_VCCB VcCB
  1043. );
  1044. VOID
  1045. DerefVc(
  1046. PLINKCB LinkCB
  1047. );
  1048. VOID
  1049. DeferredWorker(
  1050. PKDPC Dpc,
  1051. PVOID Context,
  1052. PVOID Arg1,
  1053. PVOID Arg2
  1054. );
  1055. VOID
  1056. BonDWorker(
  1057. PKDPC Dpc,
  1058. PVOID Context,
  1059. PVOID Arg1,
  1060. PVOID Arg2
  1061. );
  1062. VOID
  1063. CheckBonDInfo(
  1064. PKDPC Dpc,
  1065. PBUNDLECB BundleCB,
  1066. PVOID SysArg1,
  1067. PVOID SysArg2
  1068. );
  1069. VOID
  1070. AgeSampleTable(
  1071. PSAMPLE_TABLE SampleTable
  1072. );
  1073. VOID
  1074. UpdateSampleTable(
  1075. PSAMPLE_TABLE SampleTable,
  1076. ULONG BytesSent
  1077. );
  1078. VOID
  1079. UpdateBandwidthOnDemand(
  1080. PBOND_INFO BonDInfo,
  1081. ULONG Bytes
  1082. );
  1083. VOID
  1084. CheckUpperThreshold(
  1085. PBUNDLECB BundleCB
  1086. );
  1087. VOID
  1088. CheckLowerThreshold(
  1089. PBUNDLECB BundleCB
  1090. );
  1091. //
  1092. // Functions from vjslip.c
  1093. //
  1094. VOID
  1095. WanInitVJ(
  1096. VOID
  1097. );
  1098. VOID
  1099. WanDeleteVJ(
  1100. VOID
  1101. );
  1102. #endif