11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(一)虚拟网卡驱动程序
本节是网卡驱动的入门基础部分,移植移植DM9000C网卡驱动程序
请看下节:移植DM9000C网卡驱动程序http://blog.csdn.net/fengyuwuzu0519/article/details/72821567
一、嵌入式linux驱动主要分为三部分:
- 字符设备驱动
- 块设备驱动
- 网络设备驱动
字符设备驱动:
APP:open、read、write。。。
驱动:drv_open、drv_read、drv_write。。。
框架:
(1)主设备号
(2)file_operation结构体
(3)regist_chrdev(主设备号,name,file_operation)
(4)入口函数
(5)出口函数
二、网卡设备驱动
1、框架分析
网络协议分可为七层等等。我们 只关心硬件部分。就是底层的网卡部分的内容。应用通过socket就可以传输数据。
下面,我们说一下实际的网络包究竟经过怎样一个流程从用户空间发送到驱动,再到实际的硬件设备的,或者怎样由实际的设备接收之后,经由设备驱动层传递到用户空间的。上图:
- 接收过程,如上如,网络上的数据包到达网卡后,网卡产生中断,然后设备驱动层收到中断后,开始进行网络包的接收,接收完之后调用一个netif_rx函数交给网络协议层(层次结构上图一),然后就是一层一层的网上传到用户空间了
- 发送过程,从用户空间过来的数据包,经过层层穿越之后,到达网络协议层,然后调用一个dev_queue_xmit()函数之后就不管了,剩下的交给驱动层经过处理后,使用函数hard_start_xmit()函数发送,然后硬件上网卡开始发送数据包了
1)、网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。这一层的存在使得上层协议独立于具体的设备。
2)、网络设备接口层向协议接口层提供统一的用于描述具体网络设备属性和操作的结构体net_device,该结构体是设备驱动功能层中各函数的容器。实际上,网络设备接口层从宏观上规划了具体操作硬件的设备驱动功能层的结构。
3)、设备驱动功能层各函数是网络设备接口层net_device数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序,他通过hard_start_xmit()函数启动发送操作,并通过网络设备上的中断触发接受操作。
4)、网络设备与媒介层是完成数据包发送和接受的物理实体,包括网络适配器和具体的传输媒介,网络适配器被驱动功能层中的函数物理上驱动。对于Linux系统而言,网络设备和媒介都可以是虚拟的。
5)、网络协议接口层:主要进行数据包的收发。
2、分析内核中的驱动代码
(1)参考:Cs89x0.c (drivers\net)
(2)入口函数init_module
int __init init_module(void)
{
struct net_device*dev =alloc_etherdev(sizeof(struct net_local));
/* 设置默认MAC地址,
* MAC地址可以由CS8900A外接的EEPROM设定(有些单板没接EEPROM),
* 或者启动系统后使用ifconfig修改
*/
dev->dev_addr[0] = 0x08;
dev->dev_addr[1] = 0x89;
dev->dev_addr[2] = 0x89;
dev->dev_addr[3] = 0x89;
dev->dev_addr[4] = 0x89;
dev->dev_addr[5] = 0x89;
ret = cs89x0_probe1(dev, io, 1);
}
(3)cs89x0_probe1中
cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
{
dev->open
= net_open;
dev->stop
= net_close;
dev->tx_timeout= net_timeout;
dev->watchdog_timeo= HZ;
dev->hard_start_xmit= net_send_packet;
dev->get_stats= net_get_stats;
dev->set_multicast_list = set_multicast_list;
dev->set_mac_address
= set_mac_address;
retval = register_netdev(dev);
}
static int net_send_packet(struct sk_buff *skb, struct net_device *dev)
(4)看一看中断函数net_interrupt
static irqreturn_t net_interrupt(int irq, void *dev_id)
{
net_rx(dev);
}
net_rx(struct net_device *dev)
{
struct
sk_buff *skb;
skb = dev_alloc_skb(length + 2);
netif_rx(skb);
}
(5)总结
我们可以看出协议与硬件之间就是通过这两个函数来通讯的。收发的内容是一个sk_buff结构体来描述的。
几个结构体:
sk_buff结构体:
struct sk_buff {/* These two members must be first. */struct sk_buff *next;struct sk_buff *prev;struct sock *sk;ktime_t tstamp;struct net_device *dev;int iif;/* 4 byte hole on 64 bit*/struct dst_entry *dst;struct sec_path *sp;/** This is the control buffer. It is free to use for every* layer. Please put your private variables there. If you* want to keep them across layers you have to do a skb_clone()* first. This is owned by whoever has the skb queued ATM.*/char cb[48];unsigned int len,data_len,mac_len;union {__wsum csum;struct {__u16 csum_start;__u16 csum_offset;};};__u32 priority;__u8 local_df:1,cloned:1,ip_summed:2,nohdr:1,nfctinfo:3;__u8 pkt_type:3,fclone:2,ipvs_property:1;__be16 protocol;void (*destructor)(struct sk_buff *skb);
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)struct nf_conntrack *nfct;struct sk_buff *nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTERstruct nf_bridge_info *nf_bridge;
#endif
#ifdef CONFIG_NET_SCHED__u16 tc_index; /* traffic control index */
#ifdef CONFIG_NET_CLS_ACT__u16 tc_verd; /* traffic control verdict */
#endif
#endif
#ifdef CONFIG_NET_DMAdma_cookie_t dma_cookie;
#endif
#ifdef CONFIG_NETWORK_SECMARK__u32 secmark;
#endif__u32 mark;sk_buff_data_t transport_header;sk_buff_data_t network_header;sk_buff_data_t mac_header;/* These elements must be at the end, see alloc_skb() for details. */sk_buff_data_t tail;sk_buff_data_t end;unsigned char *head,*data;unsigned int truesize;atomic_t users;
};
net_device结构体
struct net_device
{/** This is the first field of the "visible" part of this structure* (i.e. as seen by users in the "Space.c" file). It is the name* the interface.*/char name[IFNAMSIZ];/* device name hash chain */struct hlist_node name_hlist;/** I/O specific fields* FIXME: Merge these and struct ifmap into one*/unsigned long mem_end; /* shared mem end */unsigned long mem_start; /* shared mem start */unsigned long base_addr; /* device I/O address */unsigned int irq; /* device IRQ number *//** Some hardware also needs these fields, but they are not* part of the usual set specified in Space.c.*/unsigned char if_port; /* Selectable AUI, TP,..*/unsigned char dma; /* DMA channel */unsigned long state;struct list_head dev_list;/* The device initialization function. Called only once. */int (*init)(struct net_device *dev);/* ------- Fields preinitialized in Space.c finish here ------- *//* Net device features */unsigned long features;
#define NETIF_F_SG 1 /* Scatter/gather IO. */
#define NETIF_F_IP_CSUM 2 /* Can checksum only TCP/UDP over IPv4. */
#define NETIF_F_NO_CSUM 4 /* Does not require checksum. F.e. loopack. */
#define NETIF_F_HW_CSUM 8 /* Can checksum all the packets. */
#define NETIF_F_HIGHDMA 32 /* Can DMA to high memory. */
#define NETIF_F_FRAGLIST 64 /* Scatter/gather IO. */
#define NETIF_F_HW_VLAN_TX 128 /* Transmit VLAN hw acceleration */
#define NETIF_F_HW_VLAN_RX 256 /* Receive VLAN hw acceleration */
#define NETIF_F_HW_VLAN_FILTER 512 /* Receive filtering on VLAN */
#define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */
#define NETIF_F_GSO 2048 /* Enable software GSO. */
#define NETIF_F_LLTX 4096 /* LockLess TX *//* Segmentation offload features */
#define NETIF_F_GSO_SHIFT 16
#define NETIF_F_GSO_MASK 0xffff0000
#define NETIF_F_TSO (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT)
#define NETIF_F_UFO (SKB_GSO_UDP << NETIF_F_GSO_SHIFT)
#define NETIF_F_GSO_ROBUST (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT)
#define NETIF_F_TSO_ECN (SKB_GSO_TCP_ECN << NETIF_F_GSO_SHIFT)
#define NETIF_F_TSO6 (SKB_GSO_TCPV6 << NETIF_F_GSO_SHIFT)/* List of features with software fallbacks. */
#define NETIF_F_GSO_SOFTWARE (NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6)#define NETIF_F_GEN_CSUM (NETIF_F_NO_CSUM | NETIF_F_HW_CSUM)
#define NETIF_F_ALL_CSUM (NETIF_F_IP_CSUM | NETIF_F_GEN_CSUM)struct net_device *next_sched;/* Interface index. Unique device identifier */int ifindex;int iflink;struct net_device_stats* (*get_stats)(struct net_device *dev);struct net_device_stats stats;#ifdef CONFIG_WIRELESS_EXT/* List of functions to handle Wireless Extensions (instead of ioctl).* See <net/iw_handler.h> for details. Jean II */const struct iw_handler_def * wireless_handlers;/* Instance data managed by the core of Wireless Extensions. */struct iw_public_data * wireless_data;
#endifconst struct ethtool_ops *ethtool_ops;/** This marks the end of the "visible" part of the structure. All* fields hereafter are internal to the system, and may change at* will (read: may be cleaned up at will).*/unsigned int flags; /* interface flags (a la BSD) */unsigned short gflags;unsigned short priv_flags; /* Like 'flags' but invisible to userspace. */unsigned short padded; /* How much padding added by alloc_netdev() */unsigned char operstate; /* RFC2863 operstate */unsigned char link_mode; /* mapping policy to operstate */unsigned mtu; /* interface MTU value */unsigned short type; /* interface hardware type */unsigned short hard_header_len; /* hardware hdr length */struct net_device *master; /* Pointer to master device of a group,* which this device is member of.*//* Interface address info. */unsigned char perm_addr[MAX_ADDR_LEN]; /* permanent hw address */unsigned char addr_len; /* hardware address length */unsigned short dev_id; /* for shared network cards */struct dev_mc_list *mc_list; /* Multicast mac addresses */int mc_count; /* Number of installed mcasts */int promiscuity;int allmulti;/* Protocol specific pointers */void *atalk_ptr; /* AppleTalk link */void *ip_ptr; /* IPv4 specific data */ void *dn_ptr; /* DECnet specific data */void *ip6_ptr; /* IPv6 specific data */void *ec_ptr; /* Econet specific data */void *ax25_ptr; /* AX.25 specific data */struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data,assign before registering *//** Cache line mostly used on receive path (including eth_type_trans())*/struct list_head poll_list ____cacheline_aligned_in_smp;/* Link to poll list */int (*poll) (struct net_device *dev, int *quota);int quota;int weight;unsigned long last_rx; /* Time of last Rx *//* Interface address info used in eth_type_trans() */unsigned char dev_addr[MAX_ADDR_LEN]; /* hw address, (before bcast because most packets are unicast) */unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add *//** Cache line mostly used on queue transmit path (qdisc)*//* device queue lock */spinlock_t queue_lock ____cacheline_aligned_in_smp;struct Qdisc *qdisc;struct Qdisc *qdisc_sleeping;struct list_head qdisc_list;unsigned long tx_queue_len; /* Max frames per queue allowed *//* Partially transmitted GSO packet. */struct sk_buff *gso_skb;/* ingress path synchronizer */spinlock_t ingress_lock;struct Qdisc *qdisc_ingress;/** One part is mostly used on xmit path (device)*//* hard_start_xmit synchronizer */spinlock_t _xmit_lock ____cacheline_aligned_in_smp;/* cpu id of processor entered to hard_start_xmit or -1,if nobody entered there.*/int xmit_lock_owner;void *priv; /* pointer to private data */int (*hard_start_xmit) (struct sk_buff *skb,struct net_device *dev);/* These may be needed for future network-power-down code. */unsigned long trans_start; /* Time (in jiffies) of last Tx */int watchdog_timeo; /* used by dev_watchdog() */struct timer_list watchdog_timer;/** refcnt is a very hot point, so align it on SMP*//* Number of references to this device */atomic_t refcnt ____cacheline_aligned_in_smp;/* delayed register/unregister */struct list_head todo_list;/* device index hash chain */struct hlist_node index_hlist;struct net_device *link_watch_next;/* register/unregister state machine */enum { NETREG_UNINITIALIZED=0,NETREG_REGISTERED, /* completed register_netdevice */NETREG_UNREGISTERING, /* called unregister_netdevice */NETREG_UNREGISTERED, /* completed unregister todo */NETREG_RELEASED, /* called free_netdev */} reg_state;/* Called after device is detached from network. */void (*uninit)(struct net_device *dev);/* Called after last user reference disappears. */void (*destructor)(struct net_device *dev);/* Pointers to interface service routines. */int (*open)(struct net_device *dev);int (*stop)(struct net_device *dev);
#define HAVE_NETDEV_POLLint (*hard_header) (struct sk_buff *skb,struct net_device *dev,unsigned short type,void *daddr,void *saddr,unsigned len);int (*rebuild_header)(struct sk_buff *skb);
#define HAVE_MULTICAST void (*set_multicast_list)(struct net_device *dev);
#define HAVE_SET_MAC_ADDR int (*set_mac_address)(struct net_device *dev,void *addr);
#define HAVE_PRIVATE_IOCTLint (*do_ioctl)(struct net_device *dev,struct ifreq *ifr, int cmd);
#define HAVE_SET_CONFIGint (*set_config)(struct net_device *dev,struct ifmap *map);
#define HAVE_HEADER_CACHEint (*hard_header_cache)(struct neighbour *neigh,struct hh_cache *hh);void (*header_cache_update)(struct hh_cache *hh,struct net_device *dev,unsigned char * haddr);
#define HAVE_CHANGE_MTUint (*change_mtu)(struct net_device *dev, int new_mtu);#define HAVE_TX_TIMEOUTvoid (*tx_timeout) (struct net_device *dev);void (*vlan_rx_register)(struct net_device *dev,struct vlan_group *grp);void (*vlan_rx_add_vid)(struct net_device *dev,unsigned short vid);void (*vlan_rx_kill_vid)(struct net_device *dev,unsigned short vid);int (*hard_header_parse)(struct sk_buff *skb,unsigned char *haddr);int (*neigh_setup)(struct net_device *dev, struct neigh_parms *);
#ifdef CONFIG_NETPOLLstruct netpoll_info *npinfo;
#endif
#ifdef CONFIG_NET_POLL_CONTROLLERvoid (*poll_controller)(struct net_device *dev);
#endif/* bridge stuff */struct net_bridge_port *br_port;/* class/net/name entry */struct device dev;/* space for optional statistics and wireless sysfs groups */struct attribute_group *sysfs_groups[3];
};
三、虚拟网卡设备驱动编写
(1)步骤,怎么写网卡驱动程序?
1. 分配一个net_device结构体
2. 设置:
2.1 发包函数: hard_start_xmit
2.2 收到数据时(在中断处理函数里)用netif_rx上报数据
2.3 其他设置
3. 注册: register_netdevice
(2)代码:参考Cs89x0.c (drivers\net)拷贝其头文件等,做出框架
现在最简单的网卡驱动程序就写好了,我们可以做实验测试一下。
(3)驱动代码
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/in.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/bitops.h>
#include <linux/delay.h>#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>static struct net_device *vnet_dev;static int virt_net_init(void)
{/* 1. 分配一个net_device结构体 */vnet_dev = alloc_netdev(0, "vnet%d", ether_setup);; /* alloc_etherdev *//* 2. 设置 *//* 3. 注册 *///register_netdevice(vnet_dev);register_netdev(vnet_dev);return 0;
}static void virt_net_exit(void)
{unregister_netdev(vnet_dev);free_netdev(vnet_dev);
}module_init(virt_net_init);
module_exit(virt_net_exit);MODULE_AUTHOR("xxx");
MODULE_LICENSE("GPL");
(4)makefile
KERN_DIR = /work/system/linux-2.6.22.6all:make -C $(KERN_DIR) M=`pwd` modules clean:make -C $(KERN_DIR) M=`pwd` modules cleanrm -rf modules.orderobj-m += virt_net.o
(5)实验结果
测试1th/2th:
1. insmod virt_net.ko
2. ifconfig vnet0 3.3.3.3
ifconfig // 查看
3. ping 3.3.3.3 // 成功
ping 3.3.3.4 // 死机
(6)死机是因为没有hard_start_xmit,加入后 可以ping通ping 3.3.3.4
static struct net_device *vnet_dev;static int virt_net_send_packet(struct sk_buff *skb, struct net_device *dev)
{static int cnt = 0;printk("virt_net_send_packet cnt = %d\n", ++cnt);return 0;
}static int virt_net_init(void)
{/* 1. 分配一个net_device结构体 */vnet_dev = alloc_netdev(0, "vnet%d", ether_setup);; /* alloc_etherdev *//* 2. 设置 */vnet_dev->hard_start_xmit = virt_net_send_packet;/* 3. 注册 *///register_netdevice(vnet_dev);register_netdev(vnet_dev);return 0;
}
(7)加入统计信息,设置mac地址
(8)不死机了,但是ping不同设备,因为不存3.3.3.4,没有回复,现在做一个假的回复。
/** 参考 drivers\net\cs89x0.c*/#include <linux/module.h>
#include <linux/errno.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/in.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/ip.h>#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>static struct net_device *vnet_dev;static void emulator_rx_packet(struct sk_buff *skb, struct net_device *dev)
{/* 参考LDD3 */unsigned char *type;struct iphdr *ih;__be32 *saddr, *daddr, tmp;unsigned char tmp_dev_addr[ETH_ALEN];struct ethhdr *ethhdr;struct sk_buff *rx_skb;// 从硬件读出/保存数据/* 对调"源/目的"的mac地址 */ethhdr = (struct ethhdr *)skb->data;memcpy(tmp_dev_addr, ethhdr->h_dest, ETH_ALEN);memcpy(ethhdr->h_dest, ethhdr->h_source, ETH_ALEN);memcpy(ethhdr->h_source, tmp_dev_addr, ETH_ALEN);/* 对调"源/目的"的ip地址 */ ih = (struct iphdr *)(skb->data + sizeof(struct ethhdr));saddr = &ih->saddr;daddr = &ih->daddr;tmp = *saddr;*saddr = *daddr;*daddr = tmp;//((u8 *)saddr)[2] ^= 1; /* change the third octet (class C) *///((u8 *)daddr)[2] ^= 1;type = skb->data + sizeof(struct ethhdr) + sizeof(struct iphdr);//printk("tx package type = %02x\n", *type);// 修改类型, 原来0x8表示ping*type = 0; /* 0表示reply */ih->check = 0; /* and rebuild the checksum (ip needs it) */ih->check = ip_fast_csum((unsigned char *)ih,ih->ihl);// 构造一个sk_buffrx_skb = dev_alloc_skb(skb->len + 2);skb_reserve(rx_skb, 2); /* align IP on 16B boundary */ memcpy(skb_put(rx_skb, skb->len), skb->data, skb->len);/* Write metadata, and then pass to the receive level */rx_skb->dev = dev;rx_skb->protocol = eth_type_trans(rx_skb, dev);rx_skb->ip_summed = CHECKSUM_UNNECESSARY; /* don't check it */dev->stats.rx_packets++;dev->stats.rx_bytes += skb->len;// 提交sk_buffnetif_rx(rx_skb);
}static int virt_net_send_packet(struct sk_buff *skb, struct net_device *dev)
{static int cnt = 0;printk("virt_net_send_packet cnt = %d\n", ++cnt);/* 对于真实的网卡, 把skb里的数据通过网卡发送出去 */netif_stop_queue(dev); /* 停止该网卡的队列 *//* ...... */ /* 把skb的数据写入网卡 *//* 构造一个假的sk_buff,上报 */emulator_rx_packet(skb, dev);dev_kfree_skb (skb); /* 释放skb */netif_wake_queue(dev); /* 数据全部发送出去后,唤醒网卡的队列 *//* 更新统计信息 */dev->stats.tx_packets++;dev->stats.tx_bytes += skb->len;return 0;
}static int virt_net_init(void)
{/* 1. 分配一个net_device结构体 */vnet_dev = alloc_netdev(0, "vnet%d", ether_setup);; /* alloc_etherdev *//* 2. 设置 */vnet_dev->hard_start_xmit = virt_net_send_packet;/* 设置MAC地址 */vnet_dev->dev_addr[0] = 0x08;vnet_dev->dev_addr[1] = 0x89;vnet_dev->dev_addr[2] = 0x89;vnet_dev->dev_addr[3] = 0x89;vnet_dev->dev_addr[4] = 0x89;vnet_dev->dev_addr[5] = 0x11;/* 设置下面两项才能ping通 */vnet_dev->flags |= IFF_NOARP;vnet_dev->features |= NETIF_F_NO_CSUM; /* 3. 注册 *///register_netdevice(vnet_dev);register_netdev(vnet_dev);return 0;
}static void virt_net_exit(void)
{unregister_netdev(vnet_dev);free_netdev(vnet_dev);
}module_init(virt_net_init);
module_exit(virt_net_exit);MODULE_AUTHOR("thisway.diy@163.com,17653039@qq.com");
MODULE_LICENSE("GPL");
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 用js(javascript)实现下拉菜单的显示与隐藏
用js(javascript)实现下拉菜单的显示与隐藏<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang=&qu…...
2024/4/12 10:53:04 - 学生成绩管理系统-C语言(附源码)
scoreManagement.c成绩管理系统C源码,其中没有使用指针链表的知识,主要使用了结构体、文件IO流的读取等基础知识完成的。结构鲜明,清晰易懂。附有注解,适合初学C语言的同学学习。立即下载这是我初学C时的期末作业,贴出来。 #include <stdio.h> #include <string.…...
2024/4/17 23:55:22 - SQL语句-查询命令
以下如果是数字类型的键值,就不应该加单引号。 【=】等于 SELECT * FROM Persons WHERE City=Beijing SELECT * FROM 要查询的表名 WHERE 键名=键值【<>】不等于 SELECT * FROM Persons WHERE City<>Beijing SELECT * FROM 要查询的表名 WHERE 键名<>键值【…...
2024/4/12 22:20:04 - C语言数据结构课程设计-校园导游系统
倾心原创,转载请备注原文地址,谢谢。主要内容:用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。基本要求:1) 设计学校的校…...
2024/4/12 10:53:04 - 在win7中 sniffer找不到适配器问题
在win7中 sniffer找不到适配器问题 2011-12-31 13:51:50| 分类: Sniffer | 标签: |字号大中小 订阅 1.安装sniffer后,运行时,找不到网卡,(sniffer在win 7下找不到网卡) 解决方法:点击开始---找到sniffer的快捷方式---右键属性---把兼容模式改为“windows xp sp3”--…...
2024/4/20 17:12:52 - js 实现 图片刷新 验证码 看不清 换一张
【需求】 html+js实现html中一个图片刷新但是整个页面不刷新,或者是验证码刷新。 不使用jsp,不使用ajax,不使用js框架。 【原理】 当一个<img>的src改变时,页面会自动刷新这个<img> 【实现代码】<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit…...
2024/4/12 13:32:11 - C语言实现—学生成绩管理系统
开发环境:Linux(ps:已新增Windows版)开发语言:C相关文件下载:码云:传送门 GitHub:传送门程序主界面:登录“管理员子系统” 登录“教师子系统”登录“学生子系统”相关功能:参考码云中的文档/*********************************************************************…...
2024/4/9 17:55:35 - C语言数据结构二叉树的层序遍历(非递归实现)
//二叉树的层序遍历 void leveloredertravers(TreeNode*tp)//层序遍历 { /**利用队列的先进先出原则*层序遍历*创建队列 元素为节点结构体指针数组*从上往下进行遍历*利用队列的特点进行层层输出*/TreeNode*s[MAXNODE];//循环队列int front=0;int rear=0;TreeNode*p;p=tp;s[rea…...
2024/4/9 17:55:33 - sql分组查询语句
select type,sum(stat_count) as stat_count from t_stat_day_type where stat_time>=$start and stat_time<$end $where1 and type in ($search) GROUP BY type...
2024/4/12 10:53:58 - CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?
一、为什么要这么做? 最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insight”。 二、安装环境 本机系统:Windows 7 旗舰版 VMware:VMware Workstation 9.0 CentOS:CentOS 6.4 网络适配器设置为:NAT 转换 三、查看是否已经安装“samba” 命令:rpm -…...
2024/4/18 3:41:14 - Vue在线客服系统【开源项目】
1. 项目介绍一个基于Vue2.0的在线客服系统。技术栈包含:Vue、VueX、Vue Router、Element UI。 2. 功能介绍项目包含了2个模块:客服端和访客端。2.1 客服端功能1)文本和表情混合内容的接收和发送。2)图片、文件的接收和发送。运行图 2.2 访客端功能1)文本和表情混合内容的接收…...
2024/4/17 11:30:31 - SQL多条件查询Sql语句
DECLARE @startIndex INT, --用来判断的变量 @ordertype NVARCHAR(500), --条件语句 @SqlBase NVARCHAR(500) --最终的sql语句 SELECT @startIndex=3 SELECT @ordertype=CASE --根据条件组合sql语句WHEN @startIndex=1 THEN ORDER BY CM.GeneralID DESC WHEN @startIn…...
2024/4/12 10:54:04 - win7系统网卡驱动正常,网线连接设备正常,但电脑右下角网络图片显示一直在转圈或者显示一个黄色感叹号的解决办法...
今天遇到一个问题是电脑的win7系统一直都可以连接有线,但今天突然连接不了。在我的电脑右键-->管理--->设备管理器-->网络适配器,里面查看了网络适配器安装正常。但是电脑右下角的网络图标一直显示黄色的感叹号。甚至自己设置了ip,子网掩码,网关,仍然连接不上网络…...
2024/4/19 12:35:26 - C语言学生成绩管理系统(简易版)
1 #include<stdio.h>2 #include<stdlib.h>3 #include<string.h>4 5 int readstudents(struct students stu[]); //读取学生信息6 int readsexcode(struct sexcode sex[]); //读取性别代码7 int readcollegecode(struct collegecode colle[])…...
2024/4/12 10:53:52 - Node.js 中文乱码解决
Node.js 支持中文不太好(实际上是Javascript支持),见《Node.js开发指南》。 要想Node.js正常显示中文,需要两点: 1、js文件保存为unicode格式。js文件是否为unicode格式,一个简单的方法是使用记事本来判断。使用记事本打开JS文件,点菜单另存为,看编码格式是否为"U…...
2024/4/12 21:13:54 - C语言 数据结构 树和二叉树
树1、树:是n节点的有限集。树是n(n=>0)个节点的有限集。 n=0时成为空树。 在任意一颗非空树中:(1)有且仅有一个称为根的节点;(2)当n>0时,其余节点可分为m(m>0)个互不相交的有限集T1、T2、T3、Tm,其中每个节点又是一棵树,并且称为根的子树。 2 、节点分类:节…...
2024/4/12 10:54:04 - 字符串替换C语言数据结构(长度不定)
我不说这个程序为什么字符串替换还要写这么多代码 总之在输入过程中遇到的 问题我能想到的都解决了 程序的健壮性还是有的 。 我个人觉得gainchar函数是这个小程序健壮性的重要体现 末尾还有个英语单词匹配的代码//查昊昊 # include <stdio.h> # include <stdlib.…...
2024/4/12 10:53:58 - Win10"找不到Wifi网络"解决办法
今天笔记本Win10开机后,右下角网络标识上一直有个小红叉,找不到Wifi网络,折腾了好久,关键点:确定无线网卡设备被Win10识别。打开设备管理器-网络适配器看有没有名称带wireless的适配器。 确定无限网卡驱动安装了正确的版本。一般从网卡官网上下载对应型号网卡的驱动进行安…...
2024/4/12 10:54:16 - python连接SQLServer数据库,执行给定的查询SQL语句,并返回查询结果数据
今天在使用SQL语句做查询任务的时候发现,在数据库中可以直接执行的语句,放在程序中结果却是None,于是乎,就实践了一下,下面是具体的实践。#!usr/bin/env python # encoding:utf-8 __Author__:沂水寒城 功能:执行给定的查询SQL语句,并返回查询结果数据 import sys import…...
2024/4/12 10:54:16 - javascript的三种引入方式
javascript有三种引入方式:1、行内引入:<开始标签 on+事件类型=“js代码”></结束标签>行内引入方式必须结合事件来使用,但是内部js和外部js可以不结合事件<body> <input type="button" οnclick="alert(行内引入)" value="bu…...
2024/4/30 12:58:36
最新文章
- vue3与js的router基本使用方式
title: vue3与js的router基本使用方式 tags: vue3js abbrlink: ‘57270957’ date: 2024-04-17 18:54:47 第一步快捷引入的别名 使用路由需要大量在src文件中引用所需要的地址,并且组件中也需要很多的包的引用,将快速跳转到src这一文件的步骤进行简化操…...
2024/5/2 13:01:54 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - C语言学习笔记day18
1. 指针基本概念 1.地址:用来区分内存中不同字节的编号 2.指针:地址就是指针,指针就是地址 3.指针变量:存储指针的变量,有时去掉变量,称为指针 2. 指针运算符 1.&: 1.获得一个变量在内存空间中的首地址 2.让表达式类型升级 2.*: 1.取…...
2024/5/1 19:47:48 - ArcGIS10.8保姆式安装教程
ArcGIS 10.8是一款非常强大的地理信息系统软件,用于创建、管理、分析和可视化地理数据。以下是ArcGIS 10.8的详细安装教程: 确保系统满足安装要求 在开始安装之前,请确保您的计算机满足以下系统要求: 操作系统:Windo…...
2024/4/30 2:50:09 - 文件系统 FTP Ubuntu 安装入门介绍
FTP 环境: Ubuntu 14.04 blog zh_CN ubuntu14.04 Install 全新安装:apt-get install vsftpd 重新安装:apt-get --reinstall install vsftpd 卸载并清除配置文件:apt-get --purge remove vsftpd Start & Restart $ service vsftpd start $ se…...
2024/4/30 19:31:25 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/30 18:14:14 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/2 9:28:15 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/2 9:07:46 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57