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.

1708 lines
46 KiB

  1. /*++
  2. Copyright (c) 1990-1995 Microsoft Corporation
  3. Module Name:
  4. cprotos.h
  5. Abstract:
  6. NDIS wrapper function prototypes for common functions
  7. Author:
  8. Environment:
  9. Kernel mode, FSD
  10. Revision History:
  11. Jun-95 Jameel Hyder Split up from a monolithic file
  12. --*/
  13. NTSTATUS
  14. ndisMIrpCompletion(
  15. IN PDEVICE_OBJECT DeviceObject,
  16. IN PIRP Irp,
  17. IN PVOID Context
  18. );
  19. #undef NdisMSetAttributes
  20. VOID
  21. NdisMSetAttributes(
  22. IN NDIS_HANDLE MiniportAdapterHandle,
  23. IN NDIS_HANDLE MiniportAdapterContext,
  24. IN BOOLEAN BusMaster,
  25. IN NDIS_INTERFACE_TYPE AdapterType
  26. );
  27. NDIS_STATUS
  28. ndisPnPNotifyAllTransports(
  29. IN PNDIS_MINIPORT_BLOCK Miniport,
  30. IN NET_PNP_EVENT_CODE PnpEvent,
  31. IN PVOID Buffer,
  32. IN ULONG BufferLength
  33. );
  34. NDIS_STATUS
  35. FASTCALL
  36. ndisPnPNotifyBinding(
  37. IN PNDIS_OPEN_BLOCK Open,
  38. IN PNET_PNP_EVENT NetPnpEvent
  39. );
  40. PNDIS_OPEN_BLOCK
  41. FASTCALL
  42. ndisReferenceNextUnprocessedOpen(
  43. IN PNDIS_MINIPORT_BLOCK Miniport
  44. );
  45. VOID
  46. ndisUnprocessAllOpens(
  47. IN PNDIS_MINIPORT_BLOCK Miniport
  48. );
  49. NTSTATUS
  50. ndisCompletionRoutine(
  51. IN PDEVICE_OBJECT pdo,
  52. IN PIRP pirp,
  53. IN PVOID Context
  54. );
  55. NTSTATUS
  56. ndisPnPDispatch(
  57. IN PDEVICE_OBJECT DeviceObject,
  58. IN PIRP Irp
  59. );
  60. BOOLEAN
  61. ndisMIsr(
  62. IN PKINTERRUPT KInterrupt,
  63. IN PVOID Context
  64. );
  65. VOID
  66. ndisMDpc(
  67. IN PVOID SystemSpecific1,
  68. IN PVOID InterruptContext,
  69. IN PVOID SystemSpecific2,
  70. IN PVOID SystemSpecific3
  71. );
  72. VOID
  73. ndisMWakeUpDpcX(
  74. IN PKDPC Dpc,
  75. IN PVOID Context,
  76. IN PVOID SystemContext1,
  77. IN PVOID SystemContext2
  78. );
  79. VOID
  80. ndisMPollMediaState(
  81. IN PNDIS_MINIPORT_BLOCK Miniport
  82. );
  83. #undef NdisMSetTimer
  84. VOID
  85. NdisMSetTimer(
  86. IN PNDIS_MINIPORT_TIMER MiniportTimer,
  87. IN UINT MillisecondsToDelay
  88. );
  89. VOID
  90. ndisMDpcX(
  91. IN PVOID SystemSpecific1,
  92. IN PVOID InterruptContext,
  93. IN PVOID SystemSpecific2,
  94. IN PVOID SystemSpecific3
  95. );
  96. #if NDIS_RECV_SCALE
  97. BOOLEAN
  98. ndisMiniportIsr(
  99. IN PKINTERRUPT KInterrupt,
  100. IN PVOID Context
  101. );
  102. VOID
  103. ndisMiniportMultipleDpc(
  104. IN PVOID SystemSpecific1,
  105. IN PVOID InterruptContext,
  106. IN PVOID SystemSpecific2,
  107. IN PVOID SystemSpecific3
  108. );
  109. VOID
  110. ndisMiniportDpc(
  111. IN PVOID SystemSpecific1,
  112. IN PVOID InterruptContext,
  113. IN PVOID SystemSpecific2,
  114. IN PVOID SystemSpecific3
  115. );
  116. #endif
  117. VOID
  118. ndisMTimerDpcX(
  119. IN PVOID SystemSpecific1,
  120. IN PVOID InterruptContext,
  121. IN PVOID SystemSpecific2,
  122. IN PVOID SystemSpecific3
  123. );
  124. VOID
  125. ndisMWakeUpDpc(
  126. IN PKDPC Dpc,
  127. IN PVOID Context,
  128. IN PVOID SystemContext1,
  129. IN PVOID SystemContext2
  130. );
  131. VOID
  132. ndisMDeferredDpc(
  133. IN PKDPC Dpc,
  134. IN PVOID Context,
  135. IN PVOID SystemContext1,
  136. IN PVOID SystemContext2
  137. );
  138. NDIS_STATUS
  139. NdisCoAssignInstanceName(
  140. IN NDIS_HANDLE NdisVcHandle,
  141. IN PNDIS_STRING BaseInstanceName,
  142. OUT PNDIS_STRING pVcInstanceName OPTIONAL
  143. );
  144. NDIS_STATUS
  145. ndisMChangeClass(
  146. IN UINT OldFilterClasses,
  147. IN UINT NewFilterClasses,
  148. IN NDIS_HANDLE BindingHandle,
  149. IN PNDIS_REQUEST NdisRequest,
  150. IN BOOLEAN Set
  151. );
  152. NDIS_STATUS
  153. ndisMReset(
  154. IN NDIS_HANDLE NdisBindingHandle
  155. );
  156. NDIS_STATUS
  157. ndisMRequest(
  158. IN NDIS_HANDLE NdisBindingHandle,
  159. IN PNDIS_REQUEST NdisRequest
  160. );
  161. NDIS_STATUS
  162. ndisMRequestX(
  163. IN NDIS_HANDLE NdisBindingHandle,
  164. IN PNDIS_REQUEST NdisRequest
  165. );
  166. VOID
  167. FASTCALL
  168. ndisMAbortRequests(
  169. IN PNDIS_MINIPORT_BLOCK Miniport
  170. );
  171. VOID
  172. FASTCALL
  173. ndisMProcessDeferred(
  174. IN PNDIS_MINIPORT_BLOCK Miniport
  175. );
  176. NDIS_STATUS
  177. ndisMTransferData(
  178. IN NDIS_HANDLE NdisBindingHandle,
  179. IN NDIS_HANDLE MacReceiveContext,
  180. IN UINT ByteOffset,
  181. IN UINT BytesToTransfer,
  182. IN OUT PNDIS_PACKET Packet,
  183. OUT PUINT BytesTransferred
  184. );
  185. #undef NdisMTransferDataComplete
  186. VOID
  187. NdisMTransferDataComplete(
  188. IN NDIS_HANDLE MiniportAdapterHandle,
  189. IN PNDIS_PACKET Packet,
  190. IN NDIS_STATUS Status,
  191. IN UINT BytesTransferred
  192. );
  193. VOID
  194. FASTCALL
  195. ndisMDeferredReturnPackets(
  196. IN PNDIS_MINIPORT_BLOCK Miniport
  197. );
  198. VOID
  199. ndisMIndicatePacket(
  200. IN PNDIS_MINIPORT_BLOCK Miniport,
  201. IN PPNDIS_PACKET PacketArray,
  202. IN UINT NumberOfPackets
  203. );
  204. VOID
  205. ndisMDummyIndicatePacket(
  206. IN PNDIS_MINIPORT_BLOCK Miniport,
  207. IN PPNDIS_PACKET PacketArray,
  208. IN UINT NumberOfPackets
  209. );
  210. NTSTATUS
  211. ndisWMIDispatch(
  212. IN PDEVICE_OBJECT DeviceObject,
  213. IN PIRP pirp
  214. );
  215. NTSTATUS
  216. FASTCALL
  217. ndisWmiDisableEvents(
  218. IN PNDIS_MINIPORT_BLOCK Miniport,
  219. IN LPGUID Guid
  220. );
  221. NTSTATUS
  222. FASTCALL
  223. ndisWmiEnableEvents(
  224. IN PNDIS_MINIPORT_BLOCK Miniport,
  225. IN LPGUID Guid
  226. );
  227. NTSTATUS
  228. ndisWmiChangeSingleItem(
  229. IN PNDIS_MINIPORT_BLOCK Miniport,
  230. IN PWNODE_SINGLE_ITEM wnode,
  231. IN ULONG BufferSize,
  232. OUT PULONG pReturnSize,
  233. IN PIRP Irp
  234. );
  235. NTSTATUS
  236. ndisWmiChangeSingleInstance(
  237. IN PNDIS_MINIPORT_BLOCK Miniport,
  238. IN PWNODE_SINGLE_INSTANCE wnode,
  239. IN ULONG BufferSize,
  240. OUT PULONG pReturnSize,
  241. IN PIRP Irp
  242. );
  243. NTSTATUS
  244. ndisWmiQuerySingleInstance(
  245. IN PNDIS_MINIPORT_BLOCK Miniport,
  246. IN PWNODE_SINGLE_INSTANCE wnode,
  247. IN ULONG BufferSize,
  248. OUT PULONG pReturnSize,
  249. IN PIRP Irp
  250. );
  251. NTSTATUS
  252. ndisWmiQueryAllData(
  253. IN PNDIS_MINIPORT_BLOCK Miniport,
  254. IN LPGUID guid,
  255. IN PWNODE_ALL_DATA wnode,
  256. IN ULONG BufferSize,
  257. OUT PULONG pReturnSize,
  258. IN PIRP Irp
  259. );
  260. NTSTATUS
  261. ndisQueryGuidData(
  262. IN PUCHAR Buffer,
  263. IN ULONG BufferLength,
  264. IN PNDIS_MINIPORT_BLOCK Miniport,
  265. IN PNDIS_CO_VC_PTR_BLOCK pVcBlock,
  266. IN LPGUID guid,
  267. IN PIRP Irp
  268. );
  269. NTSTATUS
  270. ndisQueryGuidDataSize(
  271. OUT PULONG pBytesNeeded,
  272. IN PNDIS_MINIPORT_BLOCK Miniport,
  273. IN PNDIS_CO_VC_PTR_BLOCK pVcBlock OPTIONAL,
  274. IN LPGUID guid
  275. );
  276. NTSTATUS
  277. ndisWmiGetGuid(
  278. OUT PNDIS_GUID * ppNdisGuid,
  279. IN PNDIS_MINIPORT_BLOCK Miniport,
  280. IN LPGUID guid,
  281. IN NDIS_STATUS status
  282. );
  283. NTSTATUS
  284. ndisWmiRegister(
  285. IN PNDIS_MINIPORT_BLOCK Miniport,
  286. IN ULONG_PTR RegistrationType,
  287. IN PWMIREGINFO wmiRegInfo,
  288. IN ULONG wmiRegInfoSize,
  289. IN PULONG pReturnSize
  290. );
  291. VOID
  292. ndisNotifyWmiBindUnbind(
  293. PNDIS_MINIPORT_BLOCK Miniport,
  294. PNDIS_PROTOCOL_BLOCK Protocol,
  295. BOOLEAN fBind
  296. );
  297. VOID
  298. ndisNotifyDevicePowerStateChange(
  299. PNDIS_MINIPORT_BLOCK Miniport,
  300. NDIS_DEVICE_POWER_STATE PowerState
  301. );
  302. NDIS_STATUS
  303. ndisQuerySupportedGuidToOidList(
  304. IN PNDIS_MINIPORT_BLOCK Miniport
  305. );
  306. USHORT
  307. ndisWmiMapOids(
  308. IN OUT PNDIS_GUID pDst,
  309. IN IN USHORT cDst,
  310. IN PNDIS_OID pOidList,
  311. IN USHORT cOidList,
  312. IN PNDIS_GUID ndisSupportedList,
  313. IN ULONG cSupportedList
  314. );
  315. NDIS_STATUS
  316. ndisQueryCustomGuids(
  317. IN PNDIS_MINIPORT_BLOCK Miniport,
  318. IN PNDIS_REQUEST Request,
  319. OUT PNDIS_GUID * ppGuidToOid,
  320. OUT PUSHORT pcGuidToOid
  321. );
  322. NTSTATUS
  323. ndisWmiFindInstanceName(
  324. IN PNDIS_CO_VC_PTR_BLOCK * ppVcBlock,
  325. IN PNDIS_MINIPORT_BLOCK Miniport,
  326. IN PWSTR pInstanceName,
  327. IN USHORT cbInstanceName
  328. );
  329. NDIS_STATUS
  330. ndisQuerySetMiniport(
  331. IN PNDIS_MINIPORT_BLOCK Miniport,
  332. IN PNDIS_CO_VC_PTR_BLOCK pVcBlock OPTIONAL,
  333. IN BOOLEAN fSet,
  334. IN PNDIS_REQUEST pRequest,
  335. IN PLARGE_INTEGER TimeOut OPTIONAL
  336. );
  337. NDIS_STATUS
  338. ndisMProcessResetRequested(
  339. IN PNDIS_MINIPORT_BLOCK Miniport,
  340. OUT PBOOLEAN pAddressingReset
  341. );
  342. #undef NdisMIndicateStatus
  343. VOID
  344. NdisMIndicateStatus(
  345. IN NDIS_HANDLE MiniportHandle,
  346. IN NDIS_STATUS GeneralStatus,
  347. IN PVOID StatusBuffer,
  348. IN UINT StatusBufferSize
  349. );
  350. #undef NdisMIndicateStatusComplete
  351. VOID
  352. NdisMIndicateStatusComplete(
  353. IN NDIS_HANDLE MiniportHandle
  354. );
  355. #undef NdisMResetComplete
  356. VOID
  357. NdisMResetComplete(
  358. IN NDIS_HANDLE MiniportAdapterHandle,
  359. IN NDIS_STATUS Status,
  360. IN BOOLEAN AddressingReset
  361. );
  362. VOID
  363. ndisMResetCompleteStage1(
  364. IN PNDIS_MINIPORT_BLOCK Miniport,
  365. IN NDIS_STATUS Status,
  366. IN BOOLEAN AddressingReset
  367. );
  368. VOID
  369. FASTCALL
  370. ndisMResetCompleteStage2(
  371. IN PNDIS_MINIPORT_BLOCK Miniport
  372. );
  373. //
  374. // WAN Handlers
  375. //
  376. NDIS_STATUS
  377. ndisMWanSend(
  378. IN NDIS_HANDLE NdisBindingHandle,
  379. IN NDIS_HANDLE NdisLinkHandle,
  380. IN PNDIS_WAN_PACKET Packet
  381. );
  382. #undef NdisMWanIndicateReceive
  383. VOID
  384. NdisMWanIndicateReceive(
  385. OUT PNDIS_STATUS Status,
  386. IN NDIS_HANDLE MiniportAdapterHandle,
  387. IN NDIS_HANDLE NdisLinkContext,
  388. IN PUCHAR Packet,
  389. IN ULONG PacketSize
  390. );
  391. #undef NdisMWanIndicateReceiveComplete
  392. VOID
  393. NdisMWanIndicateReceiveComplete(
  394. IN NDIS_HANDLE MiniportAdapterHandle,
  395. IN NDIS_HANDLE NdisLinkContext
  396. );
  397. NDIS_STATUS
  398. ndisMAllocateRequest(
  399. OUT PNDIS_REQUEST * pRequest,
  400. IN NDIS_OID Oid,
  401. IN PVOID Buffer OPTIONAL,
  402. IN ULONG BufferLength
  403. );
  404. // VOID
  405. // ndisMFreeInternalRequest(
  406. // IN PVOID PRequest
  407. // )
  408. #define ndisMFreeInternalRequest(_pRequest) FREE_POOL(_pRequest)
  409. VOID
  410. ndisMTimerDpc(
  411. IN PKDPC Dpc,
  412. IN PVOID Context,
  413. IN PVOID SystemContext1,
  414. IN PVOID SystemContext2
  415. );
  416. VOID
  417. FASTCALL
  418. ndisMAbortPackets(
  419. IN PNDIS_MINIPORT_BLOCK Miniport,
  420. IN PNDIS_OPEN_BLOCK Open OPTIONAL,
  421. IN PVOID CancelId OPTIONAL
  422. );
  423. BOOLEAN
  424. FASTCALL
  425. ndisMLoopbackPacketX(
  426. IN PNDIS_MINIPORT_BLOCK Miniport,
  427. IN PNDIS_PACKET Packet
  428. );
  429. BOOLEAN
  430. FASTCALL
  431. ndisMIsLoopbackPacket(
  432. IN PNDIS_MINIPORT_BLOCK Miniport,
  433. IN PNDIS_PACKET Packet,
  434. OUT PNDIS_PACKET * LoopbackPacket OPTIONAL
  435. );
  436. VOID
  437. ndisMRundownRequests(
  438. IN PNDIS_WORK_ITEM pWorkItem
  439. );
  440. VOID
  441. FASTCALL
  442. ndisMDoRequests(
  443. IN PNDIS_MINIPORT_BLOCK Miniport
  444. );
  445. VOID
  446. ndisMCopyFromPacketToBuffer(
  447. IN PNDIS_PACKET Packet,
  448. IN UINT Offset,
  449. IN UINT BytesToCopy,
  450. OUT PUCHAR Buffer,
  451. OUT PUINT BytesCopied
  452. );
  453. VOID
  454. FASTCALL
  455. ndisMAdjustFilters(
  456. IN PNDIS_MINIPORT_BLOCK Miniport,
  457. IN PFILTERDBS FilterDB
  458. );
  459. LONG
  460. ndisMDoMiniportOp(
  461. IN PNDIS_MINIPORT_BLOCK Miniport,
  462. IN BOOLEAN Query,
  463. IN ULONG Oid,
  464. IN PVOID Buf,
  465. IN LONG BufSize,
  466. IN LONG ErrorCodesToReturn,
  467. IN BOOLEAN fMandatory
  468. );
  469. VOID
  470. ndisMOpenAdapter(
  471. OUT PNDIS_STATUS Status,
  472. IN PNDIS_OPEN_BLOCK NewOpenP,
  473. IN BOOLEAN UsingEncapsulation
  474. );
  475. VOID
  476. FASTCALL
  477. ndisMSyncQueryInformationComplete(
  478. IN PNDIS_MINIPORT_BLOCK Miniport,
  479. IN NDIS_STATUS Status,
  480. IN PNDIS_REQUEST AbortedRequest
  481. );
  482. #undef NdisMSetInformationComplete
  483. VOID
  484. NdisMSetInformationComplete(
  485. IN NDIS_HANDLE MiniportAdapterHandle,
  486. IN NDIS_STATUS Status
  487. );
  488. #undef NdisMQueryInformationComplete
  489. VOID
  490. NdisMQueryInformationComplete(
  491. IN NDIS_HANDLE MiniportAdapterHandle,
  492. IN NDIS_STATUS Status
  493. );
  494. VOID
  495. FASTCALL
  496. ndisMSyncSetInformationComplete(
  497. IN PNDIS_MINIPORT_BLOCK Miniport,
  498. IN NDIS_STATUS Status,
  499. IN PNDIS_REQUEST AbortedRequest
  500. );
  501. VOID
  502. ndisMRequestSetInformationPost(
  503. IN PNDIS_MINIPORT_BLOCK Miniport,
  504. IN PNDIS_REQUEST Request,
  505. IN NDIS_STATUS Status
  506. );
  507. BOOLEAN
  508. FASTCALL
  509. ndisMQueueRequest(
  510. IN PNDIS_MINIPORT_BLOCK Miniport,
  511. IN PNDIS_REQUEST Request
  512. );
  513. VOID
  514. FASTCALL
  515. ndisMRestoreFilterSettings(
  516. IN PNDIS_MINIPORT_BLOCK Miniport,
  517. IN PNDIS_OPEN_BLOCK Open OPTIONAL,
  518. IN BOOLEAN fReset
  519. );
  520. NDIS_STATUS
  521. FASTCALL
  522. ndisMSetPacketFilter(
  523. IN PNDIS_MINIPORT_BLOCK Miniport,
  524. IN PNDIS_REQUEST Request
  525. );
  526. NDIS_STATUS
  527. FASTCALL
  528. ndisMSetProtocolOptions(
  529. IN PNDIS_MINIPORT_BLOCK Miniport,
  530. IN PNDIS_REQUEST Request
  531. );
  532. NDIS_STATUS
  533. FASTCALL
  534. ndisMSetCurrentLookahead(
  535. IN PNDIS_MINIPORT_BLOCK Miniport,
  536. IN PNDIS_REQUEST Request
  537. );
  538. NDIS_STATUS
  539. FASTCALL
  540. ndisMSetMulticastList(
  541. IN PNDIS_MINIPORT_BLOCK Miniport,
  542. IN PNDIS_REQUEST Request
  543. );
  544. NDIS_STATUS
  545. FASTCALL
  546. ndisMSetFunctionalAddress(
  547. IN PNDIS_MINIPORT_BLOCK Miniport,
  548. IN PNDIS_REQUEST Request
  549. );
  550. NDIS_STATUS
  551. FASTCALL
  552. ndisMSetGroupAddress(
  553. IN PNDIS_MINIPORT_BLOCK Miniport,
  554. IN PNDIS_REQUEST Request
  555. );
  556. NDIS_STATUS
  557. FASTCALL
  558. ndisMSetFddiMulticastList(
  559. IN PNDIS_MINIPORT_BLOCK Miniport,
  560. IN PNDIS_REQUEST Request
  561. );
  562. NDIS_STATUS
  563. FASTCALL
  564. ndisMSetAddWakeUpPattern(
  565. IN PNDIS_MINIPORT_BLOCK Miniport,
  566. IN PNDIS_REQUEST Request
  567. );
  568. NDIS_STATUS
  569. FASTCALL
  570. ndisMSetRemoveWakeUpPattern(
  571. IN PNDIS_MINIPORT_BLOCK Miniport,
  572. IN PNDIS_REQUEST Request
  573. );
  574. NDIS_STATUS
  575. FASTCALL
  576. ndisMSetEnableWakeUp(
  577. IN PNDIS_MINIPORT_BLOCK Miniport,
  578. IN PNDIS_REQUEST Request
  579. );
  580. NDIS_STATUS
  581. ndisMSetInformation(
  582. IN PNDIS_MINIPORT_BLOCK Miniport,
  583. IN PNDIS_REQUEST Request
  584. );
  585. NDIS_STATUS
  586. FASTCALL
  587. ndisMQueryCurrentPacketFilter(
  588. IN PNDIS_MINIPORT_BLOCK Miniport,
  589. IN PNDIS_REQUEST Request
  590. );
  591. NDIS_STATUS
  592. FASTCALL
  593. ndisMQueryMediaSupported(
  594. IN PNDIS_MINIPORT_BLOCK Miniport,
  595. IN PNDIS_REQUEST Request
  596. );
  597. NDIS_STATUS
  598. FASTCALL
  599. ndisMQueryEthernetMulticastList(
  600. IN PNDIS_MINIPORT_BLOCK Miniport,
  601. IN PNDIS_REQUEST Request
  602. );
  603. NDIS_STATUS
  604. FASTCALL
  605. ndisMQueryLongMulticastList(
  606. IN PNDIS_MINIPORT_BLOCK Miniport,
  607. IN PNDIS_REQUEST Request
  608. );
  609. NDIS_STATUS
  610. FASTCALL
  611. ndisMQueryShortMulticastList(
  612. IN PNDIS_MINIPORT_BLOCK Miniport,
  613. IN PNDIS_REQUEST Request
  614. );
  615. NDIS_STATUS
  616. FASTCALL
  617. ndisMQueryMaximumFrameSize(
  618. IN PNDIS_MINIPORT_BLOCK Miniport,
  619. IN PNDIS_REQUEST Request
  620. );
  621. NDIS_STATUS
  622. FASTCALL
  623. ndisMQueryMaximumTotalSize(
  624. IN PNDIS_MINIPORT_BLOCK Miniport,
  625. IN PNDIS_REQUEST Request
  626. );
  627. NDIS_STATUS
  628. FASTCALL
  629. ndisMQueryNetworkAddress(
  630. IN PNDIS_MINIPORT_BLOCK Miniport,
  631. IN PNDIS_REQUEST Request
  632. );
  633. NDIS_STATUS
  634. FASTCALL
  635. ndisMQueryWakeUpPatternList(
  636. IN PNDIS_MINIPORT_BLOCK Miniport,
  637. IN PNDIS_REQUEST Request
  638. );
  639. NDIS_STATUS
  640. FASTCALL
  641. ndisMQueryEnableWakeUp(
  642. IN PNDIS_MINIPORT_BLOCK Miniport,
  643. IN PNDIS_REQUEST Request
  644. );
  645. NDIS_STATUS
  646. ndisMQueryInformation(
  647. IN PNDIS_MINIPORT_BLOCK Miniport,
  648. IN PNDIS_REQUEST Request
  649. );
  650. NDIS_STATUS
  651. FASTCALL
  652. ndisMDispatchRequest(
  653. IN PNDIS_MINIPORT_BLOCK Miniport,
  654. IN PNDIS_REQUEST Request,
  655. IN BOOLEAN fQuery
  656. );
  657. //
  658. // X Filter
  659. //
  660. VOID
  661. FASTCALL
  662. XFilterLockHandler(
  663. IN PETH_FILTER Filter,
  664. IN OUT PLOCK_STATE pLockState
  665. );
  666. VOID
  667. XRemoveAndFreeBinding(
  668. IN PX_FILTER Filter,
  669. IN PX_BINDING_INFO Binding
  670. );
  671. VOID
  672. XRemoveBindingFromLists(
  673. IN PX_FILTER Filter,
  674. IN PX_BINDING_INFO Binding
  675. );
  676. NDIS_STATUS
  677. XFilterAdjust(
  678. IN PX_FILTER Filter,
  679. IN NDIS_HANDLE NdisFilterHandle,
  680. IN UINT FilterClasses,
  681. IN BOOLEAN Set
  682. );
  683. VOID
  684. XUndoFilterAdjust(
  685. IN PX_FILTER Filter,
  686. IN PX_BINDING_INFO Binding
  687. );
  688. BOOLEAN
  689. XNoteFilterOpenAdapter(
  690. IN PX_FILTER Filter,
  691. IN NDIS_HANDLE NdisBindingHandle,
  692. OUT PNDIS_HANDLE NdisFilterHandle
  693. );
  694. //
  695. // EthFilterxxx
  696. //
  697. BOOLEAN
  698. EthCreateFilter(
  699. IN UINT MaximumMulticastAddresses,
  700. IN PUCHAR AdapterAddress,
  701. OUT PETH_FILTER * Filter
  702. );
  703. VOID
  704. EthDeleteFilter(
  705. IN PETH_FILTER Filter
  706. );
  707. NDIS_STATUS
  708. EthDeleteFilterOpenAdapter(
  709. IN PETH_FILTER Filter,
  710. IN NDIS_HANDLE NdisFilterHandle
  711. );
  712. NDIS_STATUS
  713. EthChangeFilterAddresses(
  714. IN PETH_FILTER Filter,
  715. IN NDIS_HANDLE NdisFilterHandle,
  716. IN UINT AddressCount,
  717. IN UCHAR Addresses[][ETH_LENGTH_OF_ADDRESS],
  718. IN BOOLEAN Set
  719. );
  720. BOOLEAN
  721. EthShouldAddressLoopBack(
  722. IN PETH_FILTER Filter,
  723. IN UCHAR Address[ETH_LENGTH_OF_ADDRESS]
  724. );
  725. UINT
  726. EthNumberOfOpenFilterAddresses(
  727. IN NDIS_HANDLE NdisFilterHandle
  728. );
  729. VOID
  730. EthQueryGlobalFilterAddresses(
  731. OUT PNDIS_STATUS Status,
  732. IN PETH_FILTER Filter,
  733. IN UINT SizeOfArray,
  734. OUT PUINT NumberOfAddresses,
  735. IN OUT UCHAR AddressArray[][ETH_LENGTH_OF_ADDRESS]
  736. );
  737. VOID
  738. EthQueryOpenFilterAddresses(
  739. OUT PNDIS_STATUS Status,
  740. IN PETH_FILTER Filter,
  741. IN NDIS_HANDLE NdisFilterHandle,
  742. IN UINT SizeOfArray,
  743. OUT PUINT NumberOfAddresses,
  744. IN OUT UCHAR AddressArray[][ETH_LENGTH_OF_ADDRESS]
  745. );
  746. VOID
  747. EthFilterIndicateReceive(
  748. IN PETH_FILTER Filter,
  749. IN NDIS_HANDLE MacReceiveContext,
  750. IN PCHAR Address,
  751. IN PVOID HeaderBuffer,
  752. IN UINT HeaderBufferSize,
  753. IN PVOID LookaheadBuffer,
  754. IN UINT LookaheadBufferSize,
  755. IN UINT PacketSize
  756. );
  757. VOID
  758. EthFilterIndicateReceiveComplete(
  759. IN PETH_FILTER Filter
  760. );
  761. BOOLEAN
  762. FASTCALL
  763. ethFindMulticast(
  764. IN UINT NumberOfAddresses,
  765. IN UCHAR AddressArray[][ETH_LENGTH_OF_ADDRESS],
  766. IN UCHAR MulticastAddress[ETH_LENGTH_OF_ADDRESS]
  767. );
  768. VOID
  769. ethCompleteChangeFilterAddresses(
  770. IN PETH_FILTER Filter,
  771. IN NDIS_STATUS Status,
  772. IN PETH_BINDING_INFO LocalBinding OPTIONAL,
  773. IN BOOLEAN WriteFilterHeld
  774. );
  775. VOID
  776. ethFilterDprIndicateReceivePacket(
  777. IN NDIS_HANDLE MiniportHandle,
  778. IN PPNDIS_PACKET ReceivedPackets,
  779. IN UINT NumberOfPackets
  780. );
  781. VOID
  782. EthFilterDprIndicateReceive(
  783. IN PETH_FILTER Filter,
  784. IN NDIS_HANDLE MacReceiveContext,
  785. IN PCHAR Address,
  786. IN PVOID HeaderBuffer,
  787. IN UINT HeaderBufferSize,
  788. IN PVOID LookaheadBuffer,
  789. IN UINT LookaheadBufferSize,
  790. IN UINT PacketSize
  791. );
  792. VOID
  793. EthFilterDprIndicateReceiveComplete(
  794. IN PETH_FILTER Filter
  795. );
  796. // UINT
  797. // ethNumberOfGlobalAddresses(
  798. // IN PETH_FILTER Filter
  799. // );
  800. #define ethNumberOfGlobalAddresses(_Filter) (_Filter)->NumAddresses
  801. //
  802. // FddiFilterxxxx
  803. //
  804. BOOLEAN
  805. FddiCreateFilter(
  806. IN UINT MaximumMulticastLongAddresses,
  807. IN UINT MaximumMulticastShortAddresses,
  808. IN PUCHAR AdapterLongAddress,
  809. IN PUCHAR AdapterShortAddress,
  810. OUT PFDDI_FILTER * Filter
  811. );
  812. VOID
  813. FddiDeleteFilter(
  814. IN PFDDI_FILTER Filter
  815. );
  816. NDIS_STATUS
  817. FddiDeleteFilterOpenAdapter(
  818. IN PFDDI_FILTER Filter,
  819. IN NDIS_HANDLE NdisFilterHandle
  820. );
  821. NDIS_STATUS
  822. FddiChangeFilterLongAddresses(
  823. IN PFDDI_FILTER Filter,
  824. IN NDIS_HANDLE NdisFilterHandle,
  825. IN UINT AddressCount,
  826. IN CHAR Addresses[][FDDI_LENGTH_OF_LONG_ADDRESS],
  827. IN BOOLEAN Set
  828. );
  829. NDIS_STATUS
  830. FddiChangeFilterShortAddresses(
  831. IN PFDDI_FILTER Filter,
  832. IN NDIS_HANDLE NdisFilterHandle,
  833. IN UINT AddressCount,
  834. IN CHAR Addresses[][FDDI_LENGTH_OF_SHORT_ADDRESS],
  835. IN BOOLEAN Set
  836. );
  837. BOOLEAN
  838. FddiShouldAddressLoopBack(
  839. IN PFDDI_FILTER Filter,
  840. IN UCHAR Address[],
  841. IN UINT LengthOfAddress
  842. );
  843. UINT
  844. FddiNumberOfOpenFilterLongAddresses(
  845. IN PFDDI_FILTER Filter,
  846. IN NDIS_HANDLE NdisFilterHandle
  847. );
  848. UINT
  849. FddiNumberOfOpenFilterShortAddresses(
  850. IN PFDDI_FILTER Filter,
  851. IN NDIS_HANDLE NdisFilterHandle
  852. );
  853. VOID
  854. FddiQueryGlobalFilterLongAddresses(
  855. OUT PNDIS_STATUS Status,
  856. IN PFDDI_FILTER Filter,
  857. IN UINT SizeOfArray,
  858. OUT PUINT NumberOfAddresses,
  859. IN OUT CHAR AddressArray[][FDDI_LENGTH_OF_LONG_ADDRESS]
  860. );
  861. VOID
  862. FddiQueryGlobalFilterShortAddresses(
  863. OUT PNDIS_STATUS Status,
  864. IN PFDDI_FILTER Filter,
  865. IN UINT SizeOfArray,
  866. OUT PUINT NumberOfAddresses,
  867. IN OUT CHAR AddressArray[][FDDI_LENGTH_OF_SHORT_ADDRESS]
  868. );
  869. VOID
  870. FddiQueryOpenFilterLongAddresses(
  871. OUT PNDIS_STATUS Status,
  872. IN PFDDI_FILTER Filter,
  873. IN NDIS_HANDLE NdisFilterHandle,
  874. IN UINT SizeOfArray,
  875. OUT PUINT NumberOfAddresses,
  876. IN OUT CHAR AddressArray[][FDDI_LENGTH_OF_LONG_ADDRESS]
  877. );
  878. VOID
  879. FddiQueryOpenFilterShortAddresses(
  880. OUT PNDIS_STATUS Status,
  881. IN PFDDI_FILTER Filter,
  882. IN NDIS_HANDLE NdisFilterHandle,
  883. IN UINT SizeOfArray,
  884. OUT PUINT NumberOfAddresses,
  885. IN OUT CHAR AddressArray[][FDDI_LENGTH_OF_SHORT_ADDRESS]
  886. );
  887. VOID
  888. FddiFilterIndicateReceive(
  889. IN PFDDI_FILTER Filter,
  890. IN NDIS_HANDLE MacReceiveContext,
  891. IN PCHAR Address,
  892. IN UINT AddressLength,
  893. IN PVOID HeaderBuffer,
  894. IN UINT HeaderBufferSize,
  895. IN PVOID LookaheadBuffer,
  896. IN UINT LookaheadBufferSize,
  897. IN UINT PacketSize
  898. );
  899. VOID
  900. FddiFilterIndicateReceiveComplete(
  901. IN PFDDI_FILTER Filter
  902. );
  903. BOOLEAN
  904. FASTCALL
  905. fddiFindMulticastLongAddress(
  906. IN UINT NumberOfAddresses,
  907. IN UCHAR AddressArray[][FDDI_LENGTH_OF_LONG_ADDRESS],
  908. IN UCHAR MulticastAddress[FDDI_LENGTH_OF_LONG_ADDRESS]
  909. );
  910. BOOLEAN
  911. FASTCALL
  912. fddiFindMulticastShortAddress(
  913. IN UINT NumberOfAddresses,
  914. IN UCHAR AddressArray[][FDDI_LENGTH_OF_SHORT_ADDRESS],
  915. IN UCHAR MulticastAddress[FDDI_LENGTH_OF_SHORT_ADDRESS]
  916. );
  917. VOID
  918. fddiCompleteChangeFilterLongAddresses(
  919. IN PFDDI_FILTER Filter,
  920. IN NDIS_STATUS Status
  921. );
  922. VOID
  923. fddiCompleteChangeFilterShortAddresses(
  924. IN PFDDI_FILTER Filter,
  925. IN NDIS_STATUS Status
  926. );
  927. VOID
  928. FddiFilterDprIndicateReceive(
  929. IN PFDDI_FILTER Filter,
  930. IN NDIS_HANDLE MacReceiveContext,
  931. IN PCHAR Address,
  932. IN UINT AddressLength,
  933. IN PVOID HeaderBuffer,
  934. IN UINT HeaderBufferSize,
  935. IN PVOID LookaheadBuffer,
  936. IN UINT LookaheadBufferSize,
  937. IN UINT PacketSize
  938. );
  939. VOID
  940. FddiFilterDprIndicateReceiveComplete(
  941. IN PFDDI_FILTER Filter
  942. );
  943. VOID
  944. fddiFilterDprIndicateReceivePacket(
  945. IN NDIS_HANDLE MiniportHandle,
  946. IN PPNDIS_PACKET ReceivedPackets,
  947. IN UINT NumberOfPackets
  948. );
  949. // UINT
  950. // fddiNumberOfShortGlobalAddresses(
  951. // IN PFDDI_FILTER Filter
  952. // );
  953. #define fddiNumberOfShortGlobalAddresses(_Filter) (_Filter)->NumShortAddresses
  954. // UINT
  955. // fddiNumberOfLongGlobalAddresses(
  956. // IN PFDDI_FILTER Filter
  957. // );
  958. #define fddiNumberOfLongGlobalAddresses(_Filter) (_Filter)->NumLongAddresses
  959. //
  960. // TrFilterxxx
  961. //
  962. BOOLEAN
  963. TrCreateFilter(
  964. IN PUCHAR AdapterAddress,
  965. OUT PTR_FILTER * Filter
  966. );
  967. VOID
  968. TrDeleteFilter(
  969. IN PTR_FILTER Filter
  970. );
  971. NDIS_STATUS
  972. TrDeleteFilterOpenAdapter(
  973. IN PTR_FILTER Filter,
  974. IN NDIS_HANDLE NdisFilterHandle
  975. );
  976. NDIS_STATUS
  977. TrChangeFunctionalAddress(
  978. IN PTR_FILTER Filter,
  979. IN NDIS_HANDLE NdisFilterHandle,
  980. IN UCHAR FunctionalAddressArray[TR_LENGTH_OF_FUNCTIONAL],
  981. IN BOOLEAN Set
  982. );
  983. NDIS_STATUS
  984. TrChangeGroupAddress(
  985. IN PTR_FILTER Filter,
  986. IN NDIS_HANDLE NdisFilterHandle,
  987. IN UCHAR GroupAddressArray[TR_LENGTH_OF_FUNCTIONAL],
  988. IN BOOLEAN Set
  989. );
  990. BOOLEAN
  991. TrShouldAddressLoopBack(
  992. IN PTR_FILTER Filter,
  993. IN UCHAR DestinationAddress[TR_LENGTH_OF_ADDRESS],
  994. IN UCHAR SourceAddress[TR_LENGTH_OF_ADDRESS]
  995. );
  996. VOID
  997. TrFilterIndicateReceive(
  998. IN PTR_FILTER Filter,
  999. IN NDIS_HANDLE MacReceiveContext,
  1000. IN PVOID HeaderBuffer,
  1001. IN UINT HeaderBufferSize,
  1002. IN PVOID LookaheadBuffer,
  1003. IN UINT LookaheadBufferSize,
  1004. IN UINT PacketSize
  1005. );
  1006. VOID
  1007. TrFilterIndicateReceiveComplete(
  1008. IN PTR_FILTER Filter
  1009. );
  1010. VOID
  1011. trUndoChangeFunctionalAddress(
  1012. IN OUT PTR_FILTER Filter,
  1013. IN PTR_BINDING_INFO Binding
  1014. );
  1015. VOID
  1016. trUndoChangeGroupAddress(
  1017. IN OUT PTR_FILTER Filter,
  1018. IN PTR_BINDING_INFO Binding
  1019. );
  1020. VOID
  1021. trCompleteChangeGroupAddress(
  1022. IN OUT PTR_FILTER Filter,
  1023. IN PTR_BINDING_INFO Binding
  1024. );
  1025. VOID
  1026. TrFilterDprIndicateReceive(
  1027. IN PTR_FILTER Filter,
  1028. IN NDIS_HANDLE MacReceiveContext,
  1029. IN PVOID HeaderBuffer,
  1030. IN UINT HeaderBufferSize,
  1031. IN PVOID LookaheadBuffer,
  1032. IN UINT LookaheadBufferSize,
  1033. IN UINT PacketSize
  1034. );
  1035. VOID
  1036. TrFilterDprIndicateReceiveComplete(
  1037. IN PTR_FILTER Filter
  1038. );
  1039. VOID
  1040. trFilterDprIndicateReceivePacket(
  1041. IN NDIS_HANDLE MiniportHandle,
  1042. IN PPNDIS_PACKET ReceivedPackets,
  1043. IN UINT NumberOfPackets
  1044. );
  1045. //
  1046. // ArcFilterxxx
  1047. //
  1048. #if ARCNET
  1049. BOOLEAN
  1050. FASTCALL
  1051. ndisMArcnetSendLoopback(
  1052. IN PNDIS_MINIPORT_BLOCK Miniport,
  1053. IN PNDIS_PACKET Packet
  1054. );
  1055. NDIS_STATUS
  1056. ndisMBuildArcnetHeader(
  1057. PNDIS_MINIPORT_BLOCK Miniport,
  1058. PNDIS_OPEN_BLOCK Open,
  1059. PNDIS_PACKET Packet
  1060. );
  1061. VOID
  1062. ndisMFreeArcnetHeader(
  1063. IN PNDIS_MINIPORT_BLOCK Miniport,
  1064. IN PNDIS_PACKET Packet,
  1065. IN PNDIS_OPEN_BLOCK Open
  1066. );
  1067. VOID
  1068. ArcDeleteFilter(
  1069. IN PARC_FILTER Filter
  1070. );
  1071. NDIS_STATUS
  1072. ndisMArcTransferData(
  1073. IN NDIS_HANDLE NdisBindingHandle,
  1074. IN NDIS_HANDLE MacReceiveContext,
  1075. IN UINT ByteOffset,
  1076. IN UINT BytesToTransfer,
  1077. IN OUT PNDIS_PACKET Packet,
  1078. OUT PUINT BytesTransferred
  1079. );
  1080. VOID
  1081. ndisMArcIndicateEthEncapsulatedReceive(
  1082. IN PNDIS_MINIPORT_BLOCK Miniport,
  1083. IN PVOID HeaderBuffer,
  1084. IN PVOID DataBuffer,
  1085. IN UINT Length
  1086. );
  1087. VOID
  1088. arcUndoFilterAdjust(
  1089. IN PARC_FILTER Filter,
  1090. IN PARC_BINDING_INFO Binding
  1091. );
  1092. NDIS_STATUS
  1093. ArcConvertOidListToEthernet(
  1094. IN PNDIS_OID OidList,
  1095. IN PULONG NumberOfOids
  1096. );
  1097. NDIS_STATUS
  1098. ArcAllocateBuffers(
  1099. IN PARC_FILTER Filter
  1100. );
  1101. NDIS_STATUS
  1102. ArcAllocatePackets(
  1103. IN PARC_FILTER Filter
  1104. );
  1105. VOID
  1106. ArcDiscardPacketBuffers(
  1107. IN PARC_FILTER Filter,
  1108. IN PARC_PACKET Packet
  1109. );
  1110. VOID
  1111. ArcDestroyPacket(
  1112. IN PARC_FILTER Filter,
  1113. IN PARC_PACKET Packet
  1114. );
  1115. BOOLEAN
  1116. ArcConvertToNdisPacket(
  1117. IN PARC_FILTER Filter,
  1118. IN PARC_PACKET Packet,
  1119. IN BOOLEAN ConvertWholePacket
  1120. );
  1121. #endif
  1122. //
  1123. // WORK ITEM ROUTINES.
  1124. //
  1125. VOID
  1126. FASTCALL
  1127. ndisMDeQueueWorkItem(
  1128. IN PNDIS_MINIPORT_BLOCK Miniport,
  1129. IN NDIS_WORK_ITEM_TYPE WorkItemType,
  1130. OUT PVOID * WorkItemContext OPTIONAL,
  1131. OUT PVOID * WorkItemHandler OPTIONAL
  1132. );
  1133. NDIS_STATUS
  1134. FASTCALL
  1135. ndisMQueueWorkItem(
  1136. IN PNDIS_MINIPORT_BLOCK Miniport,
  1137. IN NDIS_WORK_ITEM_TYPE WorkItemType,
  1138. OUT PVOID WorkItemContext
  1139. );
  1140. NDIS_STATUS
  1141. FASTCALL
  1142. ndisMQueueNewWorkItem(
  1143. IN PNDIS_MINIPORT_BLOCK Miniport,
  1144. IN NDIS_WORK_ITEM_TYPE WorkItemType,
  1145. OUT PVOID WorkItemContext,
  1146. IN PVOID WorkItemHandler OPTIONAL
  1147. );
  1148. VOID
  1149. FASTCALL
  1150. ndisIMDeQueueWorkItem(
  1151. IN PNDIS_MINIPORT_BLOCK Miniport,
  1152. IN NDIS_WORK_ITEM_TYPE WorkItemType,
  1153. OUT PVOID WorkItemContext
  1154. );
  1155. //
  1156. // SEND HANDLERS
  1157. //
  1158. //
  1159. BOOLEAN
  1160. FASTCALL
  1161. ndisMStartSendPackets(
  1162. IN PNDIS_MINIPORT_BLOCK Miniport
  1163. );
  1164. BOOLEAN
  1165. FASTCALL
  1166. ndisMStartSends(
  1167. IN PNDIS_MINIPORT_BLOCK Miniport
  1168. );
  1169. BOOLEAN
  1170. FASTCALL
  1171. ndisMStartWanSends(
  1172. IN PNDIS_MINIPORT_BLOCK Miniport
  1173. );
  1174. #undef NdisMSendResourcesAvailable
  1175. VOID
  1176. NdisMSendResourcesAvailable(
  1177. IN NDIS_HANDLE MiniportAdapterHandle
  1178. );
  1179. #undef NdisMSendComplete
  1180. VOID
  1181. NdisMSendComplete(
  1182. IN NDIS_HANDLE MiniportAdapterHandle,
  1183. IN PNDIS_PACKET Packet,
  1184. IN NDIS_STATUS Status
  1185. );
  1186. VOID
  1187. ndisMSendCompleteX(
  1188. IN NDIS_HANDLE MiniportAdapterHandle,
  1189. IN PNDIS_PACKET Packet,
  1190. IN NDIS_STATUS Status
  1191. );
  1192. #undef NdisMWanSendComplete
  1193. VOID
  1194. NdisMWanSendComplete(
  1195. IN NDIS_HANDLE MiniportAdapterHandle,
  1196. IN PNDIS_WAN_PACKET Packet,
  1197. IN NDIS_STATUS Status
  1198. );
  1199. VOID
  1200. ndisMSendPackets(
  1201. IN NDIS_HANDLE NdisBindingHandle,
  1202. IN PPNDIS_PACKET PacketArray,
  1203. IN UINT NumberOfPackets
  1204. );
  1205. VOID
  1206. ndisMSendPacketsX(
  1207. IN NDIS_HANDLE NdisBindingHandle,
  1208. IN PPNDIS_PACKET PacketArray,
  1209. IN UINT NumberOfPackets
  1210. );
  1211. NDIS_STATUS
  1212. ndisMSend(
  1213. IN NDIS_HANDLE NdisBindingHandle,
  1214. IN PNDIS_PACKET Packet
  1215. );
  1216. NDIS_STATUS
  1217. ndisMSendX(
  1218. IN NDIS_HANDLE NdisBindingHandle,
  1219. IN PNDIS_PACKET Packet
  1220. );
  1221. NDIS_STATUS
  1222. ndisMCoSendPackets(
  1223. IN NDIS_HANDLE NdisVcHandle,
  1224. IN PPNDIS_PACKET PacketArray,
  1225. IN UINT NumberOfPackets
  1226. );
  1227. NDIS_STATUS
  1228. ndisMRejectSend(
  1229. IN NDIS_HANDLE NdisBindingHandle,
  1230. IN PNDIS_PACKET Packet
  1231. );
  1232. VOID
  1233. ndisMRejectSendPackets(
  1234. IN NDIS_HANDLE NdisBindingHandle,
  1235. IN PPNDIS_PACKET Packets,
  1236. IN UINT NumberOfPackets
  1237. );
  1238. VOID
  1239. FASTCALL
  1240. ndisMRestoreOpenHandlers(
  1241. IN PNDIS_MINIPORT_BLOCK Miniport,
  1242. IN UCHAR Flags
  1243. );
  1244. VOID
  1245. FASTCALL
  1246. ndisMSwapOpenHandlers(
  1247. IN PNDIS_MINIPORT_BLOCK Miniport,
  1248. IN NDIS_STATUS Status,
  1249. IN UCHAR Flags
  1250. );
  1251. NTSTATUS
  1252. ndisPassIrpDownTheStack(
  1253. IN PIRP pIrp,
  1254. IN PDEVICE_OBJECT pNextDeviceObject
  1255. );
  1256. //
  1257. // Co-Ndis prototypes
  1258. //
  1259. VOID
  1260. ndisNotifyAfRegistration(
  1261. IN struct _NDIS_AF_NOTIFY * AfNotify
  1262. );
  1263. NDIS_STATUS
  1264. ndisCreateNotifyQueue(
  1265. IN PNDIS_MINIPORT_BLOCK Miniport,
  1266. IN PNDIS_OPEN_BLOCK Open OPTIONAL,
  1267. IN PCO_ADDRESS_FAMILY AddressFamily OPTIONAL,
  1268. IN PNDIS_AF_NOTIFY * AfNotify
  1269. );
  1270. BOOLEAN
  1271. FASTCALL
  1272. ndisReferenceAf(
  1273. IN PNDIS_CO_AF_BLOCK AfBlock
  1274. );
  1275. VOID
  1276. FASTCALL
  1277. ndisDereferenceAf(
  1278. IN PNDIS_CO_AF_BLOCK AfBlock
  1279. );
  1280. BOOLEAN
  1281. FASTCALL
  1282. ndisReferenceSap(
  1283. IN PNDIS_CO_SAP_BLOCK SapBlock
  1284. );
  1285. VOID
  1286. FASTCALL
  1287. ndisDereferenceSap(
  1288. IN PNDIS_CO_SAP_BLOCK SapBlock
  1289. );
  1290. BOOLEAN
  1291. FASTCALL
  1292. ndisReferenceVcPtr(
  1293. IN PNDIS_CO_VC_PTR_BLOCK VcPtr
  1294. );
  1295. VOID
  1296. FASTCALL
  1297. ndisDereferenceVcPtr(
  1298. IN PNDIS_CO_VC_PTR_BLOCK VcPtr
  1299. );
  1300. VOID
  1301. FASTCALL
  1302. ndisMCoFreeResources(
  1303. PNDIS_OPEN_BLOCK Open
  1304. );
  1305. //
  1306. // Fake handlers
  1307. //
  1308. NDIS_STATUS
  1309. ndisMFakeWanSend(
  1310. IN NDIS_HANDLE NdisBindingHandle,
  1311. IN NDIS_HANDLE NdisLinkHandle,
  1312. IN PVOID Packet
  1313. );
  1314. NDIS_STATUS
  1315. ndisMFakeSend(
  1316. IN NDIS_HANDLE NdisBindingHandle,
  1317. IN PNDIS_PACKET Packet
  1318. );
  1319. VOID
  1320. ndisMFakeSendPackets(
  1321. IN NDIS_HANDLE NdisBindingHandle,
  1322. IN PPNDIS_PACKET PacketArray,
  1323. IN UINT NumberOfPackets
  1324. );
  1325. NDIS_STATUS
  1326. ndisMFakeReset(
  1327. IN NDIS_HANDLE NdisBindingHandle
  1328. );
  1329. NDIS_STATUS
  1330. ndisMFakeRequest(
  1331. IN NDIS_HANDLE NdisBindingHandle,
  1332. IN PNDIS_REQUEST NdisRequest
  1333. );
  1334. //
  1335. // POWER MANAGEMENT ROUTINES
  1336. //
  1337. NTSTATUS
  1338. FASTCALL
  1339. ndisQueryPowerCapabilities(
  1340. IN PNDIS_MINIPORT_BLOCK Miniport
  1341. );
  1342. VOID
  1343. ndisMediaDisconnectWorker(
  1344. IN PPOWER_WORK_ITEM pWorkItem,
  1345. IN PVOID Context
  1346. );
  1347. NTSTATUS
  1348. ndisMediaDisconnectComplete(
  1349. IN PDEVICE_OBJECT pdo,
  1350. IN UCHAR MinorFunction,
  1351. IN POWER_STATE PowerState,
  1352. IN PVOID Context,
  1353. IN PIO_STATUS_BLOCK IoStatus
  1354. );
  1355. VOID
  1356. ndisMediaDisconnectTimeout(
  1357. IN PVOID SystemSpecific1,
  1358. IN PVOID Context,
  1359. IN PVOID SystemSpecific2,
  1360. IN PVOID SystemSpecific3
  1361. );
  1362. NTSTATUS
  1363. ndisWaitWakeComplete(
  1364. IN PDEVICE_OBJECT pdo,
  1365. IN UCHAR MinorFunction,
  1366. IN POWER_STATE PowerState,
  1367. IN PVOID Context,
  1368. IN PIO_STATUS_BLOCK IoStatus
  1369. );
  1370. NTSTATUS
  1371. ndisQueryPowerComplete(
  1372. IN PDEVICE_OBJECT pdo,
  1373. IN PIRP pirp,
  1374. IN PVOID Context
  1375. );
  1376. NTSTATUS
  1377. ndisMPowerPolicy(
  1378. IN PNDIS_MINIPORT_BLOCK Miniport,
  1379. IN SYSTEM_POWER_STATE SystemState,
  1380. IN PDEVICE_POWER_STATE pDeviceState,
  1381. IN BOOLEAN fIsQuery
  1382. );
  1383. NTSTATUS
  1384. ndisQueryPower(
  1385. IN PIRP pirp,
  1386. IN PIO_STACK_LOCATION pirpSp,
  1387. IN PNDIS_MINIPORT_BLOCK Miniport
  1388. );
  1389. VOID
  1390. FASTCALL
  1391. ndisPmHaltMiniport(
  1392. IN PNDIS_MINIPORT_BLOCK Miniport
  1393. );
  1394. NDIS_STATUS
  1395. ndisPmInitializeMiniport(
  1396. IN PNDIS_MINIPORT_BLOCK Miniport
  1397. );
  1398. NDIS_STATUS
  1399. ndisQuerySetMiniportDeviceState(
  1400. IN PNDIS_MINIPORT_BLOCK Miniport,
  1401. IN DEVICE_POWER_STATE DeviceState,
  1402. IN NDIS_OID Oid,
  1403. IN BOOLEAN fSet
  1404. );
  1405. NTSTATUS
  1406. ndisRequestedDevicePowerIrpComplete(
  1407. IN PDEVICE_OBJECT pdo,
  1408. IN UCHAR MinorFunction,
  1409. IN POWER_STATE PowerState,
  1410. IN PVOID Context,
  1411. IN PIO_STATUS_BLOCK IoStatus
  1412. );
  1413. VOID
  1414. ndisDevicePowerOn(
  1415. IN PPOWER_WORK_ITEM pWorkItem,
  1416. IN PVOID pContext
  1417. );
  1418. NTSTATUS
  1419. ndisSetDevicePowerOnComplete(
  1420. IN PDEVICE_OBJECT pdo,
  1421. IN PIRP pirp,
  1422. IN PVOID Context
  1423. );
  1424. VOID
  1425. ndisDevicePowerDown(
  1426. IN PPOWER_WORK_ITEM pWorkItem,
  1427. IN PVOID pContext
  1428. );
  1429. NTSTATUS
  1430. ndisSetDevicePowerDownComplete(
  1431. IN PDEVICE_OBJECT pdo,
  1432. IN PIRP pirp,
  1433. IN PVOID Context
  1434. );
  1435. NTSTATUS
  1436. ndisSetPower(
  1437. IN PIRP pirp,
  1438. IN PIO_STACK_LOCATION pirpSp,
  1439. IN PNDIS_MINIPORT_BLOCK Miniport
  1440. );
  1441. NTSTATUS
  1442. ndisPowerDispatch(
  1443. IN PDEVICE_OBJECT pdo,
  1444. IN PIRP pirp
  1445. );
  1446. BOOLEAN
  1447. FASTCALL
  1448. ndisQueueOpenOnMiniport(
  1449. IN PNDIS_MINIPORT_BLOCK Miniport,
  1450. IN PNDIS_OPEN_BLOCK MiniportOpen
  1451. );
  1452. NDIS_STATUS
  1453. ndisQueueBindWorkitem(
  1454. IN PNDIS_MINIPORT_BLOCK Miniport
  1455. );
  1456. VOID
  1457. ndisQueuedCheckAdapterBindings(
  1458. IN PNDIS_WORK_ITEM pWorkItem,
  1459. IN PVOID Context
  1460. );
  1461. BOOLEAN
  1462. ndisIsMiniportStarted(
  1463. IN PNDIS_MINIPORT_BLOCK Miniport
  1464. );