IWDFFile::RetrieveFileName 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 上對 UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱 開始使用 UMDF。]
RetrieveFileName 方法會擷取與基礎內核模式裝置相關聯的檔案完整名稱。
語法
HRESULT RetrieveFileName(
[out] PWSTR pFileName,
[in, out] DWORD *pdwFileNameLengthInChars
);
參數
[out] pFileName
呼叫端提供的緩衝區指標,會接收 NULL終止字串,代表與基礎內核模式裝置相關聯的檔案完整名稱,如果提供的指標不是非NULL,且 RetrieveFileName 成功。
[in, out] pdwFileNameLengthInChars
呼叫端提供的變數指標,接收 pFileName 指向之完整檔名的大小,以字元為單位。 如果位於 pFileName 的緩衝區是非NULL,則架構會傳回檔名字符串的大小,以字元為單位。
在輸入時,驅動程式會將此變數設定為 pFileName 指向之緩衝區的大小,以字元為單位。 如果驅動程式針對 pFileName 提供 NULL,而 pdwFileNameLengthInChars 指向的變數,架構會將變數設定為檔名字符串所需的大小。
傳回值
RetrieveFileName 會針對下列案例傳回S_OK:
- pFileName 參數所指向的緩衝區是非NULL,而且足以容納名稱字串,包括 NULL 字元,而且架構已成功將字符串複製到提供的緩衝區,並將 pdwFileNameLengthInChars 參數所指向的變數設定為字元串中的字元數。
- pFileName 的緩衝區是 NULL,驅動程式會將變數預設為 pdwFileNameLengthInChars 為 0,而架構會將變數設定為 pdwFileNameLengthInChars 為字元串所需的字元數。
RetrieveFileName 也可能傳回其他 HRESULT 值。
言論
您的驅動程式可能會從其 IQueueCallbackCreate::OnCreateFile 回呼函式呼叫 RetrieveFileName。 如需詳細資訊,請參閱在 UMDF 驅動程式中使用裝置介面 。
例子
下列程式代碼範例示範如何擷取檔名。
ULONG fileNameCch = 0;
PWSTR fileName = NULL;
ULONG index;
CComObject<CUmdfHidFile> *file = NULL;
HRESULT hr;
// Get the length of the file name to allocate a buffer.
hr = WdfFile->RetrieveFileName(NULL, &fileNameCch);
//
// Allocate the buffer.
//
if (SUCCEEDED(hr))
{
fileName = new WCHAR[fileNameCch];
if (fileName == NULL)
{
hr = E_OUTOFMEMORY;
}
}
//
// Get the file name.
//
if (SUCCEEDED(hr))
{
hr = WdfFile->RetrieveFileName(fileName, &fileNameCch);
}
要求
要求 | 價值 |
---|---|
終止支援 | UMDF 2.0 和更新版本中無法使用。 |
目標平臺 | 桌面 |
最低 UMDF 版本 | 1.5 |
標頭 | wudfddi.h (包括 Wudfddi.h) |
DLL | WUDFx.dll |