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 |