Bagikan melalui


Metode IWDFIoRequest2::GetQueryInformationParameters (wudfddi.h)

[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]

Metode GetQueryInformationParameters mengambil parameter yang terkait dengan permintaan I/O yang diketik WdfRequestQueryInformation.

Sintaks

void GetQueryInformationParameters(
  [out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
  [out, optional] SIZE_T                     *pSizeInBytes
);

Parameter

[out, optional] pInformationClass

Penunjuk ke variabel yang dialokasikan driver yang menerima nilai yang WDF_FILE_INFORMATION_CLASS ketik. Penunjuk ini bersifat opsional dan dapat berupa NULL.

[out, optional] pSizeInBytes

Penunjuk ke variabel yang dialokasikan driver yang menerima ukuran, dalam byte, dari informasi file. Penunjuk ini bersifat opsional dan dapat berupa NULL.

Nilai kembali

Tidak ada

Keterangan

Driver Anda dapat memanggil GetQueryInformationParameters untuk mendapatkan parameter yang terkait dengan permintaan I/O, jika jenis permintaannya adalah WdfRequestQueryInformation. Parameter pInformationClass mengidentifikasi jenis informasi file yang harus disediakan driver, dan parameter pSizeInBytes menentukan ukuran buffer yang akan menerima informasi. Driver dapat memanggil IWDFIoRequest2::RetrieveOutputBuffer untuk mendapatkan alamat buffer.

Driver Anda harus memverifikasi bahwa ukuran buffer yang ditentukan cukup besar untuk menerima informasi file yang diminta.

Contoh

Contoh kode berikut adalah bagian dari fungsi panggilan balik IQueueCallbackDefaultIoHandler::OnDefaultIoHandler . Jika fungsi panggilan balik menerima permintaan informasi kueri, fungsi tersebut mengambil parameter permintaan. Jika driver mendukung jenis informasi yang ditentukan, driver menyalin informasi ke dalam buffer output permintaan.

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:
...
}

Persyaratan

Persyaratan Nilai
Akhir dukungan Tidak tersedia di UMDF 2.0 dan yang lebih baru.
Target Platform Desktop
Versi UMDF minimum 1.9
Header wudfddi.h (termasuk Wudfddi.h)
DLL WUDFx.dll

Lihat juga

IWDFIoRequest2

IWDFIoRequest2::GetSetInformationParameters