导航:首页 > 器材知识 > 设备对象的符号链接是什么

设备对象的符号链接是什么

发布时间:2021-10-10 22:28:40

⑴ 连接符号是什么

连接符号是(-、—、~)。

表现为三种形式:

(1)短横线“-”,半个字的长度。

(2)一字线“一”,占一个字的位置。

(3)波纹线“~”,一个字的长度。

连接号(-、-、~),表示连接、起止、流程、指向的符号。“两个相关的名词构成一个意义单位,中间用连接号。”“相关的时间、地点或数目之间用连接号,表示起止。”“相关的字母、阿拉伯数字等之间,用连接号,表示产品型号。”“几个相关的项目表示递进式发展,中间用连接号。”

用法和作用:

(一)标示化合物的名称或表格、插图编号;连接号码,包括门牌号码、电话号码,以及用阿拉伯数字表示年月日等;在复合名词中起连接作用;某些产品的名称和型号;汉语拼音、外来语内部分合等均用短横线(占半个字的位置)。

例1:3-戊酮为无色液体

例2:参见下页表2-8、表2-9

(二)标示下列各种情况,一般用一字线(占一个字的位置),有时也可用波纹线(占一个字的位置)

1.标示相关项目(如时间、地域等)的起止。

例1:沈括(1031-1095),宋朝人。

例2:2011年2月3日-10日

2.标示数值范围(由阿拉伯数字或汉字数字构成)的起止。

例3:25~30g

例4:第五~八课[1]

(三)表示不同范围(由大范围划分指向小范围划分)的指向性。

例5:行政部—行政主管

以上内容参考:网络-连接号

⑵ 对象标识符是由什么组成的网络中的设备是如何表示的

标识符使用来标识源程序中的某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等组成。
网络中的表示方法多以C语言为准:一个标识符由字母、数字和下划线组成,第一个字符必须是字母或下划线,通常以下划线开头的标识符是编译系统专用的,所以在编写C语言程序时,最好不要使用以下划线开头的标识符。但是下划线可以用在第一个字符以后的任何位置。
遵循的基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

⑶ 什么是链接符号链接与硬链接的区别是什么

一、链接

链接是指在电子计算机程序的各模块之间传递参数和控制命令,并把它们组成一个可执行的整体的过程。

链接也称超级链接,是指从一个网页指向一个目标的连接关系,所指向的目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是图片、电子邮件地址、文件、甚至是应用程序。

二、符号链接与硬链接的区别

1、含义不同

符号链接是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。

硬链接就是一个文件的一个或多个文件名。

2、英文名不同

硬链接:hard link

符号链接:Symbolic link

3、删除文件性质不同

在对符号链接进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。

如果删除一个符号链接,它指向的目标文件不受影响。如果目标文件被移动、重命名或者删除,任何指向它的符号链接仍然存在,但是它们将会指向一个不复存在的文件。这种情况被有时被称为被遗弃。

当移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置

⑷ 请问带一个斜杠两个问号的链接是什么链接(意思)

设备命名的注意事项
如果仅仅想在开发过程中为应用程序打开设备句柄提供一个快速方法,你应该在\??目录中为设备赋予一个名字。然而,对于一个产品级的驱动程序来说,最好把设备对象名放到\Device目录中。
\??目录以前叫做\DosDevices。实际上,\DosDevice仍可以使用,但它本身是\??目录的符号连接。这种改变将使经常查找的用户模式目录名能位于字母排序的目录列表前面。如果你要在命名中使用\??,应该先参考本章“Windows 98兼容问题”节中的注意事项。
注意,上面提到的把设备对象名放到\??目录中可能不适用于Windows 2000的Terminal Server版本。由于设备对象不能复制到控制台事务的外边,而符号连接可以,因此你应该在\Device目录中保存设备命名,而在\DosDevices目录中放一个符号连接。
在以前版本的Windows NT中,某些种类设备(特别是磁盘、磁带、串行口,和并行口)的驱动程序通过调用IoGetConfigurationInformation来获得一个全局表的指针,该表包含这些类中的设备计数。驱动程序应使用当前计数值来合成设备名称,例如Harddisk0、Tape1,等等,并同时增加该计数器的值。然而,WDM驱动程序并不需要使用这个服务函数以及它返回的计数器表,为这些类中的设备构造名称现在是Microsoft专有的类驱动程序的责任,如DISK.SYS。

⑸ linux设备文件和链接文件的区别是什么

根据两者的定义就知道有什么区别:
设备文件包含如下:
Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。每个字符设备和块设备都必须有主、次设备号,主设备号相同的设备是同类设备(使用同一个驱动程序)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备")。每个设备在 /dev 目录下都有一个对应的文件(节点)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。内核能够识别的所有设备都记录在原码树下的 Documentation/devices.txt 文件中。在 /dev 目录下除了字符设备和块设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、目录。这些东西没有主/次设备号。
链接文件:

Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。
我们首先来了解一下几个名词:
索引节点(inode)
要了解链接,我们首先得了解一个概念,叫索引节点(inode)。在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。
硬链接(Hard Link)
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。
引用
ln [options] existingfile newfile
ln [options] existingfile-list directory

用法:
第一种为”existingfile”创建硬链接,文件名为”newfile”。
第二种在”directory”目录中,为” existingfile-list”中包含的所有文件创建一个同名的硬链接。
常用可选[options]:-f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。
软链接(Soft Link)
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。

⑹ 什么是符号链接

符号链接又叫软链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。 链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。 用ln -s 命令可以生成一个软连接,如下: [root@linux236 test]# ln -s source_file softlink_file 在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。 删除软链接用rm softlink_file 或者unlink softlink_file

⑺ 链接是什么意思

链接URL是统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。

URL通过提供资源位置的一种抽象标志符来对资源进行定位。系统定位了一个资源后,可能会对进行各种各样的操作,这些操作可以抽象为下面的几个词:访问,更新,替换,发现属性。,只有访问方法这一项在任何URL方案中都需要进行描述。


(7)设备对象的符号链接是什么扩展阅读

因特网上的可用资源可以用简单字符串来表示,该文档就是描述了这种字符串的语法和语义。而这些字符串则被称为:“统一资源定位器”(URL)。这篇说明源于万维网全球信息主动组织介绍的概念。

RFC1630《通用资源标志符》描述了一些对象数据,他们自1990年起就开始使用这些对象数据。这篇URL说明符合《因特网资源定位符的功能需求中说明的需求。这篇文档是由工程任务组织(IETF)的URI工作小组写的。


⑻ WDM驱动消息如何传递到上层应用,上层应用如何得到驱动消息。 请用白话文给说明,不要链接!

驱动程序是一个分层的结构,一个硬件设备并不是只由一个驱动程序来管理,在它相关联的物理设备驱动程序之上,还有很多过滤驱动程序。与这些过滤驱动程序相关联的,就是这个物理设备对象的过滤器设备对象。那么,一个用户模式的请求,必须通过上层的过滤器设备对象,一层一层的往下传,最终才能到达物理设备对象。这有点像TCP/IP分层结构模型,一个应用层的数据包必须通过传输层、网络层这样一层一层的往下传,最终才能达到物理层并传递到网络中。而设计这样的分层模型的目的,我想应该是为了方便扩展,比如如果想对某个设备加入新的管理操作,那么不需要修改其已有的物理设备驱动程序和过滤器驱动程序,而只需要加入新的过滤器设备对象以及相应的驱动程序,在这里加入新的操作就行了。

另外,需要指出的一点是,在很多内核模式编程中,驱动程序并不一定要与某一个实际存在的物理设备相关联,它可以仅创建一个虚拟的设备对象,而这个设备对象不与任何实际的物理设备相关联。因为在很多情况下,用户编写驱动的目的仅仅是要让自己的代码执行在系统的内核态中。

编写WDM驱动程序

驱动程序入口点-DriverEntry函数(相当于c语言的main函数),它在驱动程序被加载进内存的时候调用。

DriverEntry函数有两个参数,其中第一个参数PDRIVER_OBJECTpDriverObj是指向该驱动程序对应的驱动程序对象的指针。

一个重要的任务就是要设定驱动程序对象的几个函数指针,这样,该驱动程序对象关联的设备对象在接收到上层的IRP的时候,就会通过驱动程序对象中设置的函数指针,找到相应的函数来做处理:

pDriverObj->DriverUnload=DriverUnload;

pDriverObj->MajorFunction[IRP_MJ_CREATE]=

pDriverObj->MajorFunction[IRP_MJ_CLOSE]=

pDriverObj->MajorFunction[IRP_MJ_DEVICE_CONTROL]=DriverDispatch;

还有一个重要的任务,就是要创建设备对象并为其建立符号连接。(这里说明一下,在规范的WDM程序中,创建设备对象的任务本来该由AddDevice函数来做,而这个函数也是通过驱动程序对象的一个函数指针来定位的。在这种规范的WDM程序中,一旦有新硬件加入,系统就会自动通过驱动程序对象的函数指针找到AddDevice函数,并调用它来创建设备对象。但是在这里,我并不是在为实际存在的硬件写驱动,而只是写一个内核模式下的程序,因此就只需要在DriverEntry函数中创建一个设备对象就行了。)

IoCreateDevice(pDriverObj,

0,

&deviceName,

FILE_DEVICE_UNKNOWN,

FILE_DEVICE_SECURE_OPEN,

true,

&pDeviceObj);//创建设备对象

IoCreateSymbolicLink(&linkName,&deviceName);//建立符号连接

从上面调用IoCreateDevice函数的参数中还可以看出,设备对象和驱动程序对象是相关联的,这也就可以解释为什么是设备接收到IRP,而相应的处理函数却是由驱动程序对象中的函数指针定位的。至于建立符号连接,那是为了方便在用户模式中调用设备对象。

从前面设定的驱动程序对象中的函数指针可以看到,主要有两个函数:卸载函数DriverUnload和派遣函数DriverDispatch。DriverUnload函数应该很容易理解,它是在驱动程序被卸载出内存的时候调用,主要做一些释放内存之类的工作。而在我的这个程序中,所有的IRP都是在同一个函数里面进行处理的,这就是派遣函数DriverDispatch(实际上很多WDM程序都是这样做的)。下面就分别介绍一下这两个函数。

DriverUnload函数的主要任务是将创建的设备对象和符号连接删除掉,当然如果在程序中还分配了其他内存需要释放,也是在这里完成。

IoDeleteSymbolicLink(&linkName);

IoDeleteDevice(pDriverObj->DeviceObject);

派遣函数DriverDispatch主要负责处理上层的IRP。这里先要提一下,每个IRP都与两个数据结构相关联,就是IRP本身和IRPStack——IO_STACK_LOCATION结构。在这两个结构里面,包含了所有上层传递给本层设备对象的信息。最重要的一个信息就是:在IO_STACK_LOCATION结构中,包含了IRP的功能码MajorFunction和MinorFunction(IRP的功能码标识了该IRP具体是什么请求,比如读请求的MajorFunction值为IRP_MJ_READ)。

DriverDispatch函数的处理流程一般是这样的:首先通过IRP获得IPRStack;然后从IRPStack中得到该IRP的主功能码MajorFunction,判断主功能码并做相应处理;处理完该请求后,根据具体情况选择完成该请求或者向下一层设备对象传递该IRP。获得IRPStack很简单,只需要调用函数IoGetCurrentIrpStackLocation即可:

PIO_STACK_LOCATIONpIrpStack=IoGetCurrentIrpStackLocation(pIrp);

判断主功能码并做相应的处理这一步一般是由一个switch-case语句实现的:

switch(pIrpStack->MajorFunction)

{

caseIRP_MJ_CREATE:

DbgPrint("Info:Create! ");

break;

caseIRP_MJ_CLOSE:

DbgPrint("Info:Close! ");

break;

caseIRP_MJ_DEVICE_CONTROL:

{

switch(pIrpStack->Parameters.DeviceIoControl.IoControlCode)

{

caseIOCTL_GET_INFO:

{

RtlCopyMemory(pIrp->UserBuffer,"Thisisatestdriver!",23);

information=23;

break;

}

default:

break;

}

}

default:

break;

}

最后一步,如果需要完成该请求,那么应该先设置IRP结构中的IoStatus域,然后调用函数IoCompleteRequest:

pIrp->IoStatus.Status=STATUS_SUCCESS;

