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)

另請參閱

UNICODE_STRING

WdfDeviceCreateDeviceInterface