共用方式為


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 要求相關聯的參數,如果要求類型為 WdfRequestSetInformationpInformationClass 參數會識別驅動程式應該設定的檔案信息類型,而 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

另請參閱

IWDFIoRequest2

IWDFIoRequest2::GetQueryInformationParameters