什么的风筝| 后背发冷发凉属于什么症状| 家庭主妇是什么意思| 6月23号什么星座| 军士长是什么军衔| 中性是什么意思| 水命和什么命最配| 知天命是什么意思| 平年是什么意思| 什么水果最好吃| 尿带血什么原因| 水浒传为什么叫水浒传| 什么食物养肝护肝最好| 什么时候闰五月| 假菌丝是什么意思| 英国的全称是什么| 中单是什么意思| 隐性基因是什么意思| 嗓子痛吃什么药好得快| 诛仙讲的是什么故事| 7月2日什么星座| 查激素六项挂什么科| 释放天性是什么意思| 黑色素沉淀是什么原因引起的| 蛛网膜囊肿挂什么科| 狐狸是什么动物| 国际劳动日是什么生肖| 脖子皮肤黑是什么原因| 脾虚吃什么食物补最快| 中性粒细胞百分比偏低是什么意思| 检查阑尾炎挂什么科| 苹果什么时间吃最好| 属猴配什么属相最好| 格列本脲和格列美脲有什么区别| 什么是破窗效应| 手脚肿胀是什么原因| 吃什么对肾好| mar是什么意思| 口香糖是什么材料做的| 什么是前列腺增生| 眼睛的睛可以组什么词| 1月29号什么星座| 氟比洛芬是什么药| 什么其谈| 内眼角越揉越痒用什么眼药水| 门牙旁边的牙齿叫什么| 呼吸快是什么原因| mmp是什么意思| 鸡蛋黄发红是什么原因| nt检查前需要注意什么| 130是什么意思| ptp是什么意思| 为什么大便是绿色的| 一抽一抽的打嗝叫什么| 子宫内膜增厚是什么意思| 为什么喝酒后会头疼| 女性尿检能查出什么病| 空字五行属什么| 什么是思想| 提前吃什么喝酒不醉| 蜜蜂吃什么食物| 手心发热是什么原因| 过敏性鼻炎用什么药效果好| 连号的钱为什么不能花| 吃什么头发长的快| ab和a型血生的孩子是什么血型| mrd是什么| 金牛座和什么座最配| 女性什么时候退休| 蜂蜜喝了有什么好处| 五劳七伤指的是什么| 脚肿什么原因引起的| 意什么风发| 定海神针什么意思| 器质性是什么意思| 喉咙发炎吃什么水果好| 钛对人体有什么好处| 做梦梦见狗咬我什么意思啊| 手的皮肤黄是什么原因| 一般细菌培养及鉴定是检查什么| 人老是放屁是什么原因| 什么河水| 12月1日什么星座| 七活八不活是什么意思| 发烧喝什么水| 牛肉排酸是什么意思| 溶血性黄疸是什么原因引起的| 阴囊潮湿是什么原因造成的| 标准分是什么意思| 调理牛肉是什么意思| 人体最大的器官是什么| 男生手淫有什么危害| 亮晶晶的什么填空| 没什么大不了| 心悸吃什么药好| 11月22是什么星座| 三个土是什么字| 多囊卵巢有什么症状表现| 骨赘形成是什么意思| 结石不能吃什么| 痛风什么原因引起| 糖尿病可以吃什么肉| 右派是什么意思| 胎儿生物物理评分8分什么意思| 今天冲什么生肖| 清心寡欲是什么意思| 脚掌麻木是什么原因| 待寝什么意思| 望尘莫及是什么意思| 做梦和别人吵架意味着什么| 水痘疫苗什么时候打| 口腔溃疡是什么原因引起的| 意难平什么意思| 肚子胀气用什么药| 小孩口臭吃什么药| 马骝是什么意思| 脸肿是什么病| 遗精吃什么药| 治疗褥疮用什么药| 蛛网膜囊肿挂什么科| 晚上喝红酒有什么好处和坏处| 孕妇吃山竹对胎儿有什么好处| 白衣天使是什么意思| 拔牙可以吃什么| 吃什么食物能补钾| 胸疼挂什么科| 全身瘙痒要警惕什么病| 坐飞机需要带什么证件| 胎动突然减少是什么原因| 猪八戒的真名叫什么| 小便无力是什么原因男| 大黄米是什么米| 乙肝属于什么科| 艾滋病早期有什么症状| 姨妈可以吃什么水果| 嗓子有点疼吃什么药| kol是什么意思| 8月23号是什么星座| 什么情况下安装心脏起搏器| 什么是数字货币| 龟皮痒用什么药膏| 脚板疼是什么原因| 麻是什么面料| 无回声结节是什么意思| cartoon什么意思| 疱疹性咽峡炎吃什么食物| 拔牙挂什么科| 信佛有什么好处| 吃蒸苹果有什么好处| 杰瑞是什么品种的老鼠| 中性是什么意思| 87年是什么年| 玄学是什么| 舒张压偏高是什么原因| 肠阻塞有什么症状| 老铁是什么意思| 胎盘1级什么意思| 子宫内膜异位症有什么症状| 梦见烧火做饭是什么意思| 倾慕是什么意思| 国潮是什么| 莞字五行属什么| 缠腰蛇是什么原因引起的| 甲状腺腺体回声欠均匀是什么意思| 滑膜炎吃什么药最好| 膈应什么意思| 石男是什么意思| 孕妇梦到老公出轨什么意思| river是什么意思| 维生素b族为什么不能晚上吃| 垂体瘤挂什么科| 大便出血吃什么药| 人情味是什么意思| 食伤泄秀是什么意思| 为什么印度人叫阿三| 梦见找鞋子是什么意思| 甜菜根是什么菜| 断桥是什么意思| 红曲米是什么| 总是打哈欠是什么原因| 滋润是什么意思| 跑步穿什么衣服| 尿黄什么原因| 阴道有灼热感是什么原因| 今日是什么生肖日| 促甲状腺素高是什么原因| 面试是什么意思| 小腿长痣代表什么意思| 嘌呤是什么东西| 不但而且是什么关系| 一九八六年属什么生肖| 排卵期出血是什么原因引起的| 长期上夜班对身体有什么危害| 加百列是什么天使| 我的手机是什么型号| 梦见捡钱是什么意思| 梦见呕吐是什么意思| 经血发黑是什么原因| 什么名字最霸气| 境遇是什么意思| 不愁吃穿是什么生肖| 肠胃湿热吃什么药好| 狗屎运是什么意思| 梦见袜子破了是什么意思| 张起灵和吴邪什么关系| 水由什么组成| 嗓子突然哑了是什么原因引起的| 喉部有异物感是什么病| 肌红蛋白低说明什么| 喝牛奶拉肚子是什么原因| 外阴裂口什么原因| 口加才是什么字| 狗是什么属性| 斑秃去医院挂什么科| 轻度异常脑电图是什么意思| 真命题是什么意思| 男人是什么| 月忌日是什么意思| 手胶是什么| 用酒擦身体有什么好处| 健康证需要什么材料| 11月12日什么星座| 什么是比| 物竞天择是什么意思| 鱼用什么呼吸| 什么药降肌酐| 黄芪泡水喝有什么作用| 支付宝账户是什么| 11.10是什么星座| 养胃吃什么最好| 婴儿大便隐血阳性是什么意思| gcp是什么意思| 大姨父是什么意思| 不让看朋友圈显示什么| 血糖高的人应该吃什么食物最好| 红薯什么时候种植| 中项是什么意思| 米咖色是什么颜色| 什么是风湿热| 突然头晕想吐是什么原因| 局级是什么级别| 眼睛不能见光是什么病| 遵命是什么意思| 儿童咳嗽吃什么药管用| 切除阑尾对身体有什么影响| esp是什么意思| 大姨妈来了吃什么水果好| 9月3日是什么星座的| 睡觉盗汗是什么原因| 小鸟站在高压线上为什么不会触电| 歧路亡羊告诉我们什么道理| 存是什么生肖| 罗红霉素胶囊治什么病| 甘胆酸偏高是什么原因| 十年什么婚| 鹿查什么部首| 肠粉为什么叫肠粉| 西洋参和人参有什么区别| 女性hpv是什么意思| 肱骨外上髁炎用什么药| 为什么会缺铁| 肿瘤吃什么中药能消除| n是什么牌子| 什么梗| 百度Jump to content

存储芯片被少数国际大厂垄断 中国厂商如何破除困局?

From Wikipedia, the free encyclopedia
(Redirected from Device drivers)
百度 ”他提出,作为窗口单位,公共交通要在坚持社会公益性的基础上,营造良好的环境,通过开展技能竞赛、岗位练兵等提升服务水平。

In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer.[1] A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware.

A driver communicates with the device through the computer bus or communications subsystem to which the hardware connects. When a calling program invokes a routine in the driver, the driver issues commands to the device (drives it). Once the device sends data back to the driver, the driver may invoke routines in the original calling program.

Drivers are hardware dependent and operating-system-specific. They usually provide the interrupt handling required for any necessary asynchronous time-dependent hardware interface.[2]

Purpose

[edit]

The main purpose of device drivers is to provide abstraction by acting as a translator between a hardware device and the applications or operating systems that use it.[1] Programmers can write higher-level application code independently of whatever specific hardware the end-user is using. For example, a high-level application for interacting with a serial port may simply have two functions for "send data" and "receive data". At a lower level, a device driver implementing these functions would communicate to the particular serial port controller installed on a user's computer. The commands needed to control a 16550 UART are much different from the commands needed to control an FTDI serial port converter, but each hardware-specific device driver abstracts these details into the same (or similar) software interface.

Development

[edit]

Writing a device driver requires an in-depth understanding of how the hardware and the software works for a given platform function. Because drivers require low-level access to hardware functions in order to operate, drivers typically operate in a highly privileged environment and can cause system operational issues if something goes wrong. In contrast, most user-level software on modern operating systems can be stopped without greatly affecting the rest of the system. Even drivers executing in user mode can crash a system if the device is erroneously programmed. These factors make it more difficult and dangerous to diagnose problems.[3]

The task of writing drivers thus usually falls to software engineers or computer engineers who work for hardware-development companies. This is because they have better information than most outsiders about the design of their hardware. Moreover, it was traditionally considered in the hardware manufacturer's interest to guarantee that their clients can use their hardware in an optimal way. Typically, the Logical Device Driver (LDD) is written by the operating system vendor, while the Physical Device Driver (PDD) is implemented by the device vendor. However, in recent years, non-vendors have written numerous device drivers for proprietary devices, mainly for use with free and open source operating systems. In such cases, it is important that the hardware manufacturer provide information on how the device communicates. Although this information can instead be learned by reverse engineering, this is much more difficult with hardware than it is with software.

Windows uses a combination of driver and minidriver, where the full class/port driver is provided with the operating system, and miniclass/miniport drivers are developed by vendors and implement hardware- or function-specific subset of the full driver stack.[4] Miniport model is used by NDIS, WDM, WDDM, WaveRT, StorPort, WIA, and HID drivers; each of them uses device-specific APIs and still requires the developer to handle tedious device management tasks.

Microsoft has attempted to reduce system instability due to poorly written device drivers by creating a new framework for driver development, called Windows Driver Frameworks (WDF). This includes User-Mode Driver Framework (UMDF) that encourages development of certain types of drivers—primarily those that implement a message-based protocol for communicating with their devices—as user-mode drivers. If such drivers malfunction, they do not cause system instability. The Kernel-Mode Driver Framework (KMDF) model continues to allow development of kernel-mode device drivers but attempts to provide standard implementations of functions that are known to cause problems, including cancellation of I/O operations, power management, and plug-and-play device support.

Apple has an open-source framework for developing drivers on macOS, called I/O Kit.

In Linux environments, programmers can build device drivers as parts of the kernel, separately as loadable modules, or as user-mode drivers (for certain types of devices where kernel interfaces exist, such as for USB devices). Makedev includes a list of the devices in Linux, including ttyS (terminal), lp (parallel port), hd (disk), loop, and sound (these include mixer, sequencer, dsp, and audio).[5]

Microsoft Windows .sys files and Linux .ko files can contain loadable device drivers. The advantage of loadable device drivers is that they can be loaded only when necessary and then unloaded, thus saving kernel memory.

Privilege levels

[edit]

Depending on the operating system, device drivers may be permitted to run at various different privilege levels. The choice of which level of privilege the drivers are in is largely decided by the type of kernel an operating system uses. An operating system that uses a monolithic kernel, such as the Linux kernel, will typically run device drivers with the same privilege as all other kernel objects. By contrast, a system designed around microkernel, such as Minix, will place drivers as processes independent from the kernel but that use it for essential input-output functionalities and to pass messages between user programs and each other.[6] On Windows NT, a system with a hybrid kernel, it is common for device drivers to run in either kernel-mode or user-mode.[7]

The most common mechanism for segregating memory into various privilege levels is via protection rings. On many systems, such as those with x86 and ARM processors, switching between rings imposes a performance penalty, a factor that operating system developers and embedded software engineers consider when creating drivers for devices which are preferred to be run with low latency, such as network interface cards. The primary benefit of running a driver in user mode is improved stability since a poorly written user-mode device driver cannot crash the system by overwriting kernel memory.[8]

Applications

[edit]

Because of the diversity of modern hardware and operating systems, drivers operate in many different environments.[9] Drivers may interface with:

Common levels of abstraction for device drivers include:

  • For hardware:
    • Interfacing directly
    • Writing to or reading from a device control register
    • Using some higher-level interface (e.g. Video BIOS)
    • Using another lower-level device driver (e.g. file system drivers using disk drivers)
    • Simulating work with hardware, while doing something entirely different[10]
  • For software:
    • Allowing the operating system direct access to hardware resources
    • Implementing only primitives
    • Implementing an interface for non-driver software (e.g. TWAIN)
    • Implementing a language, sometimes quite high-level (e.g. PostScript)

So choosing and installing the correct device drivers for given hardware is often a key component of computer system configuration.[11]

Virtual device drivers

[edit]

Virtual device drivers represent a particular variant of device drivers. They are used to emulate a hardware device, particularly in virtualization environments, for example when a DOS program is run on a Microsoft Windows computer or when a guest operating system is run on, for example, a Xen host. Instead of enabling the guest operating system to dialog with hardware, virtual device drivers take the opposite role and emulates a piece of hardware, so that the guest operating system and its drivers running inside a virtual machine can have the illusion of accessing real hardware. Attempts by the guest operating system to access the hardware are routed to the virtual device driver in the host operating system as e.g., function calls. The virtual device driver can also send simulated processor-level events like interrupts into the virtual machine.

Virtual devices may also operate in a non-virtualized environment. For example, a virtual network adapter is used with a virtual private network, while a virtual disk device is used with iSCSI. A good example for virtual device drivers can be Daemon Tools.

There are several variants of virtual device drivers, such as VxDs, VLMs, and VDDs.

Open source drivers

[edit]

Solaris descriptions of commonly used device drivers:

  • fas: Fast/wide SCSI controller
  • hme: Fast (10/100 Mbit/s) Ethernet
  • isp: Differential SCSI controllers and the SunSwift card
  • glm: (Gigabaud Link Module[14]) UltraSCSI controllers
  • scsi: Small Computer Serial Interface (SCSI) devices
  • sf: soc+ or social Fiber Channel Arbitrated Loop (FCAL)
  • soc: SPARC Storage Array (SSA) controllers and the control device
  • social: Serial optical controllers for FCAL (soc+)

APIs

[edit]

Identifiers

[edit]

A device on the PCI bus or USB is identified by two IDs which consist of two bytes each. The vendor ID identifies the vendor of the device. The device ID identifies a specific device from that manufacturer/vendor.

A PCI device has often an ID pair for the main chip of the device, and also a subsystem ID pair that identifies the vendor, which may be different from the chip manufacturer.

Security

[edit]

Computers often have many diverse and customized device drivers running in their operating system kernel which often contain various bugs and vulnerabilities, making them a target for exploits.[18] A Bring Your Own Vulnerable Driver (BYOVD) attacker installs any signed, old third-party driver with known vulnerabilities that allow malicious code to be inserted into the kernel.[19] Drivers that may be vulnerable include those for WiFi and Bluetooth,[20][21] gaming/graphics drivers,[22] and drivers for printers.[23]

There is a lack of effective kernel vulnerability detection tools, especially for closed-source operating systems such as Microsoft Windows[24] where the source code of the device drivers is mostly proprietary and not available to examine,[25] and drivers often have many privileges.[26][27][28][29]

A group of security researchers considers the lack of isolation as one of the main factors undermining kernel security,[30] and published an isolation framework to protect operating system kernels, primarily the monolithic Linux kernel whose drivers they say get ~80,000 commits per year.[31][32]

