ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ndisuio.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.