windows-nt/Source/XPSP1/NT/net/atm/epvc/sys/wrapper.h
2020-09-26 16:20:57 +08:00

306 lines
6.7 KiB
C

/*++
Copyright(c) 1992 Microsoft Corporation
Module Name:
wrapper.c
Abstract:
This file contains declarations for all wrapper function calls .
Author:
ADube , 03/31/00
Environment:
Revision History:
--*/
#ifndef _ATMEPVC_WRAPPER
#define _ATMEPVC_WRAPPER 1
VOID
epvcOpenProtocolConfiguration(
OUT PNDIS_STATUS Status,
OUT PNDIS_HANDLE ConfigurationHandle,
IN PNDIS_STRING ProtocolSection,
PRM_STACK_RECORD pSR
);
VOID
epvcOpenConfigurationKeyByName(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE ConfigurationHandle,
IN PNDIS_STRING SubKeyName,
OUT PNDIS_HANDLE SubKeyHandle,
PRM_STACK_RECORD pSR
);
VOID
epvcOpenConfigurationKeyByIndex(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE ConfigurationHandle,
IN ULONG Index,
OUT PNDIS_STRING KeyName,
OUT PNDIS_HANDLE KeyHandle,
PRM_STACK_RECORD pSR
);
VOID
epvcOpenAdapter(
OUT PNDIS_STATUS Status,
OUT PNDIS_STATUS OpenErrorStatus,
OUT PNDIS_HANDLE NdisBindingHandle,
OUT PUINT SelectedMediumIndex,
IN PNDIS_MEDIUM MediumArray,
IN UINT MediumArraySize,
IN NDIS_HANDLE NdisProtocolHandle,
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_STRING AdapterName,
IN UINT OpenOptions,
IN PSTRING AddressingInformation OPTIONAL,
PRM_STACK_RECORD pSR
);
VOID
epvcCloseAdapter(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE NdisBindingHandle,
PRM_STACK_RECORD pSR
);
NDIS_STATUS
epvcClOpenAddressFamily(
IN NDIS_HANDLE NdisBindingHandle,
IN PCO_ADDRESS_FAMILY AddressFamily,
IN NDIS_HANDLE ProtocolAfContext,
IN PNDIS_CLIENT_CHARACTERISTICS ClCharacteristics,
IN UINT SizeOfClCharacteristics,
OUT PNDIS_HANDLE NdisAfHandle
);
NDIS_STATUS
epvcCoCreateVc(
IN NDIS_HANDLE NdisBindingHandle,
IN NDIS_HANDLE NdisAfHandle OPTIONAL, // For CM signalling VCs
IN NDIS_HANDLE ProtocolVcContext,
IN OUT PNDIS_HANDLE NdisVcHandle
);
NDIS_STATUS
epvcClMakeCall(
IN NDIS_HANDLE NdisVcHandle,
IN OUT PCO_CALL_PARAMETERS CallParameters,
IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
OUT PNDIS_HANDLE NdisPartyHandle OPTIONAL
);
NDIS_STATUS
epvcClCloseCall(
IN NDIS_HANDLE NdisVcHandle
);
NDIS_STATUS
epvcAllocateMemoryWithTag(
OUT PVOID * VirtualAddress,
IN UINT Length,
IN ULONG Tag
);
NDIS_STATUS
epvcCoDeleteVc(
IN NDIS_HANDLE NdisVcHandle
);
VOID
epvcFreeMemory(
IN PVOID VirtualAddress,
IN UINT Length,
IN UINT MemoryFlags
);
VOID
epvcInitializeEvent(
IN PNDIS_EVENT Event
);
BOOLEAN
epvcWaitEvent(
IN PNDIS_EVENT Event,
IN UINT msToWait
);
VOID
epvcSetEvent(
IN PNDIS_EVENT Event
);
VOID
epvcResetEvent(
IN PNDIS_EVENT Event
);
VOID
epvcCoRequestComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE NdisAfHandle,
IN NDIS_HANDLE NdisVcHandle OPTIONAL,
IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
IN PNDIS_REQUEST NdisRequest
);
VOID
epvcEnumerateObjectsInGroup (
PRM_GROUP pGroup,
PFN_RM_GROUP_ENUMERATOR pfnEnumerator,
PVOID pvContext,
PRM_STACK_RECORD pSR
);
VOID
epvcAllocatePacketPool(
OUT PNDIS_STATUS Status,
OUT PEPVC_PACKET_POOL pPktPool,
IN UINT NumberOfDescriptors,
IN UINT NumberOfOverflowDescriptors,
IN UINT ProtocolReservedLength
);
VOID
epvcFreePacketPool(
IN PEPVC_PACKET_POOL pPktPool
);
VOID
epvcFreePacket (
IN PNDIS_PACKET pPkt,
IN PEPVC_PACKET_POOL pPool
);
VOID
epvcAllocatePacket(
OUT PNDIS_STATUS Status,
OUT PNDIS_PACKET * Packet,
IN PEPVC_PACKET_POOL pPktPool
);
VOID
epvcDprFreePacket(
IN PNDIS_PACKET Packet,
IN PEPVC_PACKET_POOL pPool
);
VOID
epvcDprAllocatePacket(
OUT PNDIS_STATUS Status,
OUT PNDIS_PACKET * Packet,
IN PEPVC_PACKET_POOL pPktPool
);
NDIS_STATUS
epvcClCloseAddressFamily(
IN NDIS_HANDLE NdisAfHandle
);
VOID
epvcMIndicateStatus(
IN PEPVC_I_MINIPORT pMiniport ,
IN NDIS_STATUS GeneralStatus,
IN PVOID StatusBuffer,
IN UINT StatusBufferSize
);
VOID
epvcMIndicateReceivePacket(
IN PEPVC_I_MINIPORT pMiniport,
IN PPNDIS_PACKET ReceivedPackets,
IN UINT NumberOfPackets
);
VOID
epvcFreeBuffer(
IN PNDIS_BUFFER Buffer
);
VOID
epvcAllocateBuffer(
OUT PNDIS_STATUS Status,
OUT PNDIS_BUFFER * Buffer,
IN NDIS_HANDLE PoolHandle,
IN PVOID VirtualAddress,
IN UINT Length
);
VOID
epvcMSendComplete(
IN PEPVC_I_MINIPORT pMiniport,
IN PNDIS_PACKET pPkt,
IN NDIS_STATUS Status
);
VOID
epvcReturnPacketToNdis(
IN PEPVC_I_MINIPORT pMiniport,
IN PNDIS_PACKET pPacket,
IN PRM_STACK_RECORD pSR
);
VOID
epvcInitializeWorkItem(
IN PRM_OBJECT_HEADER pObj,
IN PNDIS_WORK_ITEM WorkItem,
IN NDIS_PROC Routine,
IN PVOID Context,
IN PRM_STACK_RECORD pSR
);
VOID
epvcCoSendPackets(
IN NDIS_HANDLE NdisVcHandle,
IN PPNDIS_PACKET PacketArray,
IN UINT NumberOfPackets
);
VOID
epvcQueryPacket(
IN PNDIS_PACKET _Packet,
OUT PUINT _PhysicalBufferCount OPTIONAL,
OUT PUINT _BufferCount OPTIONAL,
OUT PNDIS_BUFFER * _FirstBuffer OPTIONAL,
OUT PUINT _TotalPacketLength OPTIONAL
);
VOID
epvcIMDeInitializeDeviceInstance (
IN PEPVC_I_MINIPORT pMiniport
);
NDIS_STATUS
epvcIMCancelInitializeDeviceInstance (
IN PEPVC_I_MINIPORT pMiniport
);
#endif