An important consideration in the design of a kernel is the support it provides for protection from faults (fault tolerance) and from malicious behaviours (security). These two aspects are usually not clearly distinguished, and the adoption of this distinction in the kernel design leads to the rejection of a hierarchical structure for protection.[33]

The mechanisms or policies provided by the kernel can be classified according to several criteria, including: static (enforced at compile time) or dynamic (enforced at run time); pre-emptive or post-detection; according to the protection principles they satisfy (e.g., Denning[34][35]); whether they are hardware supported or language based; whether they are more an open mechanism or a binding policy; and many more.

See also

[edit]

References

[edit]
  1. ^ a b "What is all device driver?". WhatIs.com. TechTarget. Archived from the original on 13 February 2021. Retrieved 19 March 2018.
  2. ^ EMC Education Services (2010). Information Storage and Management: Storing, Managing, and Protecting Digital Information. John Wiley & Sons. ISBN 9780470618332. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  3. ^ Burke, Timothy (1995). Writing device drivers: tutorial and reference. Digital Press. ISBN 9781555581411. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  4. ^ "Choosing a driver model". Microsoft. Retrieved 2025-08-14.
  5. ^ "MAKEDEV — Linux Command — Unix Command". Linux.about.com. 2025-08-14. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  6. ^ Tanenbaum, Andrew; Woodhull, Albert (2006). Operating Systems, Design and Implementation (3rd. ed.). Upper Saddle River, NJ: Pearson Pretence Hall. p. 256. ISBN 0-13-142938-8.
  7. ^ Yosifovich, Pavel; Ionescu, Alex; Russinovich, Mark; Solomon, David (2017). Windows Internals, Part 1 (Seventh ed.). Redmond, Washington: Microsoft Press. ISBN 978-0-7356-8418-8.
  8. ^ "Introduction to the User-Mode Driver Framework (UMDF)". Microsoft. 2025-08-14. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  9. ^ Deborah Morley (2009). Understanding Computers 2009: Today and Tomorrow. Cengage Learning. ISBN 9780324830132. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  10. ^ Computer Peripherals and Interfaces. Technical Publications Pune. January 2008. pp. 5–8. ISBN 978-8184314748. Retrieved 2025-08-14.[permanent dead link]
  11. ^ "What are Device Drivers and why do we need them?". drivers.com. April 17, 2015. Archived from the original on November 20, 2016. Retrieved March 19, 2018.
  12. ^ "CCISS". SourceForge. 2010. Archived from the original on 2025-08-14. Retrieved 2025-08-14. Drivers for the HP (previously Compaq) Smart Array controllers which provide hardware RAID capability.
  13. ^ Russell, Steve; et al. (2025-08-14). Abbreviations and acronyms. IBM International Technical Support Organization. p. 207. ISBN 0-7384-2684-9. Retrieved 2025-08-14. {{cite book}}: |work= ignored (help)[permanent dead link]
  14. ^ "US Patent 5969841 - Gigabaud link module with received power detect signal". PatentStorm LLC. Archived from the original on 2025-08-14. Retrieved 2025-08-14. An improved Gigabaud Link Module (GLM) is provided for performing bi-directional data transfers between a host device and a serial transfer medium.
  15. ^ "Unified Audio Model (Windows CE 5.0)". Microsoft Developer Network. 14 September 2012. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  16. ^ Dell US. "What are DCH drivers and why do you need to know about them? | Dell US". www.dell.com. Retrieved 2025-08-14.
  17. ^ "dxd - dynax driver framework: Main Page". dxd.dynax.at. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  18. ^ Talebi, Seyed Mohammadjavad Seyed; Tavakoli, Hamid; Zhang, Hang; Zhang, Zheng; Sani, Ardalan Amiri; Qian, Zhiyun (2018). Charm: Facilitating Dynamic Analysis of Device Drivers of Mobile Systems. pp. 291–307. ISBN 9781939133045. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  19. ^ Goodin, Dan (14 October 2022). "How a Microsoft blunder opened millions of PCs to potent malware attacks". Ars Technica. Archived from the original on 8 November 2022. Retrieved 8 November 2022.
  20. ^ Ridley, Jacob (9 February 2022). "You're going to want to update your Wi-Fi and Bluetooth drivers today". PC Gamer. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  21. ^ "Wireless 'BlueBorne' Attacks Target Billions of Bluetooth Devices". threatpost.com. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  22. ^ Spadafora, Anthony (12 January 2022). "Installing gaming drivers might leave your PC vulnerable to cyberattacks". TechRadar. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  23. ^ "HP patches vulnerable driver lurking in printers for 16 years". ZDNET. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  24. ^ Pan, Jianfeng; Yan, Guanglu; Fan, Xiaocao (2017). Digtool: A {Virtualization-Based} Framework for Detecting Kernel Vulnerabilities. USENIX Association. pp. 149–165. ISBN 9781931971409. Retrieved 5 November 2022.
  25. ^ King, Bertel (18 June 2022). "Closed Source vs. Open Source Hardware Drivers: Why It Matters". MUO. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  26. ^ Branscombe, Mary (7 April 2022). "How Microsoft blocks vulnerable and malicious drivers in Defender, third-party security tools and in Windows 11". TechRepublic. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  27. ^ Goodin, Dan (5 October 2022). "No fix in sight for mile-wide loophole plaguing a key Windows defense for years". Ars Technica. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  28. ^ Davenport, Corbin. ""Bring Your Own Vulnerable Driver" Attacks Are Breaking Windows". How-To Geek. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  29. ^ "Windows 10 Security Alert: Vulnerabilities Found in Over 40 Drivers". BleepingComputer. Archived from the original on 5 November 2022. Retrieved 5 November 2022.
  30. ^ "Fine-grained kernel isolation". mars-research.github.io. Archived from the original on 15 September 2022. Retrieved 15 September 2022.
  31. ^ Fetzer, Mary. "Automatic device driver isolation protects against bugs in operating systems". Pennsylvania State University via techxplore.com. Archived from the original on 15 September 2022. Retrieved 15 September 2022.
  32. ^ Huang, Yongzhe; Narayanan, Vikram; Detweiler, David; Huang, Kaiming; Tan, Gang; Jaeger, Trent; Burtsev, Anton (2022). "KSplit: Automating Device Driver Isolation" (PDF). Archived (PDF) from the original on 15 September 2022. Retrieved 15 September 2022.
  33. ^ Wulf 1974 pp.337–345
  34. ^ Denning 1976
  35. ^ Swift 2005, p.29 quote: "isolation, resource control, decision verification (checking), and error recovery."
[edit]
糖醋里脊用什么淀粉 眼睛屈光不正是什么 三七粉有什么用处 出家需要什么条件 脱发补充什么维生素
耳鸣看什么科 冬至吃什么馅的饺子 电脑什么牌子好 ace是什么意思 抖机灵是什么意思
子时右眼跳是什么预兆 车震什么意思 女王是什么意思 吃什么促进恶露排干净 坐飞机需要什么证件
检查糖尿病挂什么科 革兰氏阳性菌是什么病 妥投是什么意思 减肥期间吃什么最好 舒字五行属什么的
什么病hcv8jop1ns6r.cn 笑话是什么意思hcv9jop4ns9r.cn 胃窦炎吃什么药最好hcv8jop1ns6r.cn 乔其纱是什么面料wuhaiwuya.com 一个夸一个瓜念什么wmyky.com
外婆菜是什么hcv9jop2ns3r.cn 缓刑是什么意思还要坐牢吗hcv8jop3ns8r.cn 反酸烧心吃什么药hcv9jop5ns4r.cn 三铵复合肥是什么hcv8jop4ns5r.cn 九月十五日是什么星座hcv7jop7ns3r.cn
干咳 吃什么药hcv8jop5ns7r.cn 铁蛋白低吃什么可以补hcv9jop4ns9r.cn 喝茶有什么好处和坏处hanqikai.com 打磨工为什么没人干hcv8jop6ns1r.cn 额窦炎吃什么药管用hanqikai.com
乙肝两对半阴性是什么意思hcv9jop3ns7r.cn 奔跑吧什么时候播出mmeoe.com 安全期是指什么时间hcv7jop4ns8r.cn 脑子萎缩是什么原因造成的hcv8jop3ns4r.cn 梦见笑是什么意思hcv9jop4ns1r.cn
百度