freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

通過設備接口打開設備的步驟(編輯修改稿)

2025-06-12 08:04 本頁面
 

【文章內(nèi)容簡介】 CT SourceDevice,//新創(chuàng)建的功能設備對象FDO IN PDEVICE_OBJECT TargetDevice//物理設備對象PDO )。該函數(shù)調(diào)用成功的話返回一個設備對象,附加設備對象的設備對象,例如在這里,返回的是PDO,如果,The returned device object pointer can differ from TargetDevice if TargetDevice had additional drivers layered on top of ,則返回NULL。具體程序,我們將該函數(shù)返回的設備對象,保存在,設備擴展中,這樣一來,我們就需要先得到新創(chuàng)建的功能設備對象的設備擴展。//得到設備擴展PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION)fdoDeviceExtension。 pdxfdo = fdo。//將FDO附加到PDO上pdxNextStackDevice = IoAttachDeviceToDeviceStack(fdo, PhysicalDeviceObject)。WDM驅(qū)動程序,設備名無法被用戶模式下的應用程序查詢到,應用程序可以通過符號鏈接,設備名或者是設備接口來訪問設備。本文只介紹設備接口方式。設備接口就是一組全局標志,他是一個128位組成的數(shù)字,并能保證在全世界范圍內(nèi)不會沖突。VC中有一個創(chuàng)建GUID的工具,,它在D:\Program Files\Microsoft Visual Studio\Common\Tools中,運行它,它為用戶提供了四種方式產(chǎn)生guid,其實它們都是128位的,只是輸出的形式不同而已,一般選擇第二種,單擊New GUID會產(chǎn)生新的的guid。DEFINE_GUID(name, 0x5dada759, 0xde9a, 0x45e2, 0x8f, 0xb4, 0x1a, 0xa8, 0x8b, 0x1d, 0xe7, 0x8)。需要將《name》換成自己為這個接口而起的名字,在創(chuàng)建guid時,程序中應該包含頭文件include , DEFINE_GUID()宏定義了,那么定義一個guid, ,則定義一個extern guid指向定義的那個guid, ,否則會出錯。,也會出錯否則會出現(xiàn)錯誤。unresolved external symbol _MY_WDM_DEVICE創(chuàng)建設備接口用函數(shù)NTSTATUS IoRegisterDeviceInterface( IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName//將GUID輸出一串UNICODE字符串 )。具體代碼創(chuàng)建設備接口status = IoRegisterDeviceInterface(PhysicalDeviceObject, amp。MY_WDM_DEVICE, NULL, amp。pdxinterfaceName)。 其中pdxinterfaceName就是暴露給應用程序的符號鏈接。包括四部分如圖8圖8(1)何種總線設備,例如ROOT(2)類設備的名稱,LIUYOUJINDEVICE(3)這種設備的第幾個設備0000(4)制定的設備接口GUID。設置接口IoSetDeviceInterfaceState(amp。pdxinterfaceName, TRUE)。//設置操作模式fdoFlags |= DO_BUFFERED_IO | DO_POWER_PAGABLE。 fdoFlags amp。= ~DO_DEVICE_INITIALIZING。 實現(xiàn)即插即用 即插即用IRP即IRP_MJ_PNP,它一般是由即插即用管理器發(fā)送給WDM驅(qū)動程序的。不同情況下,即插即用管理器會發(fā)送不同子類型的IRP_MJ_PNP IRP。在IRP_MJ_PNP派遣函數(shù)中要處理不同子功能代碼的IRP,本程序采用函數(shù)指針的方法。首先初始化一個函數(shù)指針組成的數(shù)組,然后在派遣函數(shù)中判斷是那種子功能代碼。根據(jù)這個子功能代碼區(qū)尋找行的函數(shù)指針,再通過指針找到針對具體子功能代碼所作的操作函數(shù)。加載驅(qū)動時,所用到的各個IRP_MJ_PNP子功能代碼。 Default Enter DefaultPnpHandler Default Leave DefaultPnpHandler Default Enter GuidOpenPnp Default PNP Request (IRP_MN_FILTER_RESOURCE_REQUIREMENTS)修改I/O資源需求列表 Default Enter DefaultPnpHandler Default Leave DefaultPnpHandler Default Leave GuidOpenPnp Default Enter GuidOpenPnp Default PNP Request (IRP_MN_START_DEVICE)配置并初始化設備 Default Enter HandleStartDevice Default Enter DefaultPnpHandler Default Leave DefaultPnpHandler Default Leave HandleStartDevice Default Leave GuidOpenPnp Default Enter GuidOpenPnp Default PNP Request (IRP_MN_QUERY_CAPABILITIES)取設備能力 Default Enter DefaultPnpHandler Default Leave DefaultPnpHandler Default Leave GuidOpenPnp Default Enter GuidOpenPnp Default PNP Request (IRP_MN_QUERY_PNP_DEVICE_STATE)取設備狀態(tài) Default Enter DefaultPnpHandler Default Leave DefaultPnpHandler Default Leave GuidOpenPnp Default Enter GuidOpenPnp D
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1