📄 ndis.h
字号:
union ndis_rw_lock_refcount ref_count[MAXIMUM_PROCESSORS];};struct ndis_work_item;typedef void (*NDIS_PROC)(struct ndis_work_item *, void *) wstdcall;struct ndis_work_item { void *ctx; NDIS_PROC func; UCHAR reserved[8 * sizeof(void *)];};struct alloc_shared_mem { void *ctx; ULONG size; BOOLEAN cached;};struct ndis_work_entry { struct nt_list list; struct ndis_work_item *ndis_work_item;};struct ndis_irq { /* void *intr_obj is used for irq */ union { void *intr_obj; unsigned int irq; } irq; /* Taken by ISR, DisableInterrupt and SynchronizeWithInterrupt */ NT_SPIN_LOCK lock; void *id; ndis_isr_handler isr; void *dpc; struct kdpc intr_dpc; struct wrap_ndis_device *wnd; UCHAR dpc_count; /* unsigned char filler1 is used for enabled */ UCHAR enabled; struct nt_event completed_event; UCHAR shared; UCHAR req_isr;};struct ndis_binary_data { USHORT len; void *buf;};enum ndis_parameter_type { NdisParameterInteger, NdisParameterHexInteger, NdisParameterString, NdisParameterMultiString,};typedef struct unicode_string NDIS_STRING;struct ndis_configuration_parameter { enum ndis_parameter_type type; union { ULONG integer; NDIS_STRING string; } data;};struct wrap_ndis_driver { struct miniport_char miniport;};/* IDs used to store extensions in driver_object's custom extension */#define NDIS_DRIVER_CLIENT_ID 10struct ndis_wireless_stats { ULONG 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; LARGE_INTEGER tkip_local_mic_failures; LARGE_INTEGER tkip_icv_errors; LARGE_INTEGER tkip_counter_measures_invoked; LARGE_INTEGER tkip_replays; LARGE_INTEGER ccmp_format_errors; LARGE_INTEGER ccmp_replays; LARGE_INTEGER ccmp_decrypt_errors; LARGE_INTEGER fourway_handshake_failures; LARGE_INTEGER wep_undecryptable_count; LARGE_INTEGER wep_icv_errorcount; LARGE_INTEGER decrypt_success_count; LARGE_INTEGER decrypt_failure_count;};enum ndis_status_type { Ndis802_11StatusType_Authentication, Ndis802_11StatusType_PMKID_CandidateList = 2, 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 ndis_media_stream_mode { Ndis802_11MediaStreamOff, Ndis802_11MediaStreamOn};enum wrapper_work { LINK_STATUS_CHANGED, SET_MULTICAST_LIST, COLLECT_STATS, MINIPORT_RESET, /* do not work when this is set */ SHUTDOWN};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_auth_encr_pair { enum authentication_mode auth_mode; enum encryption_status encr_mode;};struct ndis_capability { ULONG length; ULONG version; ULONG num_PMKIDs; ULONG num_auth_encr_pair; struct ndis_auth_encr_pair auth_encr_pair[1];};struct ndis_guid { struct guid guid; union { ndis_oid oid; NDIS_STATUS status; }; ULONG size; ULONG flags;};struct ndis_timer { struct nt_timer nt_timer; struct kdpc kdpc;};struct ndis_miniport_timer { struct nt_timer nt_timer; struct kdpc kdpc; DPC func; void *ctx; void *nmb; struct ndis_miniport_timer *next;};typedef struct cm_partial_resource_list NDIS_RESOURCE_LIST;struct ndis_event { struct nt_event nt_event;};struct ndis_bind_paths { UINT number; struct unicode_string paths[1];};struct ndis_reference { NT_SPIN_LOCK lock; USHORT ref_count; BOOLEAN closing;};struct ndis_miniport_block;struct ndis_miniport_interrupt { void *object; NT_SPIN_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 nt_event dpcs_completed_event; BOOLEAN shared_interrupt; BOOLEAN isr_requested;};struct ndis_filterdbs { union { void *eth_db; void *null_db; }; void *tr_db; void *fddi_db; void *arc_db;};enum ndis_interface_type { NdisInterfaceInternal, NdisInterfaceIsa, NdisInterfaceEisa, NdisInterfaceMca, NdisInterfaceTurboChannel, NdisInterfacePci, NdisInterfacePcMcia,};struct auth_encr_capa { unsigned long auth; unsigned long encr;};enum driver_type { DRIVER_WIRELESS = 1, DRIVER_ETHERNET, };enum hw_status { HW_INITIALIZED = 1, HW_SUSPENDED, HW_HALTED,};/* * This struct contains function pointers that the drivers references * directly via macros, so it's important that they are at the correct * position. */struct ndis_miniport_block { void *signature; struct ndis_miniport_block *next; struct driver_object *drv_obj; 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; NT_SPIN_LOCK lock; enum ndis_request_type *mediarequest; struct ndis_miniport_interrupt *interrupt; ULONG flags; ULONG pnp_flags; struct nt_list packet_list; struct ndis_packet *first_pending_tx_packet; struct ndis_packet *return_packet_queue; ULONG request_buffer; void *set_mcast_buffer; struct ndis_miniport_block *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 *fdo; struct device_object *pdo; struct device_object *next_device; 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 *tr_rx_indicate; void *fddi_rx_indicate; void *eth_rx_complete; void *tr_rx_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; /* ndiswrapper specific */ struct wrap_ndis_device *wnd;};struct wrap_ndis_device { struct ndis_miniport_block *nmb; struct wrap_device *wd; struct net_device *net_dev; unsigned long hw_status; void *shutdown_ctx; struct tasklet_struct irq_tasklet; struct ndis_irq *ndis_irq; unsigned long mem_start; unsigned long mem_end; struct net_device_stats stats; struct iw_statistics wireless_stats; BOOLEAN stats_enabled; struct ndis_wireless_stats ndis_stats; struct work_struct tx_work; struct ndis_packet *tx_ring[TX_RING_SIZE]; u8 tx_ring_start; u8 tx_ring_end; u8 is_tx_ring_full; struct semaphore tx_ring_mutex; unsigned int max_tx_packets; u8 tx_ok; struct semaphore ndis_comm_mutex; wait_queue_head_t ndis_comm_wq; s8 ndis_comm_done; NDIS_STATUS ndis_comm_status; ULONG packet_filter; BOOLEAN use_sg_dma; u8 tx_dma_count; dma_addr_t *tx_dma_addr; int hangcheck_interval; struct timer_list hangcheck_timer; int stats_interval; struct timer_list stats_timer; unsigned long scan_timestamp; struct encr_info encr_info; char nick[IW_ESSID_MAX_SIZE+1]; struct ndis_essid essid; struct auth_encr_capa capa; enum authentication_mode auth_mode; enum encryption_status encr_mode; enum network_infrastructure infrastructure_mode; int num_pmkids; mac_address mac; struct proc_dir_entry *procfs_iface; struct work_struct wrap_ndis_work; unsigned long wrap_ndis_pending_work; UINT attributes; int iw_auth_set; int iw_auth_wpa_version; int iw_auth_cipher_pairwise;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -