Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
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_
|