📄 ndis.h
字号:
void *ptr; } dev;#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) struct usb_interface *intf;#endif struct net_device *net_dev; void *shutdown_ctx; struct work_struct irq_work; struct ndis_irq *ndis_irq; unsigned long mem_start; unsigned long mem_end; struct net_device_stats stats; struct iw_statistics wireless_stats; struct ndis_wireless_stats ndis_stats; struct ndis_device *device; struct work_struct xmit_work; struct ndis_packet *xmit_ring[XMIT_RING_SIZE]; struct ndis_packet **xmit_array; unsigned int xmit_ring_start; unsigned int xmit_ring_pending; unsigned int max_send_packets; KSPIN_LOCK xmit_lock; unsigned char send_ok; KSPIN_LOCK send_packet_done_lock; struct semaphore ndis_comm_mutex; wait_queue_head_t ndis_comm_wq; int ndis_comm_res; int ndis_comm_done; int serialized; int use_sg_dma; int map_count; int multicast_list_size; char *multicast_list; dma_addr_t *map_dma_addr; int hangcheck_interval; int hangcheck_active; struct timer_list hangcheck_timer; int reset_status; struct timer_list stats_timer; unsigned long scan_timestamp; unsigned char link_status; struct encr_info encr_info; char nick[IW_ESSID_MAX_SIZE+1]; u32 pci_state[16]; unsigned long hw_status; struct ndis_essid essid; unsigned long capa; enum authentication_mode auth_mode; enum encryption_status encr_mode; enum network_infrastructure infrastructure_mode; mac_address mac; /* List of initialized timers */ struct list_head timers; KSPIN_LOCK timers_lock; struct proc_dir_entry *procfs_iface; struct work_struct wrapper_worker; unsigned long wrapper_work; unsigned long attributes; struct ndis_resource_list *pci_resources;};struct ndis_packet *allocate_ndis_packet(void);void free_ndis_packet(struct ndis_packet *packet);STDCALL void NdisMIndicateReceivePacket(struct ndis_handle *handle, struct ndis_packet **packets, UINT nr_packets);STDCALL void NdisMSendComplete(struct ndis_handle *handle, struct ndis_packet *packet, NDIS_STATUS status);STDCALL void NdisMSendResourcesAvailable(struct ndis_handle *handle);STDCALL void NdisMIndicateStatus(struct ndis_handle *handle, NDIS_STATUS status, void *buf, UINT len);STDCALL void NdisMIndicateStatusComplete(struct ndis_handle *handle);STDCALL void NdisMQueryInformationComplete(struct ndis_handle *handle, NDIS_STATUS status);STDCALL void NdisMSetInformationComplete(struct ndis_handle *handle, NDIS_STATUS status);STDCALL void NdisMResetComplete(struct ndis_handle *handle, NDIS_STATUS status, BOOLEAN address_reset);STDCALL ULONG NDIS_BUFFER_TO_SPAN_PAGES(ndis_buffer *buffer);STDCALL BOOLEAN NdisWaitEvent(struct ndis_event *event, UINT timeout);STDCALL void NdisSetEvent(struct ndis_event *event);STDCALL void NdisMDeregisterInterrupt(struct ndis_irq *ndis_irq);STDCALL void EthRxIndicateHandler(void *adapter_ctx, void *rx_ctx, char *header1, char *header, UINT header_size, void *look_ahead, UINT look_ahead_size, UINT packet_size);STDCALL void EthRxComplete(struct ndis_handle *handle);STDCALL void NdisMTransferDataComplete(struct ndis_handle *handle, struct ndis_packet *packet, NDIS_STATUS status, UINT bytes_txed);STDCALL void NdisWriteConfiguration(NDIS_STATUS *status, struct ndis_handle *handle, struct unicode_string *key, struct ndis_config_param *val);void *get_sp(void);int ndis_init(void);void ndis_exit_handle(struct ndis_handle *handle);void ndis_exit(void);int usb_init(void);void usb_exit(void);void usb_cleanup(void);int load_pe_images(struct pe_image[], int n);int ndiswrapper_procfs_init(void);int ndiswrapper_procfs_add_iface(struct ndis_handle *handle);void ndiswrapper_procfs_remove_iface(struct ndis_handle *handle);void ndiswrapper_procfs_remove(void);int misc_funcs_init(void);void misc_funcs_exit_handle(struct ndis_handle *handle);void misc_funcs_exit(void);void *wrap_kmalloc(size_t size, int flags);void wrap_kfree(void *ptr);void wrapper_init_timer(struct ktimer *ktimer, void *handle);int wrapper_set_timer(struct wrapper_timer *wrapper_timer, unsigned long expires, unsigned long repeat, struct kdpc *kdpc);void wrapper_cancel_timer(struct wrapper_timer *wrapper_timer, char *canceled);void packet_recycler(void *param);int stricmp(const char *s1, const char *s2);void dump_bytes(const char *where, const u8 *ip);/* Required OIDs */#define OID_GEN_SUPPORTED_LIST 0x00010101#define OID_GEN_HARDWARE_STATUS 0x00010102#define OID_GEN_MEDIA_SUPPORTED 0x00010103#define OID_GEN_MEDIA_IN_USE 0x00010104#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106#define OID_GEN_LINK_SPEED 0x00010107#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B#define OID_GEN_VENDOR_ID 0x0001010C#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F#define OID_GEN_DRIVER_VERSION 0x00010110#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111#define OID_GEN_PROTOCOL_OPTIONS 0x00010112#define OID_GEN_MAC_OPTIONS 0x00010113#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116#define OID_GEN_SUPPORTED_GUIDS 0x00010117#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */#define OID_GEN_MACHINE_NAME 0x0001021A#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */#define OID_GEN_VLAN_ID 0x0001021C/* Optional OIDs. */#define OID_GEN_MEDIA_CAPABILITIES 0x00010201#define OID_GEN_PHYSICAL_MEDIUM 0x00010202/* Required statistics OIDs. */#define OID_GEN_XMIT_OK 0x00020101#define OID_GEN_RCV_OK 0x00020102#define OID_GEN_XMIT_ERROR 0x00020103#define OID_GEN_RCV_ERROR 0x00020104#define OID_GEN_RCV_NO_BUFFER 0x00020105/* Optional OID statistics */#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C#define OID_GEN_RCV_CRC_ERROR 0x0002020D#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E#define OID_GEN_GET_TIME_CAPS 0x0002020F#define OID_GEN_GET_NETCARD_TIME 0x00020210#define OID_GEN_NETCARD_LOAD 0x00020211#define OID_GEN_DEVICE_PROFILE 0x00020212/* 802.3 (ethernet) OIDs */#define OID_802_3_PERMANENT_ADDRESS 0x01010101#define OID_802_3_CURRENT_ADDRESS 0x01010102#define OID_802_3_MULTICAST_LIST 0x01010103#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104#define OID_802_3_MAC_OPTIONS 0x01010105#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101#define OID_802_3_XMIT_ONE_COLLISION 0x01020102#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103#define OID_802_3_XMIT_DEFERRED 0x01020201#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202#define OID_802_3_RCV_OVERRUN 0x01020203#define OID_802_3_XMIT_UNDERRUN 0x01020204#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207/* PnP and power management OIDs */#define OID_PNP_CAPABILITIES 0xFD010100#define OID_PNP_SET_POWER 0xFD010101#define OID_PNP_QUERY_POWER 0xFD010102#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105#define OID_PNP_ENABLE_WAKE_UP 0xFD010106/* PnP/PM Statistics (Optional). */#define OID_PNP_WAKE_UP_OK 0xFD020200#define OID_PNP_WAKE_UP_ERROR 0xFD020201/* The following bits are defined for OID_PNP_ENABLE_WAKE_UP */#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004/* 802.11 OIDs */#define OID_802_11_BSSID 0x0D010101#define OID_802_11_SSID 0x0D010102#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204#define OID_802_11_TX_POWER_LEVEL 0x0D010205#define OID_802_11_RSSI 0x0D010206#define OID_802_11_RSSI_TRIGGER 0x0D010207#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209#define OID_802_11_RTS_THRESHOLD 0x0D01020A#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D#define OID_802_11_SUPPORTED_RATES 0x0D01020E#define OID_802_11_DESIRED_RATES 0x0D010210#define OID_802_11_CONFIGURATION 0x0D010211#define OID_802_11_STATISTICS 0x0D020212#define OID_802_11_ADD_WEP 0x0D010113#define OID_802_11_REMOVE_WEP 0x0D010114#define OID_802_11_DISASSOCIATE 0x0D010115#define OID_802_11_POWER_MODE 0x0D010216#define OID_802_11_BSSID_LIST 0x0D010217#define OID_802_11_AUTHENTICATION_MODE 0x0D010118#define OID_802_11_PRIVACY_FILTER 0x0D010119#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A#define OID_802_11_WEP_STATUS 0x0D01011B#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C#define OID_802_11_ADD_KEY 0x0D01011D#define OID_802_11_REMOVE_KEY 0x0D01011E#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F#define OID_802_11_TEST 0x0D010120#define OID_802_11_CAPABILITY 0x0D010122#define OID_802_11_PMKID 0x0D010123#define NDIS_STATUS_SUCCESS 0#define NDIS_STATUS_PENDING 0x00000103#define NDIS_STATUS_NOT_RECOGNIZED 0x00010001#define NDIS_STATUS_NOT_COPIED 0x00010002#define NDIS_STATUS_NOT_ACCEPTED 0x00010003#define NDIS_STATUS_CALL_ACTIVE 0x00010007#define NDIS_STATUS_ONLINE 0x40010003#define NDIS_STATUS_RESET_START 0x40010004#define NDIS_STATUS_RESET_END 0x40010005#define NDIS_STATUS_RING_STATUS 0x40010006#define NDIS_STATUS_CLOSED 0x40010007#define NDIS_STATUS_WAN_LINE_UP 0x40010008#define NDIS_STATUS_WAN_LINE_DOWN 0x40010009#define NDIS_STATUS_WAN_FRAGMENT 0x4001000A#define NDIS_STATUS_MEDIA_CONNECT 0x4001000B#define NDIS_STATUS_MEDIA_DISCONNECT 0x4001000C#define NDIS_STATUS_HARDWARE_LINE_UP 0x4001000D#define NDIS_STATUS_HARDWARE_LINE_DOWN 0x4001000E#define NDIS_STATUS_INTERFACE_UP 0x4001000F#define NDIS_STATUS_INTERFACE_DOWN 0x40010010#define NDIS_STATUS_MEDIA_BUSY 0x40010011#define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION 0x40010012#define NDIS_STATUS_WW_INDICATION NDIS_STATUS_MEDIA_SPECIFIC_INDICATION#define NDIS_STATUS_LINK_SPEED_CHANGE 0x40010013#define NDIS_STATUS_WAN_GET_STATS 0x40010014#define NDIS_STATUS_WAN_CO_FRAGMENT 0x40010015#define NDIS_STATUS_WAN_CO_LINKPARAMS 0x40010016#define NDIS_STATUS_NOT_RESETTABLE 0x80010001#define NDIS_STATUS_SOFT_ERRORS 0x80010003#define NDIS_STATUS_HARD_ERRORS 0x80010004#define NDIS_STATUS_BUFFER_OVERFLOW 0x80000005#define NDIS_STATUS_FAILURE 0xC0000001#define NDIS_STATUS_INVALID_PARAMETER 0xC000000D#define NDIS_STATUS_RESOURCES 0xC000009A#define NDIS_STATUS_CLOSING 0xC0010002#define NDIS_STATUS_BAD_VERSION 0xC0010004#define NDIS_STATUS_BAD_CHARACTERISTICS 0xC0010005#define NDIS_STATUS_ADAPTER_NOT_FOUND 0xC0010006#define NDIS_STATUS_OPEN_FAILED 0xC0010007#define NDIS_STATUS_DEVICE_FAILED 0xC0010008#define NDIS_STATUS_MULTICAST_FULL 0xC0010009#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B#define NDIS_STATUS_REQUEST_ABORTED 0xC001000C#define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D#define NDIS_STATUS_CLOSING_INDICATING 0xC001000E#define NDIS_STATUS_BAD_VERSION 0xC0010004#define NDIS_STATUS_NOT_SUPPORTED 0xC00000BB#define NDIS_STATUS_INVALID_PACKET 0xC001000F#define NDIS_STATUS_OPEN_LIST_FULL 0xC0010010#define NDIS_STATUS_ADAPTER_NOT_READY 0xC0010011#define NDIS_STATUS_ADAPTER_NOT_OPEN 0xC0010012#define NDIS_STATUS_NOT_INDICATING 0xC0010013#define NDIS_STATUS_INVALID_LENGTH 0xC0010014#define NDIS_STATUS_INVALID_DATA 0xC0010015#define NDIS_STATUS_BUFFER_TOO_SHORT 0xC0010016#define NDIS_STATUS_INVALID_OID 0xC0010017#define NDIS_STATUS_ADAPTER_REMOVED 0xC0010018#define NDIS_STATUS_UNSUPPORTED_MEDIA 0xC0010019#define NDIS_STATUS_GROUP_ADDRESS_IN_USE 0xC001001A#define NDIS_STATUS_FILE_NOT_FOUND 0xC001001B#define NDIS_STATUS_ERROR_READING_FILE 0xC001001C#define NDIS_STATUS_ALREADY_MAPPED 0xC001001D#define NDIS_STATUS_RESOURCE_CONFLICT 0xC001001E#define NDIS_STATUS_NO_CABLE 0xC001001F#define NDIS_STATUS_INVALID_SAP 0xC0010020#define NDIS_STATUS_SAP_IN_USE 0xC0010021#define NDIS_STATUS_INVALID_ADDRESS 0xC0010022#define NDIS_STATUS_VC_NOT_ACTIVATED 0xC0010023#define NDIS_STATUS_DEST_OUT_OF_ORDER 0xC0010024#define NDIS_STATUS_VC_NOT_AVAILABLE 0xC0010025#define NDIS_STATUS_CELLRATE_NOT_AVAILABLE 0xC0010026#define NDIS_STATUS_INCOMPATABLE_QOS 0xC0010027#define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED 0xC0010028#define NDIS_STATUS_NO_ROUTE_TO_DESTINATION 0xC0010029#define NDIS_STATUS_TOKEN_RING_OPEN_ERROR 0xC0011000#define NDIS_STATUS_INVALID_DEVICE_REQUEST 0xC0000010#define NDIS_STATUS_NETWORK_UNREACHABLE 0xC000023C/* Event codes */#define EVENT_NDIS_RESOURCE_CONFLICT 0xC0001388#define EVENT_NDIS_OUT_OF_RESOURCE 0xC0001389#define EVENT_NDIS_HARDWARE_FAILURE 0xC000138A#define EVENT_NDIS_ADAPTER_NOT_FOUND 0xC000138B#define EVENT_NDIS_INTERRUPT_CONNECT 0xC000138C#define EVENT_NDIS_DRIVER_FAILURE 0xC000138D#define EVENT_NDIS_BAD_VERSION 0xC000138E#define EVENT_NDIS_TIMEOUT 0x8000138F#define EVENT_NDIS_NETWORK_ADDRESS 0xC0001390#define EVENT_NDIS_UNSUPPORTED_CONFIGURATION 0xC0001391#define EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER 0xC0001392#define EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER 0xC0001393#define EVENT_NDIS_BAD_IO_BASE_ADDRESS 0xC0001394#define EVENT_NDIS_RECEIVE_SPACE_SMALL 0x40001395#define EVENT_NDIS_ADAPTER_DISABLED 0x80001396#define EVENT_NDIS_IO_PORT_CONFLICT 0x80001397#define EVENT_NDIS_PORT_OR_DMA_CONFLICT 0x80001398#define EVENT_NDIS_MEMORY_CONFLICT 0x80001399#define EVENT_NDIS_INTERRUPT_CONFLICT 0x8000139A#define EVENT_NDIS_DMA_CONFLICT 0x8000139B#define EVENT_NDIS_INVALID_DOWNLOAD_FILE_ERROR 0xC000139C#define EVENT_NDIS_MAXRECEIVES_ERROR 0x8000139D#define EVENT_NDIS_MAXTRANSMITS_ERROR 0x8000139E#define EVENT_NDIS_MAXFRAMESIZE_ERROR 0x8000139F#define EVENT_NDIS_MAXINTERNALBUFS_ERROR 0x800013A0#define EVENT_NDIS_MAXMULTICAST_ERROR 0x800013A1#define EVENT_NDIS_PRODUCTID_ERROR 0x800013A2#define EVENT_NDIS_LOBE_FAILUE_ERROR 0x800013A3#define EVENT_NDIS_SIGNAL_LOSS_ERROR 0x800013A4#define EVENT_NDIS_REMOVE_RECEIVED_ERROR 0x800013A5#define EVENT_NDIS_TOKEN_RING_CORRECTION 0x400013A6#define EVENT_NDIS_ADAPTER_CHECK_ERROR 0xC00013A7#define EVENT_NDIS_RESET_FAILURE_ERROR 0x800013A8#define EVENT_NDIS_CABLE_DISCONNECTED_ERROR 0x800013A9#define EVENT_NDIS_RESET_FAILURE_CORRECTION 0x800013AA/* packet filter bits used by NDIS_OID_PACKET_FILTER */#define NDIS_PACKET_TYPE_DIRECTED 0x00000001#define NDIS_PACKET_TYPE_MULTICAST 0x00000002#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004#define NDIS_PACKET_TYPE_BROADCAST 0x00000008#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020#define NDIS_PACKET_TYPE_SMT 0x00000040#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080#define NDIS_PACKET_TYPE_GROUP 0x00001000#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000/* memory allocation flags */#define NDIS_MEMORY_CONTIGUOUS 0x00000001#define NDIS_MEMORY_NONCACHED 0x00000002/* Atrribute flags to NdisMSetAtrributesEx */#define NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT 0x00000001#define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT 0x00000002#define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004#define NDIS_ATTRIBUTE_BUS_MASTER 0x00000008#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER 0x00000010#define NDIS_ATTRIBUTE_DESERIALIZE 0x00000020#define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 0x00000040#define NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK 0x00000080#define NDIS_ATTRIBUTE_NOT_CO_NDIS 0x00000100#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS 0x00000200#endif /* NDIS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -