📄 ndis.h
字号:
work_struct_t 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; int iw_auth_cipher_group; int iw_auth_key_mgmt; int iw_auth_80211_auth_alg; struct ndis_packet_pool *tx_packet_pool; struct ndis_buffer_pool *tx_buffer_pool; int multicast_size; struct v4_checksum rx_csum; struct v4_checksum tx_csum; enum ndis_physical_medium physical_medium; u32 ndis_wolopts; struct nt_list wrap_timer_list; char netdev_name[IFNAMSIZ]; int drv_ndis_version;};struct ndis_pmkid_candidate { mac_address bssid; unsigned long flags;};struct ndis_pmkid_candidate_list { unsigned long version; unsigned long num_candidates; struct ndis_pmkid_candidate candidates[1];};irqreturn_t ndis_isr(int irq, void *data ISR_PT_REGS_PARAM_DECL);int ndis_init(void);void ndis_exit(void);int ndis_init_device(struct wrap_ndis_device *wnd);void ndis_exit_device(struct wrap_ndis_device *wnd);int wrap_procfs_add_ndis_device(struct wrap_ndis_device *wnd);void wrap_procfs_remove_ndis_device(struct wrap_ndis_device *wnd);void NdisAllocatePacketPoolEx(NDIS_STATUS *status, struct ndis_packet_pool **pool_handle, UINT num_descr, UINT overflowsize, UINT proto_rsvd_length) wstdcall;void NdisFreePacketPool(struct ndis_packet_pool *pool) wstdcall;void NdisAllocatePacket(NDIS_STATUS *status, struct ndis_packet **packet, struct ndis_packet_pool *pool) wstdcall;void NdisFreePacket(struct ndis_packet *descr) wstdcall;void NdisAllocateBufferPool(NDIS_STATUS *status, struct ndis_buffer_pool **pool_handle, UINT num_descr) wstdcall;void NdisFreeBufferPool(struct ndis_buffer_pool *pool) wstdcall;void NdisAllocateBuffer(NDIS_STATUS *status, ndis_buffer **buffer, struct ndis_buffer_pool *pool, void *virt, UINT length) wstdcall;void NdisFreeBuffer(ndis_buffer *descr) wstdcall;void NdisMIndicateReceivePacket(struct ndis_miniport_block *nmb, struct ndis_packet **packets, UINT nr_packets) wstdcall;void NdisMSendComplete(struct ndis_miniport_block *nmb, struct ndis_packet *packet, NDIS_STATUS status) wstdcall;void NdisMSendResourcesAvailable(struct ndis_miniport_block *nmb) wstdcall;void NdisMIndicateStatus(struct ndis_miniport_block *nmb, NDIS_STATUS status, void *buf, UINT len) wstdcall;void NdisMIndicateStatusComplete(struct ndis_miniport_block *nmb) wstdcall;void NdisMQueryInformationComplete(struct ndis_miniport_block *nmb, NDIS_STATUS status) wstdcall;void NdisMSetInformationComplete(struct ndis_miniport_block *nmb, NDIS_STATUS status) wstdcall;void NdisMResetComplete(struct ndis_miniport_block *nmb, NDIS_STATUS status, BOOLEAN address_reset) wstdcall;ULONG NDIS_BUFFER_TO_SPAN_PAGES(ndis_buffer *buffer) wstdcall;BOOLEAN NdisWaitEvent(struct ndis_event *event, UINT timeout) wstdcall;void NdisSetEvent(struct ndis_event *event) wstdcall;void NdisMDeregisterInterrupt(struct ndis_mp_interrupt *mp_interrupt) wstdcall;void EthRxIndicateHandler(struct ndis_miniport_block *nmb, void *rx_ctx, char *header1, char *header, UINT header_size, void *look_ahead, UINT look_ahead_size, UINT packet_size) wstdcall;void EthRxComplete(struct ndis_miniport_block *nmb) wstdcall;void NdisMTransferDataComplete(struct ndis_miniport_block *nmb, struct ndis_packet *packet, NDIS_STATUS status, UINT bytes_txed) wstdcall;void NdisWriteConfiguration(NDIS_STATUS *status, struct ndis_miniport_block *nmb, struct unicode_string *key, struct ndis_configuration_parameter *param) wstdcall;void NdisReadConfiguration(NDIS_STATUS *status, struct ndis_configuration_parameter **param, struct ndis_miniport_block *nmb, struct unicode_string *key, enum ndis_parameter_type type) wstdcall;/* 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_MEDIA_STREAM_MODE 0x0D010121#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#define OID_TCP_TASK_OFFLOAD 0xFC010201#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040#define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080#define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100#define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200#define NDIS_MAC_OPTION_RESERVED 0x80000000#define deserialized_driver(wnd) (wnd->attributes & NDIS_ATTRIBUTE_DESERIALIZE)static inline void serialize_lock(struct wrap_ndis_device *wnd){ nt_spin_lock(&wnd->nmb->lock);}static inline void serialize_unlock(struct wrap_ndis_device *wnd){ nt_spin_unlock(&wnd->nmb->lock);}static inline KIRQL serialize_lock_irql(struct wrap_ndis_device *wnd){ if (deserialized_driver(wnd)) return raise_irql(DISPATCH_LEVEL); else return nt_spin_lock_irql(&wnd->nmb->lock, DISPATCH_LEVEL);}static inline void serialize_unlock_irql(struct wrap_ndis_device *wnd, KIRQL irql){ if (deserialized_driver(wnd)) lower_irql(irql); else nt_spin_unlock_irql(&wnd->nmb->lock, irql);}static inline void if_serialize_lock(struct wrap_ndis_device *wnd){ if (!deserialized_driver(wnd)) nt_spin_lock(&wnd->nmb->lock);}static inline void if_serialize_unlock(struct wrap_ndis_device *wnd){ if (!deserialized_driver(wnd)) nt_spin_unlock(&wnd->nmb->lock);}#endif /* NDIS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -