/*++ Copyright(c) 1998,99 Microsoft Corporation Module Name: nic.h Abstract: Windows Load Balancing Service (WLBS) Driver - upper-level (NIC) layer of intermediate miniport Author: kyrilf --*/ #ifndef _Nic_h_ #define _Nic_h_ #include #include "main.h" /* PROCEDURES */ /* miniport handlers */ extern NDIS_STATUS Nic_init ( PNDIS_STATUS open_status, PUINT medium_index, PNDIS_MEDIUM medium_array, UINT medium_size, NDIS_HANDLE adapter_handle, NDIS_HANDLE wrapper_handle); /* Responds to protocol open request returns NDIS_STATUS: function: */ extern VOID Nic_halt ( NDIS_HANDLE adapter_handle); /* Responds to protocol halt request returns VOID: function: */ extern NDIS_STATUS Nic_info_query ( NDIS_HANDLE adapter_handle, NDIS_OID Oid, PVOID info_buf, ULONG info_len, PULONG written, PULONG needed); /* Responds to protocol OID query request returns NDIS_STATUS: function: */ extern NDIS_STATUS Nic_info_set ( NDIS_HANDLE adapter_handle, NDIS_OID oid, PVOID info_buf, ULONG info_len, PULONG read, PULONG needed); /* Responds to protocol OID set request returns NDIS_STATUS: function: */ extern NDIS_STATUS Nic_reset ( PBOOLEAN addr_reset, NDIS_HANDLE adapter_handle); /* Responds to protocol reset request returns NDIS_STATUS: function: */ extern VOID Nic_packets_send ( NDIS_HANDLE adapter_handle, PNDIS_PACKET * packets, UINT num_packets); /* Responds to protocol send packets request returns VOID: function: */ extern VOID Nic_return ( NDIS_HANDLE adapter_handle, PNDIS_PACKET packet); /* Responds to protocol return packet request returns NDIS_STATUS: function: */ /* These 3 functions have been added for NDIS51 support. */ extern VOID Nic_cancel_send_packets ( NDIS_HANDLE adapter_handle, PVOID cancel_id); /* Responds to CancelSendPackets request returns None: function: */ #if 0 extern VOID Nic_pnpevent_notify ( NDIS_HANDLE adapter_handle, NDIS_DEVICE_PNP_EVENT pnp_event, PVOID info_buf, ULONG info_len); /* Responds to PnPEventNotify request returns None: function: */ #endif extern VOID Nic_adapter_shutdown ( NDIS_HANDLE adapter_handle); /* Responds to AdapterShutdown request returns None: function: */ /* helpers for protocol layer */ extern NDIS_STATUS Nic_announce ( PMAIN_CTXT ctxtp); /* Announces us to the protocol layer during binding to the lower adapter returns NDIS_STATUS: function: */ extern NDIS_STATUS Nic_unannounce ( PMAIN_CTXT ctxtp); /* Unannounces us from the protocol layer during unbinding from the lower adapter returns NDIS_STATUS: function: */ #if 0 extern ULONG Nic_sync_queue ( PMAIN_CTXT ctxtp, UNIV_SYNC_CALLB callb, PVOID callb_ctxtp, ULONG queue); /* Perform synchronization by switching to miniport mode or queueing callback returns ULONG : TRUE => succeeded FALSE => failed function: */ #endif extern VOID Nic_timer ( PVOID dpc, PVOID ctxtp, PVOID arg1, PVOID arg2); /* Heartbeat timer handler returns VOID: function: */ extern VOID Nic_sleep ( ULONG msecs); /* Sleep helper returns VOID: function: */ /* routines that can be used with Nic_sync */ extern VOID Nic_reset_complete ( PMAIN_CTXT ctxtp, NDIS_STATUS status); /* Propagate reset completion to protocol returns VOID: function: */ extern VOID Nic_request_complete ( NDIS_HANDLE handle, PVOID actp); /* Propagate request completion to protocol returns VOID: function: */ extern VOID Nic_send_complete ( PMAIN_CTXT ctxtp, NDIS_STATUS status, PNDIS_PACKET packet); /* Propagate packet send completion to protocol returns VOID: function: */ extern VOID Nic_recv_complete ( PMAIN_CTXT ctxtp); /* Propagate post-receive completion to protocol returns VOID: function: */ extern NDIS_STATUS Nic_PNP_handle ( PMAIN_CTXT ctxtp, PNET_PNP_EVENT pnp_event); /* Propagate PNP Events to protocol returns NDIS_STATUS: function: */ extern VOID Nic_status ( PMAIN_CTXT ctxtp, NDIS_STATUS status, PVOID buf, UINT len); /* Propagate status indication to protocol returns VOID: function: */ extern VOID Nic_status_complete ( PMAIN_CTXT ctxtp); /* Propagate status indication completion to protocol returns VOID: function: */ extern VOID Nic_send_resources_signal ( PMAIN_CTXT ctxtp); /* Send resource availability message to protocol returns VOID: function: */ extern VOID Nic_recv_packet ( PMAIN_CTXT ctxtp, PNDIS_PACKET packet); /* Propagate received packet to protocol returns VOID: function: */ /* Added from old code for NT 5.1 - ramkrish */ extern VOID Nic_recv_indicate ( PMAIN_CTXT ctxtp, NDIS_HANDLE recv_handle, PVOID head_buf, UINT head_len, PVOID look_buf, UINT look_len, UINT packet_len); /* Propagates receive indication to protocol returns VOID: function: */ extern NDIS_STATUS Nic_transfer ( PNDIS_PACKET packet, PUINT xferred, NDIS_HANDLE adapter_handle, NDIS_HANDLE receive_handle, UINT offset, UINT len); /* Responds to protocol data transfer request returns NDIS_STATUS: function: */ extern VOID Nic_transfer_complete ( PMAIN_CTXT ctxtp, NDIS_STATUS status, PNDIS_PACKET packet, UINT xferred); /* Propagates data transfer completion to protocol returns VOID: function: */ /* old code */ #if 0 extern NDIS_STATUS Nic_send ( NDIS_HANDLE adapter_handle, PNDIS_PACKET packet, UINT flags); /* Responds to protocol packet send request returns NDIS_STATUS: function: */ #endif #endif /* _Nic_h_ */