Bagikan melalui


Metode IWDFIoRequest2::GetSetInformationParameters (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 GetSetInformationParameters mengambil parameter yang terkait dengan permintaan I/O jenis WdfRequestSetInformation.

Sintaks

void GetSetInformationParameters(
  [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 GetSetInformationParameters untuk mendapatkan parameter yang terkait dengan permintaan I/O, jika jenis permintaannya adalah WdfRequestSetInformation. Parameter pInformationClass mengidentifikasi jenis informasi file yang harus diatur driver, dan parameter pSizeInBytes menentukan ukuran buffer yang berisi informasi. Driver dapat memanggil IWDFIoRequest2::RetrieveInputBuffer untuk mendapatkan alamat buffer.

Driver Anda harus memverifikasi bahwa ukuran buffer yang ditentukan cukup besar untuk memuat informasi file yang harus disetel driver.

Contoh

Contoh kode berikut adalah bagian dari fungsi panggilan balik IQueueCallbackDefaultIoHandler::OnDefaultIoHandler . Jika fungsi panggilan balik menerima permintaan informasi yang ditetapkan, fungsi akan mengambil parameter permintaan. Jika driver mendukung jenis informasi yang ditentukan, driver menyalin informasi dari buffer input 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->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:
...
}

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::GetQueryInformationParameters