pIrp->IoStatus.Information=information;

IoCompleteRequest(pIrp,IO_NO_INCREMENT);

如果需要向下一层设备对象传递该IRP,则要先初始化往下传递的IRP对应IRPStack(可以直接将当前的IRPStack复制给下层IRPStack),然后调用IoCallDriver函数往下层传递该IRP:

(pIrp);

status=IoCallDriver(pLowerDeviceObj,pIrp);

那么,怎样从用户模式的程序中调用驱动?

用户模式的程序要调用驱动,首先就要打开设备,也就是驱动程序中创建的设备对象。这可以通过调用CreateFile函数来实现。CreateFile函数本来是用于打开文件,它的第一个参数就是文件名。而这里,我们以设备名作为它的第一个参数传入,那么该函数打开的就是设备了。这里所说的设备名,实际上是驱动程序里面为设备对象建立的符号连接名。比如用户模式中给出的设备名为”\.MyDevice”,I/O管理器在执行名称搜索前先自动把”\.”转换成”??”,这样就成了”??MyDevice”,这就是驱动程序里面建立的符号连接名了。打开设备后,用户模式的程序就可以调用ReadFile、WriteFile和DeviceIoControl等函数向驱动程序发出请求了。

最后,给出我的试验程序的源码。

其他

WDM程序编译出来的并不是我们常见的.exe,而是.sys文件,在未经设置编译环境之前,是不能直接用VC来编译的(这就是为什么会有几百个错误了)。这种类型的文件你可以在WINNTSystem32Drivers里面找到很多。其实驱动程序也是一种PE文件,它同样由DOSMZheader开头,也有完整的DOSstub和PEheader,同样拥有Importtable和Exporttable——hoho……那跟普通的PE文件有什么不一样呢?

其实.sys跟.exe文件一样,都是一种PE文件来的。不同的是,.sys文件Import的通常是NTOSKRNL.EXE,而.exe文件Import的通常是KERNEL32.DLL和USER32.DLL。

知道了这些有什么用呢?实际上,由于.sys通常不调用KERNEL32.DLL和USER32.DLL,所以你是不能在设备驱动程序里面调用任何C、C++和Win32函数的,而且也不能用C++关键字new和delete等(可以用malloc和free来代替),而必须使用大量的内核函数。

⑼ 什么是符号链接文件

linux文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。不过,在linux中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。链接不是副本。有两种类型的链接:硬链接和符号链接。
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
符号链接是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置,用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位置。两种链接都可以通过命令ln来创建。ln默认创建的是硬链接。使用-s开关可以创建符号链接。
符号链接与硬链接有什么区别?
简单的说:硬连接记录的是目标的inode,符号连接记录的是目标的path。
软连接就像是快捷方式,而硬连接就像是备份!符号连接可以做跨分区的link;而硬连接由于inode的缘故,只能在本分区中做link.所以,符号连接的使用频率要高的多。

⑽ 什么是linux下的符号链接文件

一种被称为硬链接(Hard
Link),另一种被称为符号链接(Symbolic
Link,也叫做软链接)。

阅读全文

与设备对象的符号链接是什么相关的资料

热点内容
另存为92工具箱arcgis 浏览:55
不锈钢阀门厂上海融骏实惠 浏览:398
工序机床怎么选 浏览:337
副枪探头自动装卸装置 浏览:784
仪表盘上的风扇符号是什么 浏览:450
桥头有五金批发市场吗 浏览:102
怎么设置设备锁微信号吗 浏览:590
涉及电网安全的自动装置主要有 浏览:102
奥运会采用什么方式制冷制冰 浏览:783
电动汽车快充设备是多少伏 浏览:285
什么是机电设备的维修性 浏览:632
打黑电动工具 浏览:750
liu光纤互连装置的作用 浏览:646
博世工具箱钻头安装 浏览:666
收购超声波焊接机是为什么 浏览:743
暖气阀门多久更换 浏览:118
能源油设备有限公司招聘电话是多少钱 浏览:100
电脑无法识别手机的usb设备怎么办 浏览:142
地暖分水器没有放水阀门怎么办 浏览:993
机械旋耕多少钱一亩 浏览:571