linux 驅(qū)動開發(fā) 編寫linux系統(tǒng)驅(qū)動函數(shù)中的IOCTL函數(shù)時,CMD參數(shù)為什么要使用幻數(shù)?
編寫linux系統(tǒng)驅(qū)動函數(shù)中的IOCTL函數(shù)時,CMD參數(shù)為什么要使用幻數(shù)?Linux驅(qū)動程序上IOCTL函數(shù)的CMD由一個32位字段組成,它分為四個部分:1)類型或幻數(shù),8位,2)序數(shù),8位,3)方
編寫linux系統(tǒng)驅(qū)動函數(shù)中的IOCTL函數(shù)時,CMD參數(shù)為什么要使用幻數(shù)?
Linux驅(qū)動程序上IOCTL函數(shù)的CMD由一個32位字段組成,它分為四個部分:1)類型或幻數(shù),8位,2)序數(shù),8位,3)方向,即從內(nèi)核空間到用戶空間,或從用戶空間到內(nèi)核空間,4)大小,指示需要讀取和寫入的參數(shù)大小。通常,Linux內(nèi)核會自動過濾CMD的一些非法定義。例如,如果定義1,2,并且CMD為1,2,則沒有類型、數(shù)字、方向和大小。Linux內(nèi)核將自動過濾出IOCTL請求,如果IOCTL根本沒有轉(zhuǎn)到驅(qū)動程序IOCTL,那么它將返回一個錯誤。