導航:首頁 > 器材知識 > 設備對象的符號鏈接是什麼

設備對象的符號鏈接是什麼

發布時間: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,也叫做軟鏈接)。

閱讀全文

與設備對象的符號鏈接是什麼相關的資料

熱點內容
如何查看無線路由接入設備 瀏覽:385
為什麼機械電子單元 瀏覽:446
如何判斷一個儀表是否合格 瀏覽:558
電動車儀表顯示26km什麼意思 瀏覽:500
設備用英語怎麼說 瀏覽:126
壁掛式水暖空調怎麼製冷 瀏覽:901
氣缸軸承如何更換 瀏覽:291
泰拉瑞亞機械毀滅者防禦值應該到多少 瀏覽:888
環球閥門有限公司怎麼樣 瀏覽:978
機械編程指令代表什麼 瀏覽:877
格蘭仕空調製冷2600w是多少匹 瀏覽:47
施工現場自動噴灑裝置 瀏覽:788
熱力管道閥門是管什麼 瀏覽:525
卡羅拉儀表盤黃色扳手是什麼意思 瀏覽:449
閥門英文怎麼翻譯 瀏覽:227
格力用什麼樣製冷劑 瀏覽:689
長春電子科技設備有限公司怎麼樣 瀏覽:262
電動直線傳動裝置 瀏覽:935
另存為92工具箱arcgis 瀏覽:55
不銹鋼閥門廠上海融駿實惠 瀏覽:398