IWDFIoRequest2::GetSetInformationParameters 方法 (wudfddi.h)
[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 未將新功能新增至 UMDF 1,且較新版本的 #D749CB444EA4445E0BA464C28AE7FBF2B 上不支援 UMDF 1。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用 UMDF 使用者入門。]
GetSetInformationParameters 方法會擷取與 WdfRequestSetInformation 類型 I/O 要求相關聯的參數。
語法
void GetSetInformationParameters(
[out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
[out, optional] SIZE_T *pSizeInBytes
);
參數
[out, optional] pInformationClass
接收 WDF_FILE_INFORMATION_CLASS型別值的驅動程式配置變數指標。 此指標是選擇性的,可以是 NULL。
[out, optional] pSizeInBytes
驅動程式配置的變數指標,可接收檔案資訊的大小,以位元組為單位。 此指標是選擇性的,可以是 NULL。
傳回值
無
備註
如果您的驅動程式可以呼叫 GetSetInformationParameters ,以取得與 I/O 要求相關聯的參數,如果要求類型為 WdfRequestSetInformation。 pInformationClass 參數會識別驅動程式應該設定的檔案信息類型,而 pSizeInBytes 參數會指定包含資訊的緩衝區大小。 驅動程式可以呼叫 IWDFIoRequest2::RetrieveInputBuffer 來取得緩衝區位址。
您的驅動程式必須確認指定的緩衝區大小夠大,足以包含驅動程序必須設定的檔案資訊。
範例
下列程式代碼範例是 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->GetSetInformationParameters(&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 input buffer.
//
hr = r2->RetrieveInputBuffer(sizeof(FILE_BASIC_INFORMATION),
(PVOID*) &buffer,
&bufferCb);
if (SUCCEEDED(hr))
{
//
// Copy file information from input buffer.
//
CopyMemory(&g_FileInfo,
buffer,
sizeof(FILE_BASIC_INFORMATION));
}
...
}
...
exit:
...
}
規格需求
需求 | 值 |
---|---|
終止支援 | UMDF 2.0 和更新版本中無法使用。 |
目標平台 | 桌面 |
最低UMDF版本 | 1.9 |
標頭 | wudfddi.h (包括 Wudfddi.h) |
Dll | WUDFx.dll |