Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

acdapi.h

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1995 Microsoft Corporation 00004 00005 Module Name: 00006 00007 acdapi.h 00008 00009 Abstract: 00010 00011 Exported routines from the Implicit Connection 00012 Driver (rasacd.sys) for use by transports to allow a 00013 user space process to dynamically create a network 00014 connection upon a network unreachable error. 00015 00016 Author: 00017 00018 Anthony Discolo (adiscolo) 17-Apr-1995 00019 00020 Environment: 00021 00022 Kernel Mode 00023 00024 Revision History: 00025 00026 --*/ 00027 00028 #ifndef _ACDAPI_ 00029 #define _ACDAPI_ 00030 00031 // 00032 // A callback from the automatic connection 00033 // driver to the transport to continue the 00034 // connection process. 00035 // 00036 typedef VOID (*ACD_CONNECT_CALLBACK)( 00037 IN BOOLEAN, 00038 IN PVOID *); 00039 00040 typedef VOID 00041 (*ACD_NEWCONNECTION)( 00042 IN PACD_ADDR pszAddr, 00043 IN PACD_ADAPTER pAdapter 00044 ); 00045 00046 typedef BOOLEAN 00047 (*ACD_STARTCONNECTION)( 00048 IN ULONG ulDriverId, 00049 IN PACD_ADDR pszAddr, 00050 IN ULONG ulFlags, 00051 IN ACD_CONNECT_CALLBACK pProc, 00052 IN USHORT nArgs, 00053 IN PVOID *pArgs 00054 ); 00055 00056 // 00057 // A callback to allow the caller 00058 // to rummage around in the parameters 00059 // to find the right request to cancel. 00060 // To cancel the connection, the 00061 // ACD_CANCEL_CALLBACK routine returns 00062 // TRUE. 00063 // 00064 typedef BOOLEAN (*ACD_CANCEL_CALLBACK)( 00065 IN PVOID pArg, 00066 IN ULONG ulFlags, 00067 IN ACD_CONNECT_CALLBACK pProc, 00068 IN USHORT nArgs, 00069 IN PVOID *pArgs 00070 ); 00071 00072 typedef BOOLEAN 00073 (*ACD_CANCELCONNECTION)( 00074 IN ULONG ulDriverId, 00075 IN PACD_ADDR pszAddr, 00076 IN ACD_CANCEL_CALLBACK pProc, 00077 IN PVOID pArg 00078 ); 00079 00080 // 00081 // The structure a transport client receives 00082 // when it binds (IOCTL_INTERNAL_ACD_BIND) with the driver. 00083 // 00084 typedef struct { 00085 LIST_ENTRY ListEntry; 00086 // 00087 // Provided by the transport. 00088 // 00089 KSPIN_LOCK SpinLock; 00090 ULONG ulDriverId; 00091 // 00092 // Filled in by rasacd.sys. 00093 // 00094 BOOLEAN fEnabled; 00095 ACD_NEWCONNECTION lpfnNewConnection; 00096 ACD_STARTCONNECTION lpfnStartConnection; 00097 ACD_CANCELCONNECTION lpfnCancelConnection; 00098 } ACD_DRIVER, *PACD_DRIVER; 00099 00100 // 00101 // Internal IOCTL definitions 00102 // 00103 #define IOCTL_INTERNAL_ACD_BIND \ 00104 _ACD_CTL_CODE(0x1234, METHOD_BUFFERED, FILE_ANY_ACCESS) 00105 00106 #define IOCTL_INTERNAL_ACD_UNBIND \ 00107 _ACD_CTL_CODE(0x1235, METHOD_BUFFERED, FILE_ANY_ACCESS) 00108 00109 #define IOCTL_INTERNAL_ACD_QUERY_STATE \ 00110 _ACD_CTL_CODE(0x1236, METHOD_BUFFERED, FILE_ANY_ACCESS) 00111 00112 #endif // ifndef _ACDAPI_

Generated on Sat May 15 19:39:13 2004 for test by doxygen 1.3.7