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 |