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.

964 lines
16 KiB

  1. /*++
  2. Copyright (c) 1991 Microsoft Corporation
  3. Module Name:
  4. dlext.h
  5. Abstract:
  6. This module includes all internal function prototypes
  7. and external global variables.
  8. Author:
  9. Antti Saarenheimo (o-anttis) 17-MAY-1991
  10. Revision History:
  11. --*/
  12. //
  13. // External variables:
  14. //
  15. extern DLC_LINK_PARAMETERS DefaultParameters;
  16. extern UCHAR auchLlcCommands[];
  17. extern UCHAR Swap[];
  18. extern LLC_TICKS TimerTicks;
  19. extern ULONG AbsoluteTime;
  20. extern BOOLEAN TraceEnabled;
  21. extern LLC_XID_INFORMATION Ieee802Xid;
  22. extern PMDL pXidMdl;
  23. extern KSPIN_LOCK LlcSpinLock;
  24. extern PVOID LlcProtocolHandle;
  25. extern NDIS_PROTOCOL_CHARACTERISTICS LlcCharacteristics;
  26. extern KMUTEX NdisAccessMutex;
  27. extern KSEMAPHORE OpenAdapterSemaphore;
  28. extern UINT NdisSendCount;
  29. extern PADAPTER_CONTEXT pAdapters;
  30. extern UCHAR PrimaryStates[];
  31. extern UCHAR SecondaryStates[];
  32. #ifdef NDIS40
  33. extern NDIS_EVENT PnPBindsComplete;
  34. #endif // NDIS40
  35. UINT
  36. CopyReceivedLanHeader(
  37. IN UINT TransltionCase,
  38. IN PUCHAR DestinationAddress,
  39. IN PUCHAR SourceAddress
  40. );
  41. UCHAR
  42. CopyLanHeader(
  43. IN UINT AddressTranslationMode,
  44. IN PUCHAR pSrcLanHeader,
  45. IN PUCHAR pNodeAddress,
  46. OUT PUCHAR pDestLanHeader,
  47. IN BOOLEAN SwapAddressBits
  48. );
  49. VOID
  50. SwappingMemCpy(
  51. IN PUCHAR pDest,
  52. IN PUCHAR pSrc,
  53. IN UINT Len
  54. );
  55. UINT
  56. RunStateMachine(
  57. IN OUT PDATA_LINK pLink,
  58. IN USHORT usInput,
  59. IN BOOLEAN boolPollFinal,
  60. IN BOOLEAN boolResponse
  61. );
  62. UINT
  63. RunInterlockedStateMachineCommand(
  64. PDATA_LINK pStation,
  65. USHORT Command
  66. );
  67. VOID
  68. SaveStatusChangeEvent(
  69. IN PDATA_LINK pLink,
  70. IN PUCHAR puchLlcHdr,
  71. IN BOOLEAN boolResponse
  72. );
  73. VOID
  74. ResendPackets(
  75. IN OUT PDATA_LINK pLink // data link strcuture
  76. );
  77. VOID
  78. UpdateVa(
  79. IN OUT PDATA_LINK pLink // data link station strcuture
  80. );
  81. VOID
  82. UpdateVaChkpt(
  83. IN OUT PDATA_LINK pLink // data link station strcuture
  84. );
  85. VOID
  86. AdjustWw(
  87. IN OUT PDATA_LINK pLink // data link strcuture
  88. );
  89. VOID
  90. SendAck(
  91. IN OUT PDATA_LINK pLink
  92. );
  93. UINT
  94. RunStateMachineCommand(
  95. IN OUT PVOID hLink,
  96. IN UINT uiInput
  97. );
  98. PDATA_LINK
  99. SearchLink(
  100. IN PADAPTER_CONTEXT pAdapterContext,
  101. IN LAN802_ADDRESS LanAddr
  102. );
  103. PDATA_LINK *
  104. SearchLinkAddress(
  105. IN PADAPTER_CONTEXT pAdapterContext,
  106. IN LAN802_ADDRESS LanAddr
  107. );
  108. DLC_STATUS
  109. SetLinkParameters(
  110. IN OUT PDATA_LINK pLink,
  111. IN PUCHAR pNewParameters
  112. );
  113. DLC_STATUS
  114. CheckLinkParameters(
  115. PDLC_LINK_PARAMETERS pParms
  116. );
  117. VOID
  118. CopyLinkParameters(
  119. OUT PUCHAR pOldParameters,
  120. IN PUCHAR pNewParameters,
  121. IN PUCHAR pDefaultParameters
  122. );
  123. VOID
  124. CompleteClose(
  125. IN PLLC_OBJECT pLlcObject,
  126. IN UINT Status
  127. );
  128. NDIS_STATUS
  129. InitNdisPackets(
  130. OUT PLLC_NDIS_PACKET * ppLlcPacketPool,
  131. IN NDIS_HANDLE hNdisPool
  132. );
  133. VOID
  134. LlcResetPacket(
  135. IN OUT PLLC_NDIS_PACKET pNdisPacket
  136. );
  137. NDIS_STATUS
  138. GetNdisParameter(
  139. IN PADAPTER_CONTEXT pAdapterContext,
  140. IN NDIS_OID NdisOid,
  141. IN PVOID pDataAddress,
  142. IN UINT DataSize
  143. );
  144. DLC_STATUS
  145. SyncNdisRequest(
  146. IN PADAPTER_CONTEXT pAdapterContext,
  147. IN PLLC_NDIS_REQUEST pRequest
  148. );
  149. NDIS_STATUS
  150. WaitAsyncOperation(
  151. IN PKEVENT pEvent,
  152. IN PNDIS_STATUS pAsyncStatus,
  153. IN NDIS_STATUS Status
  154. );
  155. #ifdef LLC_PRIVATE_NDIS_PROTOTYPES
  156. NDIS_STATUS
  157. LlcNdisReceiveIndication (
  158. IN PADAPTER_CONTEXT pAdapterContext,
  159. IN NDIS_HANDLE MacReceiveContext,
  160. IN PVOID pHeadBuf,
  161. IN UINT cbHeadBuf,
  162. IN PVOID pLookBuf,
  163. IN UINT cbLookBuf,
  164. IN UINT cbPacketSize
  165. );
  166. VOID
  167. LlcNdisSendComplete(
  168. IN PADAPTER_CONTEXT pAdapterContext,
  169. IN PNDIS_PACKET pNdisPacket,
  170. IN NDIS_STATUS NdisStatus
  171. );
  172. VOID
  173. LlcNdisReceiveComplete(
  174. IN PADAPTER_CONTEXT pAdapterContext
  175. );
  176. VOID
  177. LlcNdisTransferDataComplete(
  178. IN PADAPTER_CONTEXT pAdapterContext,
  179. IN PNDIS_PACKET pPacket,
  180. IN NDIS_STATUS NdisStatus,
  181. IN UINT uiBytesTransferred
  182. );
  183. VOID
  184. LlcNdisOpenAdapterComplete(
  185. IN PVOID hAdapterContext,
  186. IN NDIS_STATUS NdisStatus,
  187. IN NDIS_STATUS OpenErrorStatus
  188. );
  189. VOID
  190. LlcNdisCloseComplete(
  191. IN PADAPTER_CONTEXT pAdapterContext,
  192. IN NDIS_STATUS NdisStatus
  193. );
  194. VOID
  195. LlcNdisRequestComplete(
  196. IN PADAPTER_CONTEXT pAdapterContext,
  197. IN PNDIS_REQUEST RequestHandle,
  198. IN NDIS_STATUS NdisStatus
  199. );
  200. VOID
  201. LlcNdisResetComplete(
  202. PADAPTER_CONTEXT pAdapterContext,
  203. NDIS_STATUS NdisStatus
  204. );
  205. VOID
  206. NdisStatusHandler(
  207. IN PADAPTER_CONTEXT pAdapterContext,
  208. IN NDIS_STATUS NdisStatus,
  209. IN PVOID StatusBuffer,
  210. IN UINT StatusBufferSize
  211. );
  212. #else
  213. VOID
  214. NdisStatusHandler(
  215. IN PVOID hAdapterContext,
  216. IN NDIS_STATUS NdisStatus,
  217. IN PVOID StatusBuffer,
  218. IN UINT StatusBufferSize
  219. );
  220. VOID
  221. LlcNdisTransferDataComplete(
  222. IN PVOID hAdapterContext,
  223. IN PNDIS_PACKET Packet,
  224. IN NDIS_STATUS NdisStatus,
  225. IN UINT uiBytesTransferred
  226. );
  227. VOID
  228. LlcNdisRequestComplete(
  229. IN PVOID hAdapterContext,
  230. IN PNDIS_REQUEST RequestHandle,
  231. IN NDIS_STATUS NdisStatus
  232. );
  233. VOID
  234. LlcNdisOpenAdapterComplete(
  235. PVOID hAdapterContext,
  236. NDIS_STATUS NdisStatus,
  237. NDIS_STATUS OpenErrorStatus
  238. );
  239. VOID
  240. LlcNdisStatus(
  241. IN PVOID hAdapterContext,
  242. IN NDIS_STATUS Status,
  243. IN UINT SpecificStatus
  244. );
  245. VOID
  246. LlcNdisStatusComplete(
  247. IN PVOID hAdapterContext
  248. );
  249. NDIS_STATUS
  250. LlcNdisReceiveIndication (
  251. IN PVOID pAdapterContext,
  252. IN NDIS_HANDLE MacReceiveContext,
  253. IN PVOID pHeadBuf,
  254. IN UINT cbHeadBuf,
  255. IN PVOID pLookBuf,
  256. IN UINT cbLookBuf,
  257. IN UINT cbPacketSize
  258. );
  259. VOID
  260. LlcNdisSendComplete(
  261. IN PVOID hAdapter,
  262. IN PNDIS_PACKET Packet,
  263. IN NDIS_STATUS NdisStatus
  264. );
  265. VOID
  266. LlcNdisResetComplete(
  267. PVOID hAdapterContext,
  268. NDIS_STATUS NdisStatus
  269. );
  270. VOID
  271. LlcNdisCloseComplete(
  272. PVOID hAdapterContext,
  273. NDIS_STATUS NdisStatus
  274. );
  275. VOID
  276. LlcNdisReceiveComplete(
  277. IN PVOID hAdapter
  278. );
  279. #ifdef NDIS40
  280. VOID
  281. LlcBindAdapterHandler(
  282. OUT PNDIS_STATUS pStatus,
  283. IN NDIS_HANDLE BindContext,
  284. IN PNDIS_STRING pDeviceName,
  285. IN PVOID SystemSpecific1,
  286. IN PVOID SystemSpecific2
  287. );
  288. VOID
  289. LlcUnbindAdapterHandler(
  290. OUT PNDIS_STATUS pStatus,
  291. IN NDIS_HANDLE ProtocolBindingContext,
  292. IN NDIS_HANDLE UnbindContext
  293. );
  294. NDIS_STATUS
  295. LlcPnPEventHandler(
  296. IN NDIS_HANDLE ProtocolBindingContext,
  297. IN PNET_PNP_EVENT pNetPnPEvent
  298. );
  299. VOID
  300. CloseAllAdapters();
  301. #endif // NDIS40
  302. #endif
  303. VOID
  304. ProcessType1_Frames(
  305. IN PADAPTER_CONTEXT pAdapterContext,
  306. IN NDIS_HANDLE MacReceiveContext,
  307. IN PLLC_SAP pSap,
  308. IN LLC_HEADER LlcHeader
  309. );
  310. VOID
  311. MakeRcvIndication(
  312. IN PADAPTER_CONTEXT pAdapterContext,
  313. IN NDIS_HANDLE MacReceiveContext,
  314. IN PLLC_OBJECT pStation
  315. );
  316. VOID
  317. ProcessType2_Frames(
  318. IN PADAPTER_CONTEXT pAdapterContext,
  319. IN NDIS_HANDLE MacReceiveContext,
  320. IN OUT PDATA_LINK pLink,
  321. IN LLC_HEADER LlcHeader
  322. );
  323. VOID
  324. ProcessNewSabme(
  325. IN PADAPTER_CONTEXT pAdapterContext,
  326. IN PLLC_SAP pSap,
  327. IN LLC_HEADER LlcHeader
  328. );
  329. VOID
  330. SaveReceiveEvent(
  331. IN PADAPTER_CONTEXT pAdapterContext,
  332. IN PLLC_TRANSFER_PACKET pTransferPacket
  333. );
  334. VOID
  335. RunSendTaskAndUnlock(
  336. IN PADAPTER_CONTEXT pAdapterContext
  337. );
  338. VOID
  339. BackgroundProcessAndUnlock(
  340. IN PADAPTER_CONTEXT pAdapter
  341. );
  342. VOID
  343. BackgroundProcess(
  344. IN PADAPTER_CONTEXT pAdapter
  345. );
  346. PLLC_PACKET
  347. GetI_Packet(
  348. IN PADAPTER_CONTEXT pAdapter
  349. );
  350. VOID
  351. StartSendProcess(
  352. IN PADAPTER_CONTEXT pAdapter,
  353. IN PDATA_LINK pLink
  354. );
  355. VOID
  356. EnableSendProcess(
  357. IN PDATA_LINK pLink
  358. );
  359. VOID
  360. StopSendProcess(
  361. IN PADAPTER_CONTEXT pAdapter,
  362. IN PDATA_LINK pLink
  363. );
  364. VOID DisableSendProcess(
  365. IN PDATA_LINK pLink
  366. );
  367. PLLC_PACKET
  368. BuildDirOrU_Packet(
  369. PADAPTER_CONTEXT pAdapter
  370. );
  371. DLC_STATUS
  372. SendLlcFrame(
  373. IN PDATA_LINK pLink,
  374. IN UCHAR LlcCommandId
  375. );
  376. PLLC_PACKET
  377. GetLlcCommandPacket(
  378. PADAPTER_CONTEXT pAdapter
  379. );
  380. VOID
  381. SendNdisPacket(
  382. IN PADAPTER_CONTEXT pAdapterContext,
  383. IN PLLC_PACKET pPacket
  384. );
  385. VOID
  386. CompleteSendAndLock(
  387. IN PADAPTER_CONTEXT pAdapterContext,
  388. IN PLLC_NDIS_PACKET NdisPacket,
  389. IN NDIS_STATUS NdisStatus
  390. );
  391. VOID
  392. RespondTestOrXid(
  393. IN PADAPTER_CONTEXT pAdapterContext,
  394. IN NDIS_HANDLE MacReceiveContext,
  395. IN LLC_HEADER LlcHeader,
  396. IN UINT SourceSap
  397. );
  398. VOID
  399. CopyNonZeroBytes(
  400. OUT PUCHAR pOldParameters,
  401. IN PUCHAR pNewParameters,
  402. IN PUCHAR pDefaultParameters,
  403. IN UINT Length
  404. );
  405. VOID
  406. ScanTimersDpc(
  407. IN PKDPC Dpc,
  408. IN PVOID DeferredContext,
  409. IN PVOID SystemArgument1,
  410. IN PVOID SystemArgument2
  411. );
  412. BOOLEAN
  413. TerminateTimer(
  414. IN PADAPTER_CONTEXT pAdapterContext,
  415. IN PLLC_TIMER pTimer
  416. );
  417. DLC_STATUS
  418. InitializeLinkTimers(
  419. IN OUT PDATA_LINK pLink
  420. );
  421. DLC_STATUS
  422. InitializeTimer(
  423. IN PADAPTER_CONTEXT pAdapterContext,
  424. PLLC_TIMER pTimer,
  425. UCHAR TickCount,
  426. UCHAR TickOne,
  427. UCHAR TickTwo,
  428. UINT Input,
  429. PVOID hContextHandle,
  430. UINT DefaultDelay,
  431. IN BOOLEAN StartNewTimer
  432. );
  433. VOID
  434. StartTimer(
  435. IN PLLC_TIMER pTimer
  436. );
  437. BOOLEAN
  438. StopTimer(
  439. IN PLLC_TIMER pTimer
  440. );
  441. VOID
  442. SwapMemCpy(
  443. IN BOOLEAN SwapBytes,
  444. IN PUCHAR pDest,
  445. IN PUCHAR pSrc,
  446. IN UINT Len
  447. );
  448. VOID
  449. LlcSleep(
  450. IN LONG lMicroSeconds
  451. );
  452. DLC_STATUS
  453. LlcInitUnicodeString(
  454. IN PUNICODE_STRING pStringDest,
  455. IN PUNICODE_STRING pStringSrc
  456. );
  457. VOID
  458. LlcFreeUnicodeString(
  459. IN PUNICODE_STRING UnicodeString
  460. );
  461. VOID
  462. InitiateAsyncLinkCommand(
  463. IN PDATA_LINK pLink,
  464. IN PLLC_PACKET pPacket,
  465. UINT StateMachineCommand,
  466. UINT CompletionCode
  467. );
  468. VOID
  469. AllocateCompletionPacket(
  470. IN PLLC_OBJECT pLlcObject,
  471. IN UINT CompletionCode,
  472. IN PVOID pPacket
  473. );
  474. VOID
  475. QueueCommandCompletion(
  476. IN PLLC_OBJECT pLlcObject,
  477. IN UINT CompletionCode,
  478. IN UINT Status
  479. );
  480. DLC_STATUS
  481. LinkFlowControl(
  482. IN PDATA_LINK pLink,
  483. IN UCHAR FlowControlState
  484. );
  485. VOID
  486. LlcInitializeTimerSystem(
  487. VOID
  488. );
  489. VOID
  490. LlcTerminateTimerSystem(
  491. VOID
  492. );
  493. VOID
  494. ExecuteAllBackroundProcesses(
  495. VOID
  496. );
  497. DLC_STATUS
  498. UpdateFunctionalAddress(
  499. IN PADAPTER_CONTEXT pAdapter
  500. );
  501. DLC_STATUS
  502. UpdateGroupAddress(
  503. IN PADAPTER_CONTEXT pAdapter,
  504. IN PBINDING_CONTEXT pBindingContext
  505. );
  506. NDIS_STATUS
  507. SetNdisParameter(
  508. IN PADAPTER_CONTEXT pAdapterContext,
  509. IN NDIS_OID Oid,
  510. IN PVOID pRequestInfo,
  511. IN UINT RequestLength
  512. );
  513. VOID
  514. CancelTransmitCommands(
  515. IN PLLC_OBJECT pLlcObject,
  516. IN UINT Status
  517. );
  518. VOID
  519. CancelTransmitsInQueue(
  520. IN PLLC_OBJECT pLlcObject,
  521. IN UINT Status,
  522. IN PLIST_ENTRY pQueue,
  523. IN PLLC_QUEUE pLlcQueue
  524. );
  525. VOID
  526. LlcNdis30RequestComplete(
  527. IN PVOID hAdapterContext,
  528. IN PNDIS_REQUEST RequestHandle,
  529. IN NDIS_REQUEST_TYPE RequestType,
  530. IN NDIS_STATUS NdisStatus
  531. );
  532. VOID
  533. LlcNdis30TransferDataComplete(
  534. IN PVOID pAdapterContext,
  535. IN PNDIS_REQUEST RequestHandle,
  536. IN NDIS_STATUS NdisStatus
  537. );
  538. VOID
  539. CompletePendingLlcCommand(
  540. PLLC_OBJECT pLlcObject
  541. );
  542. DLC_STATUS
  543. CheckAndDuplicatePacket(
  544. #if DBG
  545. IN PADAPTER_CONTEXT pAdapterContext,
  546. #endif
  547. IN PBINDING_CONTEXT pBinding,
  548. IN PLLC_PACKET pPacket,
  549. IN PLLC_QUEUE pQueue
  550. );
  551. VOID
  552. QueuePacket(
  553. IN PADAPTER_CONTEXT pAdapterContext,
  554. IN PLLC_QUEUE pQueue,
  555. IN PLLC_PACKET pPacket
  556. );
  557. VOID
  558. PrintLastInputs(
  559. IN PUCHAR pszMessage,
  560. IN PDATA_LINK pLink
  561. );
  562. VOID
  563. BackgroundProcessWithinLock(
  564. IN PADAPTER_CONTEXT pAdapterContext
  565. );
  566. #ifdef LLC_PRIVATE_PROTOTYPES
  567. //
  568. // LLCADDR.C...
  569. //
  570. UINT
  571. LlcCopyReceivedLanHeader(
  572. IN PBINDING_CONTEXT pBinding,
  573. IN PUCHAR DestinationAddress,
  574. IN PUCHAR SourceAddress
  575. );
  576. //
  577. // LLCLINK.C...
  578. //
  579. DLC_STATUS
  580. LlcOpenLinkStation(
  581. IN PLLC_SAP pSap,
  582. IN UCHAR DestinationSap,
  583. IN PUCHAR pDestinationAddress OPTIONAL,
  584. IN PUCHAR pReceivedLanHeader OPTIONAL,
  585. IN PVOID hClientStation,
  586. OUT PVOID *phLlcHandle
  587. );
  588. VOID
  589. LlcBindLinkStation(
  590. IN PDATA_LINK pStation,
  591. IN PVOID hClientHandle
  592. );
  593. VOID
  594. LlcConnectStation(
  595. IN PDATA_LINK pStation,
  596. IN PLLC_PACKET pPacket,
  597. IN PVOID pSourceRouting OPTIONAL,
  598. IN PUSHORT pusMaxInformationField
  599. );
  600. VOID
  601. LlcDisconnectStation(
  602. IN PDATA_LINK pLink,
  603. IN PLLC_PACKET pPacket
  604. );
  605. DLC_STATUS
  606. LlcFlowControl(
  607. IN PLLC_OBJECT pStation,
  608. IN UCHAR FlowControlState
  609. );
  610. DLC_STATUS
  611. LlcResetBroadcastAddresses(
  612. IN PBINDING_CONTEXT pBindingContext
  613. );
  614. //
  615. // LLCNDIS.C...
  616. //
  617. VOID
  618. LlcDisableAdapter(
  619. IN PBINDING_CONTEXT pBindingContext
  620. );
  621. DLC_STATUS
  622. LlcCloseAdapter(
  623. IN PBINDING_CONTEXT pBindingContext,
  624. IN BOOLEAN CloseAtNdisLevel
  625. );
  626. VOID
  627. LlcNdisReset(
  628. IN PBINDING_CONTEXT pBindingContext,
  629. IN PLLC_PACKET pPacket
  630. );
  631. //
  632. // LLCOBJ.C...
  633. //
  634. DLC_STATUS
  635. LlcOpenStation(
  636. IN PBINDING_CONTEXT pBindingContext,
  637. IN PVOID hClientHandle,
  638. IN USHORT ObjectAddress,
  639. IN UCHAR ObjectType,
  640. IN USHORT OpenOptions,
  641. OUT PVOID* phStation
  642. );
  643. DLC_STATUS
  644. LlcCloseStation(
  645. IN PLLC_OBJECT pStation,
  646. IN PLLC_PACKET pCompletionPacket
  647. );
  648. VOID
  649. CompleteObjectDelete(
  650. IN PLLC_OBJECT pStation
  651. );
  652. VOID
  653. LlcSetDirectOpenOptions(
  654. IN PLLC_OBJECT pDirect,
  655. IN USHORT OpenOptions
  656. );
  657. //
  658. // LLCRCV.C...
  659. //
  660. VOID
  661. LlcTransferData(
  662. IN PBINDING_CONTEXT pBindingContext,
  663. IN NDIS_HANDLE MacReceiveContext,
  664. IN PLLC_PACKET pPacket,
  665. IN PMDL pMdl,
  666. IN UINT uiCopyOffset,
  667. IN UINT cbCopyLength
  668. );
  669. //
  670. // LLCSEND.C...
  671. //
  672. VOID
  673. LlcSendI(
  674. IN PDATA_LINK pStation,
  675. IN PLLC_PACKET pPacket
  676. );
  677. VOID
  678. LlcSendU(
  679. IN PLLC_OBJECT pStation,
  680. IN PLLC_PACKET pPacket,
  681. IN UINT eFrameType,
  682. IN UINT uDestinationSap
  683. );
  684. #else
  685. //
  686. // LLCADDR.C...
  687. //
  688. UINT
  689. LlcCopyReceivedLanHeader(
  690. IN PVOID pBinding,
  691. IN PUCHAR DestinationAddress,
  692. IN PUCHAR SourceAddress
  693. );
  694. //
  695. // LLCLINK.C...
  696. //
  697. DLC_STATUS
  698. LlcOpenLinkStation(
  699. IN PVOID pSap,
  700. IN UCHAR DestinationSap,
  701. IN PUCHAR pDestinationAddress OPTIONAL,
  702. IN PUCHAR pReceivedLanHeader OPTIONAL,
  703. IN PVOID hClientStation,
  704. OUT PVOID *phLlcHandle
  705. );
  706. VOID
  707. LlcBindLinkStation(
  708. IN PVOID pStation,
  709. IN PVOID hClientHandle
  710. );
  711. VOID
  712. LlcConnectStation(
  713. IN PVOID pStation,
  714. IN PLLC_PACKET pPacket,
  715. IN PVOID pSourceRouting OPTIONAL,
  716. IN PUSHORT pusMaxInformationField
  717. );
  718. VOID
  719. LlcDisconnectStation(
  720. IN PVOID pLink,
  721. IN PLLC_PACKET pPacket
  722. );
  723. DLC_STATUS
  724. LlcFlowControl(
  725. IN PVOID pStation,
  726. IN UCHAR FlowControlState
  727. );
  728. DLC_STATUS
  729. LlcResetBroadcastAddresses(
  730. IN PVOID pBindingContext
  731. );
  732. //
  733. // LLCNDIS.C...
  734. //
  735. VOID
  736. LlcDisableAdapter(
  737. IN PVOID pBindingContext
  738. );
  739. DLC_STATUS
  740. LlcCloseAdapter(
  741. IN PVOID pBindingContext,
  742. IN BOOLEAN CloseAtNdisLevel
  743. );
  744. VOID
  745. LlcNdisReset(
  746. IN PVOID pBindingContext,
  747. IN PLLC_PACKET pPacket
  748. );
  749. //
  750. // LLCOBJ.C...
  751. //
  752. DLC_STATUS
  753. LlcOpenStation(
  754. IN PVOID pBindingContext,
  755. IN PVOID hClientHandle,
  756. IN USHORT ObjectAddress,
  757. IN UCHAR ObjectType,
  758. IN USHORT OpenOptions,
  759. OUT PVOID* phStation
  760. );
  761. DLC_STATUS
  762. LlcCloseStation(
  763. IN PVOID pStation,
  764. IN PLLC_PACKET pCompletionPacket
  765. );
  766. VOID
  767. CompleteObjectDelete(
  768. IN PVOID pStation
  769. );
  770. VOID
  771. LlcSetDirectOpenOptions(
  772. IN PVOID pDirect,
  773. IN USHORT OpenOptions
  774. );
  775. //
  776. // LLCRCV.C...
  777. //
  778. VOID
  779. LlcTransferData(
  780. IN PBINDING_CONTEXT pBindingContext,
  781. IN NDIS_HANDLE MacReceiveContext,
  782. IN PLLC_PACKET pPacket,
  783. IN PMDL pMdl,
  784. IN UINT uiCopyOffset,
  785. IN UINT cbCopyLength
  786. );
  787. //
  788. // LLCSEND.C...
  789. //
  790. VOID
  791. LlcSendI(
  792. IN PVOID pStation,
  793. IN PLLC_PACKET pPacket
  794. );
  795. VOID
  796. LlcSendU(
  797. IN PVOID pStation,
  798. IN PLLC_PACKET pPacket,
  799. IN UINT eFrameType,
  800. IN UINT uDestinationSap
  801. );
  802. #endif
  803.