2020-09-30 16:53:55 +02:00

74 lines
1.2 KiB
C

/*++
Copyright (c) 1997-2001 Microsoft Corporation
Module Name:
NsIpSec.h
Abstract:
External interface declarations for IpSec NAT shim
Author:
Jonathan Burstein (jonburs) 10-July-2001
Environment:
Kernel mode
Revision History:
--*/
#pragma once
//
// Function Type Definitions
//
typedef NTSTATUS
(*PNS_PROCESS_OUTGOING_PACKET)(
IN IPHeader UNALIGNED *pIpHeader,
IN PVOID pvProtocolHeader,
IN ULONG ulProtocolHeaderSize,
OUT PVOID *ppvIpSecContext
);
typedef NTSTATUS
(*PNS_PROCESS_INCOMING_PACKET)(
IN IPHeader UNALIGNED *pIpHeader,
IN PVOID pvProtocolHeader,
IN ULONG ulProtocolHeaderSize,
IN PVOID pvIpSecContext
);
typedef NTSTATUS
(*PNS_CLEANUP_SHIM)(
VOID
);
//
// Structure Definitions
//
typedef struct _IPSEC_NATSHIM_FUNCTIONS
{
OUT PNS_PROCESS_OUTGOING_PACKET pOutgoingPacketRoutine;
OUT PNS_PROCESS_INCOMING_PACKET pIncomingPacketRoutine;
OUT PNS_CLEANUP_SHIM pCleanupRoutine;
} IPSEC_NATSHIM_FUNCTIONS, *PIPSEC_NATSHIM_FUNCTIONS;
//
// Function Prototypes
//
NTSTATUS
NsInitializeShim(
IN PDEVICE_OBJECT pIpSecDeviceObject,
IN PIPSEC_NATSHIM_FUNCTIONS pShimFunctions
);