WdfFileObjectGetFileName 函式 (wdffileobject.h)
[適用於 KMDF 和 UMDF]
WdfFileObjectGetFileName 方法會傳回指定之架構檔案物件所包含的檔名。
語法
PUNICODE_STRING WdfFileObjectGetFileName(
[in] WDFFILEOBJECT FileObject
);
參數
[in] FileObject
架構檔案物件的句柄。
傳回值
WdfFileObjectGetFileName 會傳回包含檔名 之UNICODE_STRING 結構的指標。 如果指定的架構檔案對象沒有 WDM 檔案物件,或是在高於 PASSIVE_LEVEL的 IRQL 呼叫時,此方法會傳回 NULL 。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
如果驅動程式在呼叫 WdfDeviceCreateDeviceInterface 時指定參考字串, WdfFileObjectGetFileName 會傳回反斜杠前面加上的參考字符串。 若要判斷參考字串,請移除反斜杠。
傳回的字串可以包含檔名或參考字串。 字串不包含裝置名稱。 如果應用程式或核心模式元件已開啟裝置,而不是檔案,且沒有參考字串,則傳回之 UNICODE_STRING 結構的 Length 成員為零。
您的驅動程式在處理檔案建立要求時,應該只會呼叫 WdfFileObjectGetFileName (WdfRequestTypeCreate 要求類型) 。 您的驅動程式可能會在 EvtDeviceFileCreate 回呼函式中處理 WdfRequestTypeCreate 類型 I/O 要求。
或者,驅動程式可以呼叫 WdfDeviceConfigureRequestDispatching 來設定 I/O 佇列來接收 WdfRequestTypeCreate 要求類型 (WdfRequestTypeCreate 要求類型) ,而不是提供 EvtDeviceFileCreate 回呼函式。 驅動程式後續會在佇列的 EvtIoDefault 要求處理程式中接收檔案建立要求。
如需架構檔案對象的詳細資訊,請參閱 Framework 檔案物件。
如需檔名的詳細資訊,請參閱 控制裝置命名空間存取。
如需參考字串的詳細資訊,請參閱 IoRegisterDeviceInterface。
範例
下列程式代碼範例示範 EvtDeviceFileCreate 回呼函式如何取得應用程式開啟的檔名。
VOID
MyEvtDeviceFileCreate (
IN WDFDEVICE Device,
IN WDFREQUEST Request,
IN WDFFILEOBJECT FileObject
)
{
PUNICODE_STRING fileName;
fileName = WdfFileObjectGetFileName(FileObject);
...
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最小 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdffileobject.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |