设为首页 收藏本站
云服务器等爆品抢先购,低至4.2元/月
查看: 776|回复: 0

[经验分享] Windows驱动 INF文件

[复制链接]

尚未签到

发表于 2017-6-28 13:03:02 | 显示全部楼层 |阅读模式
  参考一:百度百科
  参考二:INF文件的节
  参考三:wikipedia
  参考四:MSDN: INF File
  INF文件的节
  INF文件是一个文本文件,由许多按层次结构排列的节组成,他们以方括号中的节名称开始,如[Version]、[Manufacturer]等,后面是改接所含有的各个项,如Signature、DriverVer等。节中各项的基本定义格式为
entry=value[,value…]

  其中,“entry”标示项名称,“value”标示该想的取值。节名和项名称都不区分大小写,且对于Windows 98,其必须小于28个字符;对于Windows 2000,其长度的最大值为255个字节。下表是INF文件中常用的节。
INF文件中常用的节


  节

  说明

  Version

  INF文件的开始

  SourceDisksNames

  指明去的那个程序所在的磁盘或CD-ROM

  SourceDisksFiles

  指明驱动程序的文件名

  Destination

  指明INF文件和驱动程序的目标文件

  Manufacturer

  指明供应商及其对应Models节的名称

  Models

  指明Install/DDInstall节的名称、设备的硬件ID等信息

  Install(Windows 98)
  Install(Windows 2000)

  指明需复制的文件、想注册表中添加的内容等信息

  DDInstall.Services
  仅适用于Windows 2000

  指明驱动程序安装的详细信息

  String

  指明一系列字符串

  1Version节
  Version节通常作为INF文件的开始,下表列出了其包含的各项。所有INF文件都必须含有Version节及其Signature项
Version节中的各项


  项

  说明

  Signature

  指明驱动程序的签名,其取值为:$Windows NT$、$Windows 95$、$Chicago$、

  Class

  指明驱动程序所属的类别

  ClassGuid

  指明设备类的GUID,其格式为:{nnnnnnnn-nnnn-nnnn-nnnnnnnnnnnn}①

  Provider

  指明该INF文件的供应商

  LayoutFile

  仅由操作系统内部提供的INF文件使用

  CatalogFile

  指明数字签名文件的文件名,其扩展名为.cat

  DriverVer

  指明驱动程序的版本信息,其格式为:mm/dd/yyyy[,x.y.v.z]

  注:①n代表一个16进制数

  下面对主要的各项进行详细介绍。
  ①.Signature项:指明驱动程序的签名。对于Windows 98和Windows 2000下的USB设备驱动程序,该项的取值通常为“$Chicago$”。
  ②.Class和ClassGuid项:指明驱动程序所属的设备类别及其GUID,其取值情况见下表。
常用设备类别及其GUID


  Class

  ClassGuid

  说明

  1394

  6BDD1FC1-810F-11D0-BEC7-08002BE2092F

  1394主控制器

  CDROM

  4D36E965-E325-11CE-BFC1-08002BE10318

  CD-ROM驱动器

  DiskDrive

  4D36E967-E325-11CE-BFC1-08002BE10318

  磁盘驱动器

  Display

  4D36E968-E325-11CE-BFC1-08002BE10318

  显示适配器

  FDC

  4D36E969-E325-11CE-BFC1-08002BE10318

  软盘驱动器

  HDC

  4D36E96A-E325-11CE-BFC1-08002BE10318

  硬盘控制器

  HIDClass

  745a17a0-74d3-11d0-b6fe-00a0c90f57da

  人机接口设备

  Keyboard

  4D36E96B-E325-11CE-BFC1-08002BE10318

  键盘

  Modem

  4d36e96c-e325-11ce-bfc1-08002be10318

  调制解调器

  Monitor

  4d36e96e-e325-11ce-bfc1-08002be10318

  监视器

  Mouse

  4d36e96f-e325-11ce-bfc1-08002be10318

  鼠标

  Net

  4d36e972-e325-11ce-bfc1-08002be10318

  网络适配器

  Ports

  4d36e978-e325-11ce-bfc1-08002be10318

  端口(COM&LPT)

  Printer

  4d36e979-e325-11ce-bfc1-08002be10318

  打印机

  System

  4d36e97d-e325-11ce-bfc1-08002be10318

  系统设备

  TapeDrive

  6D807884-7D21-11CF-801C-08002BE10318

  磁带驱动器

  USB

  36FC9E60-C465-11CF-8056-444553540000

  USB

  ③.DriverVer项:指明驱动程序的版本信息。其“mm/dd/yyyy”代表月/日/年;“x.y.v.z”代表驱动程序的版本号,它是可选的。
  2.SourceDisksNames节
  SourceDisksNames节指明设备驱动程序所在的磁盘或CD-ROM,其各项的格式如下:
diskid=disk-description,disk-label,disk-serial-number   (Windows 98)

diskid=disk-description[,[tagfile][,unused,path]]  (Windows 2000)

  其中,“disked”指出磁盘驱动器的编号,它是正整型数,通常从1开始,且不能重复;“disk-description”表示磁盘的描述信息,他通常为一个字符串。对于Windows 98,“disk-label”指出磁盘的卷标;“disk-serial-numbe”指出磁盘的序列号。对于Windows 2000,“tagfile”指出磁盘标签文件的文件名;“unused”保留未用;“path”指出驱动程序所在的路径;“[ ]”表示可选参数。
  3.SourceDisksFiles节
  SourceDisksFiles节指明设备驱动程序的文件全路径,其各项格式如下:
filename=diskid[,subdir] (Windows 98)

filename=diskid[,[,subdir][,size]]   (Windows 2000)

  其中,“filename”指出驱动程序的文件名;“diskid”指出磁盘驱动器的编号;“subdir”指出该文件在磁盘上的路径;“size”指出该文件未经压缩时的大小,以字节为单位。
  4.DestinationDirs节
  DestinationDirs节指明INF文件和设备驱动程序的目标目录。当INF文件使用CopyFiles、DelFiles、RenFiles指令时,则必须包含该节。其各项的格式如下:
DefaultDestDir=dirid[,subdir]

File-list-section=dirid[,subdir]

  其中,“DefaultDestDir”是一个项名称,代表文件复制、删除、重命名操作的缺色很难干目标目录;“file-list-section”指出CopyFiles、DelFiles、RenFiles指令所引用的节;“dirid”指出目标目录值,见下表;“subdir”指出dirid目录下的子目录。
DestinationDirs节中的常用dirid


  dirid

  目标目录

  dirid

  目标目录

  10

  Windows目录:%windir%

  17

  INF目录

  11


系统目录

  Windows 98:%windir%/system
  Windows 2000:%windir%/system32

  18

  帮助目录

  20

  字体目录

  12

  驱动程序目录
  Windows 98:%windir%/system/IoSubsys
  Windows 2000:%windir%/system32/drivers

  23

  颜色目录

  24

  应用程序目录(Windows2000)

  13

  命令目录(Windows98)

  25

  共享目录

  14

  控制面板目录(Windows98)

  50

  %windir%/system(Windows2000)

  15

  打印机目录(Windows98)

  54

  Ntldr.exe和osloader.exe所在的目录(Windows2000)

  16

  工作组目录(Windows98)

  55

  打印处理器目录(Windows2000)

  5.Manufacturer节
  Manufacturer节指明供应商及其对应Models接的名称,其各项的格式如下:
%strkey%=models-section-name

  其中,“strkey”代表设备制造的名字,其字符串值在String节中定义;“models-section-name”指出Models节的名称。
  6.Models节
  Models节指明Install/DDInstall节的名称、设备的硬件ID和兼容ID等信息,其节名称由Manufacturer节指定。其各项的格式如下:
device-description=install-section-name,hw-id[,compatiable-id…]

  其中,“device-description”指出设备的表述信息,他可以是一个字符串,也可以使一个%strkey%;“install-section-name”指出Install/DDInstall节的名称;“hw-id”指出设备的硬件ID;“compatiable-id”指出设备的兼容ID。
  7. Install/DDInstall节
  Install/DDInstall节指明需复制的文件、想注册表中添加的内容等信息,其节名称由Models节指定。下表列出了其包含的常用项。
Install/DDInstall节中的常用项


  项

  说明

  DriverVer

  指明驱动程序的版本信息,格式为:mm/dd/yyyy[,x.y.z]

  CopyFiles

  指明需复制的文件,格式为:
  CopyFiles=@filename|file-list-section[,file-list-section]...

  AddReg

  指明向注册表中添加的其他INF文件按,格式为:
  AddReg=add-registry-section[,add-registry-section]…

  Include

  指明安装时需要的其他INF文件,格式为:
  Include=filename.inf[,filename2.inf]…

  Needs

  指明安装时所需的特定INF文件,格式为:
  Needs=inf-section-name[,inf-section-name]…

  Delfiles

  指明需删除的文件,格式为:
  Delfiles=inf-section-name[,inf-section-name]…

  RenFiles

  指明需重命名的文件,格式为:
  Renfiles=inf-section-name[,inf-section-name]…

  DelReg

  指明需删除的注册表内容,格式为:
  DelReg=del-registry-section[,del-registry-section]…

  Install/DDInstall节中的常用项的详细介绍。
  ①     CopyFiles项:它是Install/DDInstall节中的一个基本指令,用于指明需要复制的文件。其“filename”指出目标文件名;“file-list-section”是其创建的文件列表节,该节格式为
  [file-list-section]
  destination-file-name[,source-file-name][,temporary-file-name][,flag]
  其中,“destination-file-name”指出目标文件名;“source-file-name”指出源文件名,如果其和目标文件名相同,则可忽略该参数;“temporary-file-name”指出复制操作过程中所需要的临时文件名,他只适用于Windows 98;“flag”指出该文件的一些处理方法,其取之情况如下表。
CopyFiles项中的flag参数


  值

  符号

  说明

  0x00000400

  COPYFLG_REPLACEONLY

  仅替换目标目录中的文件

  0x00000800

  COPYFLG_NODECOMP

  复制并不解压缩

  0x00000008

  COPYFLG_FORCE_FILE_IN_USE

  将源文件赋值为临时文件名,以重新命名

  0x00000010

  COPYFLG_NO_OVERWRITE

  不替换原有文件

  0x00001000

  COPYFLG_REPLACE_BOOT_FILE

  强制用户重新引导系统

  0x00002000

  COPYFLG_NOPRUNE

  强制复制文件

  0x00000020

  COPYFLG_NO_VERSION_DIALOG

  不覆盖新版本的文件

  0x00000004

  COPYFLG_NOVERSIONCHECK

  可覆盖任何版本的文件

  0x00000040

  COPYFLG_OVERWRITE_ORDER_ONLY

  仅覆盖旧版本的文件

  0x00000001

  COPYFLG_WARN_IF_SKIP

  当用户跳过文件时发出警告

  0x00000002

  COPYFLG_NOSKIP

  不允许用户跳过文件

  ②     AddReg项:它是Install/DDInstall节所必须包含的指令,用于指明需项注册表中添加的内容。其“add-registry-section”是它创建的添加注册表节,该节的格式为
  [add-registry-section]
  reg-root, [subkey], [value-entry-name], [flags], [value]
  其中,“reg-root”指出注册表树的根目录,它的取值在下表中;“subkey”指出reg-root下的子目录(或称子键);“value-entry-name”指出要增加的注册表值;“flags”指出其对注册表的一些处理方法,取值在下面的flags表中;“value”指出新增加注册表值的数据。
AddReg项中的reg-root参数


  值

  说明

  HKCR

  HKEY_CLASSES_ROOT

  HKCU

  HKEY_CURRENT_USER

  HKLM

  HKEY_LOCAL_MACHINE

  HKU

  HKEY_USER

  HKR

  被安装设备的注册表键


AddReg项中的flags参数


  值

  符号

  说明

  0x00000000

  FLG_ADDREG_TYPE_SZ

  value为REG_SZ类型

  0x00000001

  FLG_ADDREG_BINVALUETYPE

  value为2进制数据

  0x00000002

  FLG_ADDREG_NOCLOBBER

  不替换已有注册表中的value

  0x00000004

  FLG_ADDREG_DELVAL

  从注册表中删除subkey或
  value-entry-name

  0x00000010

  FLG_ADDREG_KEYONLY

  仅建立subkey,忽略value-entry-name
  和value

  0x00000020

  FLG_ADDREG_OVERWRITEONLY

  仅当value-entry-name时替换value

  0x00010000

  FLG_ADDREG_TYPE_MULTI_SZ

  value为REG_MULTI_SZ类型

  0x00000008

  FLG_ADDREG_APPEND

  添加value至已有注册表值

  0x00020000

  FLG_ADDREG_TYPE_EXPEND_SZ

  value为REG_EXPAND_SZ类型

  0x00010001

  FLG_ADDREG_TYPE_DWORD

  value为REG_DWORD类型

  0x00020001

  FLG_ADDREG_TYPE_NONE

  value为REG_NONE类型(Windows2000)

  ③     DelFiles项:它是Install/DDInstall节中的可选指令,用于指明需删除的文件。其“file-list-section”是它创建的文件列表节,该节的格式为
  [file-list-section]
  destination-file-name[,,,flag]
  其中,“destination-file-name”指出目标文件名;“flag”指出该文件的一些处理方法,其取值如下表。
DelFiles项中的flag参数


  值

  符号

  说明

  0x0000001

  DELFLG_IN_USE

  在其安装处理操作完成后再删除该文件

  0x0001000

  DELFLG_IN_USE1

  功能与DELFLG_IN_USE一样,仅适用Windows2000

  ④RenFiles项:它是Install/DDInstall节中的可选指令,用于指明需重命名的文件。其“file-list-section”是它创建的文件列表节,该节的格式为
  [file-list-section]
  new-dest-file-name, old-source-file-name
  其中,“new-dest-file-name”指出该文件的新文件名;“old-source-file-name”指出其原有文件名。
  ⑤DelReg项:它是Install/DDInstall节中的可选指令,用于指明需从注册表中删除的内容。其“del-registry-section”是它创建的删除注册表节,该节的格式为
  [del-registry-section]
  reg-root, subkey [,value-entry-name]
  其中,“reg-root”指出该注册表树中的根目录,取值与AddReg的ret-root相同; “subkey”指出reg-root下的子目录(或称子键);“value-entry-name”指出要删除的注册表值。
  8.DDInstall.Services节
  DDInstall.Services节指明驱动程序安装的详细信息,他只是用于Windows 2000.他的节名称为[install-section-name.Services],其“install-section-name”由Models节指定。下表列出了其包含的常用项。
  DDInstall.Services节中的常用项

  项

  说明

  AddService

  控制驱动程序的安装过程,格式为
  AddService=ServiceName,[flags],service-install-section
  [,event-log-install-section[,[EventLogType][,EventName]]]…

  DelService

  删除一个或多个已有的驱动程序,格式为
  DelService=ServiceName [,[flags][,[EventLogType][,EventName]]]…

  Include

  指明安装时所需的其他INF文件,格式为
  Include =filename.inf [,filename2.inf]…

  Needs

  之敏感转世所需要的特定INF文件,格式为
  Needs = inf-section-name[,inf-section-name]…

  主要项进行详细介绍。
  ①     AddService项:它是DDInstall.Services节所必须包含的指令,用于控制设备驱动程序的安装过程。其“ServiceName”指出驱动程序的名字;“flags”指出一个或多个系统定义的标识,其取值情况如下表;“event-log-install-section”是其创建的事件日志安装,下表中列出了该节所包含的常用项;“service-install-section”是其创建的服务安装节,下表中列出了该节所包含的常用项;“EventLogType”指出事件日志的类型,其取值为System、Security和Application;“EventName”指出事件日志的名字。
AddService项的常用flags参数


  值

  符号

  说明

  0x00000002

  SPSVCINST_ASSOCSERVICE

  指明其为PnP功能驱动程序

  0x00000008

  SPSVCINST_NOCLOBBER_DISPLAYNAME

  不覆盖指定服务的名字

  0x00000100

  SPSVCINST_NOCLOBBER_DESCRIPTION

  不覆盖指定服务的描述

  0x00000010

  SPSVCINST_NOCLOBBER_STARTTYPE

  不覆盖指定服务的启动类型

  0x00000020

  SPSVCINST_NOCLOBBER_ERRORCONTROL

  不覆盖指定服务的差错控制值


event-log-install-section节中的常用项


  项

  说明

  AddReg

  指明向注册表中添加的内容,格式如下
  AddReg=add-registry-section[,add-registry-section]…

  DelReg

  指明需删除的注册表内容,格式如下
  DelReg=del-registry-section[,del-registry-section]…

  BitReg

  有效但几乎无用,格式如下
  BitReg=bit-registry-section[,bit-registry-section]…

  DisplayName

  驱动程序的名字,为字符串值

  Description

  驱动程序的描述,为字符串值

  ServiceType

  驱动程序的类型,为特定16进制数

  StartType

  驱动程序的启动类型,为特定16进制数

  ErrorControl

  驱动程序的差错控制级别,为特定16进制数

  ServiceBinary

  驱动程序的完整路径名:%dirid% /filename

  一下是对event-log-install-section节中的常用项的主要项进行详细介绍。
  <1>ServiceType项:指明驱动程序的类型,取值情况如下表。
ServiceType项的取值


  值

  符号

  说明

  0x00000001

  SERVICE_BOOT_START

  内核模式驱动程序

  0x00000002

  SERVICE_KERNEL_FILE_SYSTEM_DRIVER

  上层网络驱动程序或文件系统

  0x00000010

  SERVICE_WIN32_OWN_PROCESS

  Win32应用程序

  0x00000020

  SERVICE_WIN32_SHARE_PROCESS

  Win32应用程序

  <2>StartType项:指明驱动程序的启动类型,其取值情况如下表。
StartType项的取值


  值

  符号

  说明

  0x0

  SERVICE_BOOT_START

  由操作系统加载程序启动

  0x1

  SERVICE_SYSTEM_START

  由操作系统初始化过程中启动

  0x2

  SERVICE_AUTO_START

  由服务控制管理器启动

  0x3

  SERVICE_DEMAND_START

  由PnP管理器或服务控制管理器按需启动

  0x4

  SERVICE_DISABLE

  禁止启动

  <3>ErrorControl项:指明驱动程序的差错控制级别,其取值情况如下表。
ErrorControl项的取值


  值

  符号

  说明

  0x0

  SERVICE_ERROR_IGNORE

  不显示警告信息

  0x1

  SERVICE_ERROR_NORMAL

  显示警告信息

  0x2

  SERVICE_ERROR_SERVICE

  当驱动程序加载失败时,系统将使用其注册的LastKnownGood重试,并忽略其后的错误

  0x3

  SERVICE_ERROR_CRITICAL

  当驱动程序加载失败时,系统将使用其注册的LastKnownGood重试,并对其后的错误进行检验

  ②     DelService项:它是DDInstall.Service节中的可选指令,用于删除一个或多个已有的设备驱动程序。其“ServiceName”指出驱动程序的名字;“flags”指出一个或多个系统定义的标识,取值见下表;“EventLogType”指出事件日志的类型,其取值为System、Security或Application;“EventName”指出事件日志的名字。
DelService项的flags参数


  符号

  说明

  SPSVCINST_DELETEEVENTLOGENTRY

  删除与ServiceName有关的事件日志

  SPSVCINST_STOPSERVICE

  在删除之前首先停止服务

  9String节
  String节指明一些列字符串,其所含各项的格式为
strkey=[“]some string[“]

  其中,“strkey”指出字符串的名字,它只能包含字母和数字;“some string”为字符串的内容。
  附上《windows驱动开发技术详解》的一个例子



;--------- Version Section ---------------------------------------------------
[Version]
Signature="$CHICAGO$";
Provider=Zhangfan_Device
DriverVer=11/1/2007,3.0.0.3
; If device fits one of the standard classes, use the name and GUID here,
; otherwise create your own device class and GUID as this example shows.
Class=ZhangfanDevice
ClassGUID={EF2962F0-0D55-4bff-B8AA-2221EE8A79B0}

;--------- SourceDiskNames and SourceDiskFiles Section -----------------------
; These sections identify source disks and files for installation. They are
; shown here as an example, but commented out.
[SourceDisksNames]
1 = "HelloWDM",Disk1,,
[SourceDisksFiles]
HelloWDM.sys = 1,MyDriver_Check,
;--------- ClassInstall/ClassInstall32 Section -------------------------------
; Not necessary if using a standard class
; 9X Style
[ClassInstall]
Addreg=Class_AddReg
; NT Style
[ClassInstall32]
Addreg=Class_AddReg
[Class_AddReg]
HKR,,,,%DeviceClassName%
HKR,,Icon,,"-5"
;--------- DestinationDirs Section -------------------------------------------
[DestinationDirs]
YouMark_Files_Driver = 10,System32\Drivers
;--------- Manufacturer and Models Sections ----------------------------------
[Manufacturer]
%MfgName%=Mfg0
[Mfg0]
; PCI hardware Ids use the form
; PCI\VEN_aaaa&DEV_bbbb&SUBSYS_cccccccc&REV_dd
;改成你自己的ID
%DeviceDesc%=YouMark_DDI, PCI\VEN_9999&DEV_9999
;---------- DDInstall Sections -----------------------------------------------
; --------- Windows 9X -----------------
; Experimentation has shown that DDInstall root names greater than 19 characters
; cause problems in Windows 98
[YouMark_DDI]
CopyFiles=YouMark_Files_Driver
AddReg=YouMark_9X_AddReg
[YouMark_9X_AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,HelloWDM.sys
HKR, "Parameters", "BreakOnEntry", 0x00010001, 0
; --------- Windows NT -----------------
[YouMark_DDI.NT]
CopyFiles=YouMark_Files_Driver
AddReg=YouMark_NT_AddReg
[YouMark_DDI.NT.Services]
Addservice = HelloWDM, 0x00000002, YouMark_AddService
[YouMark_AddService]
DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\HelloWDM.sys
[YouMark_NT_AddReg]
HKLM, "System\CurrentControlSet\Services\HelloWDM\Parameters",\
"BreakOnEntry", 0x00010001, 0

; --------- Files (common) -------------
[YouMark_Files_Driver]
HelloWDM.sys
;--------- Strings Section ---------------------------------------------------
[Strings]
ProviderName="Zhangfan."
MfgName="Zhangfan Soft"
DeviceDesc="Hello World WDM!"
DeviceClassName="Zhangfan_Device"
SvcDesc="Zhangfan"

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389012-1-1.html 上篇帖子: python+msf 制作 windows远控 下篇帖子: 用Let's Encrypt实现Https(Windows环境+Tomcat+Java)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表