Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenndisuio.h
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS NDIS User I/O driver 00004 * FILE: ndisuio.h 00005 * PURPOSE: NDISUIO definitions 00006 */ 00007 #ifndef __NDISUIO_H 00008 #define __NDISUIO_H 00009 00010 #include <wdm.h> 00011 #include <ndis.h> 00012 #include <nuiouser.h> 00013 00014 extern PDEVICE_OBJECT GlobalDeviceObject; 00015 extern NDIS_HANDLE GlobalProtocolHandle; 00016 extern LIST_ENTRY GlobalAdapterList; 00017 extern KSPIN_LOCK GlobalAdapterListLock; 00018 00019 typedef struct _NDISUIO_ADAPTER_CONTEXT 00020 { 00021 /* Asynchronous completion */ 00022 NDIS_STATUS AsyncStatus; 00023 KEVENT AsyncEvent; 00024 00025 /* NDIS binding information */ 00026 NDIS_HANDLE BindingHandle; 00027 00028 /* Reference count information */ 00029 ULONG OpenCount; 00030 LIST_ENTRY OpenEntryList; 00031 00032 /* NDIS pools */ 00033 NDIS_HANDLE PacketPoolHandle; 00034 NDIS_HANDLE BufferPoolHandle; 00035 00036 /* Receive packet list */ 00037 LIST_ENTRY PacketList; 00038 KEVENT PacketReadEvent; 00039 00040 /* Mac options */ 00041 ULONG MacOptions; 00042 00043 /* Device name */ 00044 UNICODE_STRING DeviceName; 00045 00046 /* Global list entry */ 00047 LIST_ENTRY ListEntry; 00048 00049 /* Spin lock */ 00050 KSPIN_LOCK Spinlock; 00051 } NDISUIO_ADAPTER_CONTEXT, *PNDISUIO_ADAPTER_CONTEXT; 00052 00053 typedef struct _NDISUIO_OPEN_ENTRY 00054 { 00055 /* File object */ 00056 PFILE_OBJECT FileObject; 00057 00058 /* Tracks how this adapter was opened (write-only or read-write) */ 00059 BOOLEAN WriteOnly; 00060 00061 /* List entry */ 00062 LIST_ENTRY ListEntry; 00063 } NDISUIO_OPEN_ENTRY, *PNDISUIO_OPEN_ENTRY; 00064 00065 typedef struct _NDISUIO_PACKET_ENTRY 00066 { 00067 /* Length of data at the end of the struct */ 00068 ULONG PacketLength; 00069 00070 /* Entry on the packet list */ 00071 LIST_ENTRY ListEntry; 00072 00073 /* Packet data */ 00074 UCHAR PacketData[1]; 00075 } NDISUIO_PACKET_ENTRY, *PNDISUIO_PACKET_ENTRY; 00076 00077 /* NDIS version info */ 00078 #define NDIS_MAJOR_VERSION 5 00079 #define NDIS_MINOR_VERSION 0 00080 00081 /* createclose.c */ 00082 NTSTATUS 00083 NTAPI 00084 NduDispatchCreate(PDEVICE_OBJECT DeviceObject, 00085 PIRP Irp); 00086 00087 NTSTATUS 00088 NTAPI 00089 NduDispatchClose(PDEVICE_OBJECT DeviceObject, 00090 PIRP Irp); 00091 00092 /* ioctl.c */ 00093 NTSTATUS 00094 NTAPI 00095 NduDispatchDeviceControl(PDEVICE_OBJECT DeviceObject, 00096 PIRP Irp); 00097 00098 /* misc.c */ 00099 NDIS_STATUS 00100 AllocateAndChainBuffer(PNDISUIO_ADAPTER_CONTEXT AdapterContext, 00101 PNDIS_PACKET Packet, 00102 PVOID Buffer, 00103 ULONG BufferSize, 00104 BOOLEAN Front); 00105 00106 PNDIS_PACKET 00107 CreatePacketFromPoolBuffer(PNDISUIO_ADAPTER_CONTEXT AdapterContext, 00108 PVOID Buffer, 00109 ULONG BufferSize); 00110 00111 VOID 00112 CleanupAndFreePacket(PNDIS_PACKET Packet, 00113 BOOLEAN FreePool); 00114 00115 PNDISUIO_ADAPTER_CONTEXT 00116 FindAdapterContextByName(PNDIS_STRING DeviceName); 00117 00118 VOID 00119 ReferenceAdapterContext(PNDISUIO_ADAPTER_CONTEXT AdapterContext); 00120 00121 VOID 00122 DereferenceAdapterContextWithOpenEntry(PNDISUIO_ADAPTER_CONTEXT AdapterContext, 00123 PNDISUIO_OPEN_ENTRY OpenEntry); 00124 00125 /* protocol.c */ 00126 VOID 00127 NTAPI 00128 NduOpenAdapterComplete(NDIS_HANDLE ProtocolBindingContext, 00129 NDIS_STATUS Status, 00130 NDIS_STATUS OpenStatus); 00131 00132 VOID 00133 NTAPI 00134 NduCloseAdapterComplete(NDIS_HANDLE ProtocolBindingContext, 00135 NDIS_STATUS Status); 00136 00137 VOID 00138 NTAPI 00139 NduSendComplete(NDIS_HANDLE ProtocolBindingContext, 00140 PNDIS_PACKET Packet, 00141 NDIS_STATUS Status); 00142 00143 VOID 00144 NTAPI 00145 NduTransferDataComplete(NDIS_HANDLE ProtocolBindingContext, 00146 PNDIS_PACKET Packet, 00147 NDIS_STATUS Status, 00148 UINT BytesTransferred); 00149 00150 VOID 00151 NTAPI 00152 NduResetComplete(NDIS_HANDLE ProtocolBindingContext, 00153 NDIS_STATUS Status); 00154 00155 VOID 00156 NTAPI 00157 NduRequestComplete(NDIS_HANDLE ProtocolBindingContext, 00158 PNDIS_REQUEST NdisRequest, 00159 NDIS_STATUS Status); 00160 00161 NDIS_STATUS 00162 NTAPI 00163 NduReceive(NDIS_HANDLE ProtocolBindingContext, 00164 NDIS_HANDLE MacReceiveContext, 00165 PVOID HeaderBuffer, 00166 UINT HeaderBufferSize, 00167 PVOID LookAheadBuffer, 00168 UINT LookaheadBufferSize, 00169 UINT PacketSize); 00170 00171 VOID 00172 NTAPI 00173 NduReceiveComplete(NDIS_HANDLE ProtocolBindingContext); 00174 00175 VOID 00176 NTAPI 00177 NduStatus(NDIS_HANDLE ProtocolBindingContext, 00178 NDIS_STATUS GeneralStatus, 00179 PVOID StatusBuffer, 00180 UINT StatusBufferSize); 00181 00182 VOID 00183 NTAPI 00184 NduStatusComplete(NDIS_HANDLE ProtocolBindingContext); 00185 00186 VOID 00187 NTAPI 00188 NduBindAdapter(PNDIS_STATUS Status, 00189 NDIS_HANDLE BindContext, 00190 PNDIS_STRING DeviceName, 00191 PVOID SystemSpecific1, 00192 PVOID SystemSpecific2); 00193 00194 VOID 00195 NTAPI 00196 NduUnbindAdapter(PNDIS_STATUS Status, 00197 NDIS_HANDLE ProtocolBindingContext, 00198 NDIS_HANDLE UnbindContext); 00199 00200 /* readwrite.c */ 00201 NTSTATUS 00202 NTAPI 00203 NduDispatchRead(PDEVICE_OBJECT DeviceObject, 00204 PIRP Irp); 00205 00206 NTSTATUS 00207 NTAPI 00208 NduDispatchWrite(PDEVICE_OBJECT DeviceObject, 00209 PIRP Irp); 00210 #endif /* __NDISUIO_H */ Generated on Fri May 25 2012 04:26:11 for ReactOS by
1.7.6.1
|