IWDFIoRequest2::GetQueryInformationParameters 方法 (wudfddi.h)
[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,且較新版本的 Windows 10 上,UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用 UMDF 使用者入門。]
GetQueryInformationParameters 方法會擷取與 WdfRequestQueryInformation 類型 I/O 要求相關聯的參數。
語法
void GetQueryInformationParameters(
[out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
[out, optional] SIZE_T *pSizeInBytes
);
參數
[out, optional] pInformationClass
驅動程式配置變數的指標,可接收 WDF_FILE_INFORMATION_CLASS型別值。 此指標是選擇性的,而且可以是 NULL。
[out, optional] pSizeInBytes
驅動程式配置的變數指標,可接收檔案資訊的大小,以位元組為單位。 此指標是選擇性的,而且可以是 NULL。
傳回值
無
備註
如果要求類型為 WdfRequestQueryInformation,驅動程式可以呼叫 GetQueryInformationParameters 來取得與 I/O 要求相關聯的參數。 pInformationClass 參數會識別驅動程式應該提供的檔類型資訊,而 pSizeInBytes 參數會指定將接收資訊的緩衝區大小。 驅動程式可以呼叫 IWDFIoRequest2::RetrieveOutputBuffer 來取得緩衝區位址。
您的驅動程式必須確認指定的緩衝區大小夠大,才能接收要求的檔案資訊。
範例
下列程式代碼範例是 IQueueCallbackDefaultIoHandler::OnDefaultIoHandler 回呼函式的一部分。 如果回呼函式收到查詢資訊要求,它會擷取要求的參數。 如果驅動程式支援指定的資訊類型,它會將資訊複製到要求的輸出緩衝區。
void
CMyQueue::OnDefaultIoHandler(
IWDFIoQueue* pQueue,
IWDFIoRequest* pRequest
)
{
HRESULT hr;
WDF_FILE_INFORMATION_CLASS infoClass;
SIZE_T bufSize;
PFILE_BASIC_INFORMATION buffer;
if (WdfRequestQueryInformation==pRequest->GetType())
{
//
// Declare an IWDFIoRequest2 interface pointer and obtain the
// IWDFIoRequest2 interface from the IWDFIoRequest interface.
//
CComQIPtr<IWDFIoRequest2> r2 = pRequest;
//
// Get the I/O request's parameters.
//
r2->GetQueryInformationParameters(&infoClass,
&bufSize);
//
// This driver supports only FileBasicInformation.
//
if (infoClass != FileBasicInformation)
{
hr = HRESULT_FROM_NT(STATUS_NOT_SUPPORTED);
goto exit;
}
//
// Validate buffer size.
//
if (bufferCb != sizeof(FILE_BASIC_INFORMATION))
{
hr = HRESULT_FROM_NT(STATUS_BUFFER_TOO_SMALL);
goto exit;
}
//
// Get output buffer.
//
hr = r2->RetrieveOutputBuffer(sizeof(FILE_BASIC_INFORMATION),
(PVOID*) &buffer,
&bufferCb);
if (SUCCEEDED(hr))
{
//
// Copy file information to output buffer.
//
CopyMemory(buffer,
&g_FileInfo,
sizeof(FILE_BASIC_INFORMATION));
r2->SetInformation(sizeof(FILE_BASIC_INFORMATION));
}
...
}
...
exit:
...
}
規格需求
需求 | 值 |
---|---|
終止支援 | 在 UMDF 2.0 和更新版本中無法使用。 |
目標平台 | 桌面 |
最低UMDF版本 | 1.9 |
標頭 | wudfddi.h (包含 Wudfddi.h) |
Dll | WUDFx.dll |