113 lines
2.3 KiB
C
113 lines
2.3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
acdapi.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Exported routines from the Implicit Connection
|
||
|
Driver (rasacd.sys) for use by transports to allow a
|
||
|
user space process to dynamically create a network
|
||
|
connection upon a network unreachable error.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Anthony Discolo (adiscolo) 17-Apr-1995
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Kernel Mode
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _ACDAPI_
|
||
|
#define _ACDAPI_
|
||
|
|
||
|
//
|
||
|
// A callback from the automatic connection
|
||
|
// driver to the transport to continue the
|
||
|
// connection process.
|
||
|
//
|
||
|
typedef VOID (*ACD_CONNECT_CALLBACK)(
|
||
|
IN BOOLEAN,
|
||
|
IN PVOID *);
|
||
|
|
||
|
typedef VOID
|
||
|
(*ACD_NEWCONNECTION)(
|
||
|
IN PACD_ADDR pszAddr,
|
||
|
IN PACD_ADAPTER pAdapter
|
||
|
);
|
||
|
|
||
|
typedef BOOLEAN
|
||
|
(*ACD_STARTCONNECTION)(
|
||
|
IN ULONG ulDriverId,
|
||
|
IN PACD_ADDR pszAddr,
|
||
|
IN ULONG ulFlags,
|
||
|
IN ACD_CONNECT_CALLBACK pProc,
|
||
|
IN USHORT nArgs,
|
||
|
IN PVOID *pArgs
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// A callback to allow the caller
|
||
|
// to rummage around in the parameters
|
||
|
// to find the right request to cancel.
|
||
|
// To cancel the connection, the
|
||
|
// ACD_CANCEL_CALLBACK routine returns
|
||
|
// TRUE.
|
||
|
//
|
||
|
typedef BOOLEAN (*ACD_CANCEL_CALLBACK)(
|
||
|
IN PVOID pArg,
|
||
|
IN ULONG ulFlags,
|
||
|
IN ACD_CONNECT_CALLBACK pProc,
|
||
|
IN USHORT nArgs,
|
||
|
IN PVOID *pArgs
|
||
|
);
|
||
|
|
||
|
typedef BOOLEAN
|
||
|
(*ACD_CANCELCONNECTION)(
|
||
|
IN ULONG ulDriverId,
|
||
|
IN PACD_ADDR pszAddr,
|
||
|
IN ACD_CANCEL_CALLBACK pProc,
|
||
|
IN PVOID pArg
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// The structure a transport client receives
|
||
|
// when it binds (IOCTL_INTERNAL_ACD_BIND) with the driver.
|
||
|
//
|
||
|
typedef struct {
|
||
|
LIST_ENTRY ListEntry;
|
||
|
//
|
||
|
// Provided by the transport.
|
||
|
//
|
||
|
KSPIN_LOCK SpinLock;
|
||
|
ULONG ulDriverId;
|
||
|
//
|
||
|
// Filled in by rasacd.sys.
|
||
|
//
|
||
|
BOOLEAN fEnabled;
|
||
|
ACD_NEWCONNECTION lpfnNewConnection;
|
||
|
ACD_STARTCONNECTION lpfnStartConnection;
|
||
|
ACD_CANCELCONNECTION lpfnCancelConnection;
|
||
|
} ACD_DRIVER, *PACD_DRIVER;
|
||
|
|
||
|
//
|
||
|
// Internal IOCTL definitions
|
||
|
//
|
||
|
#define IOCTL_INTERNAL_ACD_BIND \
|
||
|
_ACD_CTL_CODE(0x1234, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
|
||
|
#define IOCTL_INTERNAL_ACD_UNBIND \
|
||
|
_ACD_CTL_CODE(0x1235, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
|
||
|
#define IOCTL_INTERNAL_ACD_QUERY_STATE \
|
||
|
_ACD_CTL_CODE(0x1236, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
|
||
|
#endif // ifndef _ACDAPI_
|