327 lines
5.0 KiB
C
327 lines
5.0 KiB
C
/*++
|
|
|
|
Copyright(c) 1998,99 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
prot.h
|
|
|
|
Abstract:
|
|
|
|
Windows Load Balancing Service (WLBS)
|
|
Driver - lower-level (protocol) layer of intermediate miniport
|
|
|
|
Author:
|
|
|
|
kyrilf
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _Prot_h_
|
|
#define _Prot_h_
|
|
|
|
#include <ndis.h>
|
|
|
|
#include "main.h"
|
|
#include "util.h"
|
|
|
|
|
|
/* PROCEDURES */
|
|
|
|
|
|
/* required NDIS protocol handlers */
|
|
|
|
extern VOID Prot_bind (
|
|
PNDIS_STATUS statusp,
|
|
NDIS_HANDLE bind_handle,
|
|
PNDIS_STRING device_name,
|
|
PVOID reg_path,
|
|
PVOID reserved);
|
|
/*
|
|
Bind to underlying adapter
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_unbind (
|
|
PNDIS_STATUS statusp,
|
|
NDIS_HANDLE bind_handle,
|
|
NDIS_HANDLE unbind_handle);
|
|
/*
|
|
Unbind from underlying adapter
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_close_complete (
|
|
NDIS_HANDLE bind_handle,
|
|
NDIS_STATUS statusp);
|
|
/*
|
|
Completion handler for NdisCloseAdapter call
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_open_complete (
|
|
NDIS_HANDLE bind_handle,
|
|
NDIS_STATUS statusp,
|
|
NDIS_STATUS errorp);
|
|
/*
|
|
Completion handler for NdisOpenAdapter call
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern NDIS_STATUS Prot_recv_indicate (
|
|
NDIS_HANDLE bind_handle,
|
|
NDIS_HANDLE recv_handle,
|
|
PVOID head_buf,
|
|
UINT head_len,
|
|
PVOID look_buf,
|
|
UINT look_len,
|
|
UINT packet_len);
|
|
/*
|
|
Process lookahead of a new packet
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_recv_complete (
|
|
NDIS_HANDLE bind_handle);
|
|
/*
|
|
Handle post-receive operations when timing is relaxed
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern INT Prot_packet_recv (
|
|
NDIS_HANDLE bind_handle,
|
|
PNDIS_PACKET packet);
|
|
/*
|
|
Receive entire new packet
|
|
|
|
returns INT:
|
|
<number of clients using the packet>
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_request_complete (
|
|
NDIS_HANDLE bind_handle,
|
|
PNDIS_REQUEST request,
|
|
NDIS_STATUS status);
|
|
/*
|
|
Completion handler for NdisRequest call
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_reset_complete (
|
|
NDIS_HANDLE bind_handle,
|
|
NDIS_STATUS status);
|
|
/*
|
|
Completion handler for NdisReset call
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_send_complete (
|
|
NDIS_HANDLE bind_handle,
|
|
PNDIS_PACKET packet,
|
|
NDIS_STATUS status);
|
|
/*
|
|
Completion handler for NdiSendPackets or NdisSend calls
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern NDIS_STATUS Prot_PNP_handle (
|
|
NDIS_HANDLE ctxtp,
|
|
PNET_PNP_EVENT pnp_event);
|
|
/*
|
|
PNP handler
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_status (
|
|
NDIS_HANDLE bind_handle,
|
|
NDIS_STATUS get_status,
|
|
PVOID stat_buf,
|
|
UINT stat_len);
|
|
/*
|
|
Status indication from adapter handler
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_status_complete (
|
|
NDIS_HANDLE bind_handle);
|
|
/*
|
|
Status indication from adapter completion handler
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_transfer_complete (
|
|
NDIS_HANDLE bind_handle,
|
|
PNDIS_PACKET packet,
|
|
NDIS_STATUS status,
|
|
UINT xferred);
|
|
/*
|
|
Completion handler for NdiTransferDate calls
|
|
|
|
returns VOID:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
/* helpers for nic layer */
|
|
|
|
|
|
extern NDIS_STATUS Prot_close (
|
|
PMAIN_ADAPTER adapterp);
|
|
/*
|
|
Close underlying connection and free context
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern NDIS_STATUS Prot_request (
|
|
PMAIN_CTXT ctxtp,
|
|
PMAIN_ACTION actp,
|
|
ULONG slave);
|
|
/*
|
|
NdisRequest wrapper
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern NDIS_STATUS Prot_reset (
|
|
PMAIN_CTXT ctxtp);
|
|
/*
|
|
NdisRequest wrapper
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_packets_send (
|
|
PMAIN_CTXT ctxtp,
|
|
PPNDIS_PACKET packets,
|
|
UINT num);
|
|
/*
|
|
NdisSendPackets wrapper
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
extern VOID Prot_return (
|
|
PMAIN_CTXT ctxtp,
|
|
PNDIS_PACKET packet);
|
|
/*
|
|
NdisReturnPackets wrapper
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
/* Added from old code for NT 5.1 - ramkrish */
|
|
extern NDIS_STATUS Prot_transfer (
|
|
PMAIN_CTXT ctxtp,
|
|
NDIS_HANDLE recv_handle,
|
|
PNDIS_PACKET packet,
|
|
UINT offset,
|
|
UINT len,
|
|
PUINT xferred);
|
|
/*
|
|
NdisTransferData wrapper
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
/* This helper function added for using NDIS51 flag */
|
|
extern VOID Prot_cancel_send_packets (
|
|
PMAIN_CTXT ctxtp,
|
|
PVOID cancel_id);
|
|
/*
|
|
NdisCancelSendPackets wrapper
|
|
|
|
returns:
|
|
|
|
function:
|
|
*/
|
|
|
|
|
|
#if 0 /* old code */
|
|
|
|
extern NDIS_STATUS Prot_send (
|
|
PMAIN_CTXT ctxtp,
|
|
PNDIS_PACKET packet,
|
|
UINT flags);
|
|
/*
|
|
NdisSend wrapper
|
|
|
|
returns NDIS_STATUS:
|
|
|
|
function:
|
|
*/
|
|
|
|
#endif
|
|
|
|
#endif /* _Prot_h_ */
|