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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk