⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ndis.h

📁 改文件可以安装无线网卡在linux下的驱动,大家可以在网站上查找一下用法
💻 H
📖 第 1 页 / 共 3 页
字号:
struct ndis_binary_data {	USHORT len;	void *buf;};enum ndis_config_param_type {	NDIS_CONFIG_PARAM_INT,	NDIS_CONFIG_PARAM_HEXINT,	NDIS_CONFIG_PARAM_STRING,	NDIS_CONFIG_PARAM_MULTISTRING,	NDIS_CONFIG_PARAM_BINARY,	NDIS_CONFIG_PARAM_NONE,};struct ndis_config_param {	enum ndis_config_param_type type;	union {		ULONG intval;		struct unicode_string ustring;		struct ndis_binary_data binary_data;	} data;};struct device_setting {	struct list_head list;	char name[MAX_NDIS_SETTING_NAME_LEN];	char value[MAX_NDIS_SETTING_VALUE_LEN];	struct ndis_config_param config_param;};struct ndis_bin_file {	char name[MAX_NDIS_SETTING_NAME_LEN];	int size;	void *data;};/* * There is one of these per driver. One per loaded driver exists. * */struct ndis_driver {	CSHORT type;	CSHORT size;	void *dev_object;	ULONG flags;	void *driver_start;	ULONG driver_size;	void *driver_section;	void *driver_extension;	struct ustring *driver_name;	void *hardware_database;	void *fast_io_dispatch;	void *driver_init;	void *driver_start_io;	void (*driver_unload)(struct ndis_driver *driver) STDCALL;	void *major_func[IRP_MJ_MAXIMUM_FUNCTION + 1];	/* rest is ndiswrapper specific info */	void *entry;	struct list_head list;	char name[MAX_NDIS_SETTING_NAME_LEN];	char version[MAX_NDIS_SETTING_VALUE_LEN];	int bustype;	unsigned int num_pe_images;	struct pe_image pe_images[MAX_PE_IMAGES];	int num_bin_files;	struct ndis_bin_file *bin_files;	atomic_t users;	struct miniport_char miniport_char;};struct ndis_handle;/* * There is one of these per handeled device-id * */struct ndis_device {	struct list_head settings;	int bustype;	int vendor;	int device;	int subvendor;	int subdevice;	struct ndis_driver *driver;	char driver_name[MAX_DRIVER_NAME_LEN];	struct ndis_handle *handle;	char conf_file_name[MAX_DRIVER_NAME_LEN];};struct ndis_wireless_stats {	LARGE_INTEGER length;	LARGE_INTEGER tx_frag;	LARGE_INTEGER tx_multi_frag;	LARGE_INTEGER failed;	LARGE_INTEGER retry;	LARGE_INTEGER multi_retry;	LARGE_INTEGER rtss_succ;	LARGE_INTEGER rtss_fail;	LARGE_INTEGER ack_fail;	LARGE_INTEGER frame_dup;	LARGE_INTEGER rx_frag;	LARGE_INTEGER rx_multi_frag;	LARGE_INTEGER fcs_err;};enum ndis_status_type {	Ndis802_11StatusType_Authentication,	Ndis802_11StatusType_PMKID_CandidateList,	Ndis802_11StatusType_MediaStreamMode,	Ndis802_11StatusType_RadioState,};struct ndis_status_indication{	enum ndis_status_type status_type;};enum ndis_radio_status {	Ndis802_11RadioStatusOn,	Ndis802_11RadioStatusHardwareOff,	Ndis802_11RadioStatusSoftwareOff,};struct ndis_radio_status_indication{	enum ndis_status_type status_type;	enum ndis_radio_status radio_state;};enum wrapper_work {	LINK_STATUS_CHANGED,	SET_INFRA_MODE,	SET_ESSID,	SET_PACKET_FILTER,	COLLECT_STATS,	SUSPEND_RESUME,	/* do not work when this is set */	SHUTDOWN};enum ndis_attributes {	ATTR_SERIALIZED,	ATTR_SURPRISE_REMOVE,	ATTR_HALT_ON_SUSPEND,};enum hw_status {	HW_NORMAL,	HW_SUSPENDED,	HW_HALTED,	HW_UNAVAILABLE,};struct encr_info {	struct encr_key {		ULONG length;		UCHAR key[NDIS_ENCODING_TOKEN_MAX];	} keys[MAX_ENCR_KEYS];	unsigned short tx_key_index;};struct ndis_essid {	ULONG length;	UCHAR essid[NDIS_ESSID_MAX_SIZE];};enum network_infrastructure {	Ndis802_11IBSS,	Ndis802_11Infrastructure,	Ndis802_11AutoUnknown,	Ndis802_11InfrastructureMax};enum authentication_mode {	Ndis802_11AuthModeOpen,	Ndis802_11AuthModeShared,	Ndis802_11AuthModeAutoSwitch,	Ndis802_11AuthModeWPA,	Ndis802_11AuthModeWPAPSK,	Ndis802_11AuthModeWPANone,	Ndis802_11AuthModeWPA2,	Ndis802_11AuthModeWPA2PSK,	Ndis802_11AuthModeMax};enum encryption_status {	Ndis802_11WEPEnabled,	Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,	Ndis802_11WEPDisabled,	Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,	Ndis802_11WEPKeyAbsent,	Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,	Ndis802_11WEPNotSupported,	Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,	Ndis802_11Encryption2Enabled,	Ndis802_11Encryption2KeyAbsent,	Ndis802_11Encryption3Enabled,	Ndis802_11Encryption3KeyAbsent};struct ndis_timer {	struct ktimer ktimer;	struct kdpc kdpc;};struct ndis_miniport_timer {	struct ktimer ktimer;	struct kdpc kdpc;	void *timer_func;	void *timer_ctx;	struct ndis_handle *handle;	struct ndis_miniport_timer *next;};#pragma pack(push,4)struct ndis_resource_entry {	UCHAR type;	UCHAR share;	USHORT flags;	union {		struct {			PHYSICAL_ADDRESS start;			ULONG length;		} generic;		struct {			PHYSICAL_ADDRESS start;			ULONG length;		} port;		struct {			ULONG level;			ULONG vector;			KAFFINITY affinity;		} interrupt;		struct {			PHYSICAL_ADDRESS start;			ULONG length;		} memory;		struct {			ULONG channel;			ULONG port;			ULONG reserved1;		} dma;		struct {			ULONG data[3];		} device_private;		struct {			ULONG start;			ULONG length;			ULONG reserved;		} bus_number;		struct {			ULONG data_size;			ULONG reserved1;			ULONG reserved2;		} device_specific_data;	} u;};#pragma pack(pop)struct ndis_resource_list {	USHORT version;	USHORT revision;	ULONG length;	struct ndis_resource_entry list[0];};struct ndis_event {	struct kevent kevent;};struct ndis_bind_paths {	UINT number;	struct unicode_string paths[1];};struct ndis_reference {	KSPIN_LOCK lock;	USHORT ref_count;	BOOLEAN closing;};struct ndis_miniport_interrupt {	void *object;	KSPIN_LOCK dpc_count_lock;	void *reserved;	ndis_isr_handler irq_th;	ndis_interrupt_handler irq_bh;	struct kdpc interrupt_dpc;	struct ndis_miniport_block *miniport;	UCHAR dpc_count;	BOOLEAN filler1;	struct kevent dpcs_completed_event;        BOOLEAN shared_interrupt;	BOOLEAN isr_requested;};struct ndis_filterdbs {	union {		void *eth_db;		void *null_db;	} u;	void *trdb;	void *fddidb;	void *arcdb;};enum ndis_interface_type {	NdisInterfaceInternal,	NdisInterfaceIsa,	NdisInterfaceEisa,	NdisInterfaceMca,	NdisInterfaceTurboChannel,	NdisInterfacePci,	NdisInterfacePcMcia,};/* * This is the per device struct. One per PCI-device exists. * * This struct contains function pointers that the drivers references * directly via macros, so it's important that they are at the correct * position hence the paddings. *//* This is called NDIS_MINIPORT_BLOCK in NDIS; however, when using it * in Ndis functions, it is passed as void *handle. To avoid * unnecessary typecasting, we declare it as ndis_handle */struct ndis_handle {	void *signature;	struct ndis_handle *next;	struct ndis_driver *driver;	void *adapter_ctx;	struct unicode_string name;	struct ndis_bind_paths *bindpaths;	void *openqueue;	struct ndis_reference reference;	void *device_ctx;	UCHAR padding;	UCHAR lock_acquired;	UCHAR pmode_opens;	UCHAR assigned_cpu;	KSPIN_LOCK kspin_lock;	enum ndis_request_type *mediarequest;	struct ndis_miniport_interrupt *interrupt;	ULONG flags;	ULONG pnp_flags;	struct list_entry packet_list;	struct ndis_packet *first_pending_tx_packet;	struct ndis_packet *return_packet_queue;	ULONG request_buffer;	void *set_mcast_buffer;	struct ndis_handle *primary_miniport;	void *wrapper_ctx;	void *bus_data_ctx;	ULONG pnp_capa;	void *resources;	struct ndis_timer wakeup_dpc_timer;	struct unicode_string basename;	struct unicode_string symlink_name;	ULONG ndis_hangcheck_interval;	USHORT hanghcheck_ticks;	USHORT hangcheck_tick;	NDIS_STATUS ndis_reset_status;	void *resetopen;	struct ndis_filterdbs filterdbs;	void *rx_packet;	void *send_complete;	void *send_resource_avail;	void *reset_complete;	enum ndis_medium media_type;	ULONG bus_number;	enum ndis_interface_type bus_type;	enum ndis_interface_type adapter_type;	struct device_object *device_obj;	struct device_object *phys_device_obj;	struct device_object *next_device_obj;	void *mapreg;	void *call_mgraflist;	void *miniport_thread;	void *setinfobuf;	USHORT setinfo_buf_len;	USHORT max_send_pkts;	NDIS_STATUS fake_status;	void *lock_handler;	struct unicode_string *adapter_instance_name;	void *timer_queue;	UINT mac_options;	void *pending_req;	UINT max_long_addrs;	UINT max_short_addrs;	UINT cur_lookahead;	UINT max_lookahead;	ndis_interrupt_handler irq_bh;	void *disable_intr;	void *enable_intr;	void *send_pkts;	void *deferred_send;	void *eth_rx_indicate;	void *txrx_indicate;	void *fddi_rx_indicate;	void *eth_rx_complete;	void *txrx_complete;	void *fddi_rx_complete;	void *status;	void *status_complete;	void *td_complete;	void *query_complete;	void *set_complete;	void *wan_tx_complete;	void *wan_rx;	void *wan_rx_complete;	/* the rest are ndiswrapper specific */	/* keep a barrier in cases of over-stepping */	char barrier[200];	union {		struct pci_dev *pci;		struct usb_device *usb;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -