Metode IWDFIoTarget2::FormatRequestForQueryInformation (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 FormatRequestForQueryInformation memformat permintaan I/O untuk mendapatkan informasi tentang file, tetapi tidak mengirim permintaan ke target I/O.
Sintaks
HRESULT FormatRequestForQueryInformation(
[in] IWDFIoRequest *pRequest,
[in] WDF_FILE_INFORMATION_CLASS InformationClass,
[in, optional] IWDFFile *pFile,
[in, optional] IWDFMemory *pInformationMemory,
[in, optional] PWDFMEMORY_OFFSET pInformationMemoryOffset
);
Parameter
[in] pRequest
Penunjuk ke antarmuka IWDFIoRequest dari objek permintaan yang mewakili permintaan I/O.
[in] InformationClass
Nilai jenis WDF_FILE_INFORMATION_CLASS yang menentukan jenis informasi yang akan diperoleh.
[in, optional] pFile
Penunjuk ke antarmuka IWDFFile dari objek file yang terkait dengan permintaan I/O. Parameter ini diperlukan untuk target I/O lokal dan jarak jauh, dan bersifat opsional (dapat berupa NULL) untuk target I/O handel file.
[in, optional] pInformationMemory
Penunjuk ke antarmuka IWDFMemory dari objek memori. Objek ini mewakili buffer output, yang menerima informasi file yang ditentukan parameter InformationClass . Parameter ini bersifat opsional dan dapat berupa NULL.
[in, optional] pInformationMemoryOffset
Penunjuk ke struktur WDFMEMORY_OFFSET yang memasok offset byte opsional dan nilai panjang. Kerangka kerja menggunakan nilai-nilai ini untuk menentukan alamat dan panjang awal, dalam buffer output, untuk transfer data. Jika pointer ini ADALAH NULL, transfer data dimulai di awal buffer output, dan ukuran transfer adalah ukuran buffer.
Nilai kembali
FormatRequestForQueryInformation mengembalikan S_OK jika operasi berhasil. Jika tidak, metode mungkin mengembalikan nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Kerangka kerja tidak dapat mengalokasikan memori. |
Metode ini mungkin mengembalikan salah satu nilai lain yang dikandung Winerror.h.
Keterangan
Gunakan metode FormatRequestForQueryInformation , diikuti oleh metode IWDFIoRequest::Send , untuk mengirim permintaan baik secara sinkron atau asinkron ke target I/O.
Contoh
Contoh kode berikut adalah bagian dari fungsi panggilan balik IQueueCallbackDefaultIoHandler::OnDefaultIoHandler . Jika fungsi panggilan balik menerima permintaan informasi kueri, fungsi tersebut mengirimkan permintaan ke target I/O default perangkat.
void
CMyQueue::OnDefaultIoHandler(
IWDFIoQueue* pQueue,
IWDFIoRequest* pRequest
)
{
HRESULT hr;
IWDFDevice *pDevice;
IWDFIoTarget *pTarget;
IWDFFile *pFile;
IWDFMemory *pOutMemory;
WDF_FILE_INFORMATION_CLASS infoClass;
//
// Obtain the device, default I/O target, and file object.
//
pQueue->GetDevice(&pDevice);
pDevice->GetDefaultIoTarget(&pTarget);
pRequest->GetFileObject(&pFile);
if (WdfRequestQueryInformation==pRequest->GetType())
{
//
// Declare an IWDFIoRequest2 interface pointer and obtain the
// IWDFIoRequest2 interface from the IWDFIoRequest interface.
//
CComQIPtr<IWDFIoRequest2> r2 = pRequest;
//
// Declare an IWDFIoTarget2 interface pointer and obtain the
// IWDFIoTarget2 interface from the IWDFIoTarget interface.
//
CComQIPtr<IWDFIoTarget2> target2(pTarget);
//
// Get the I/O request's output buffer.
//
hr = pWdfRequest2->RetrieveOutputMemory(&pOutMemory);
if (!SUCCEEDED(hr)) goto Error;
//
// Get the I/O request's parameters.
//
hr = pWdfRequest2->GetQueryInformationParameters(&infoClass,
NULL);
if (!SUCCEEDED(hr)) goto Error;
//
// Format a query information request and send it to the I/O target.
//
hr = target2->FormatRequestForQueryInformation(pRequest,
infoClass,
pFile,
pOutMemory,
NULL);
if (!SUCCEEDED(hr)) goto Error;
hr = pRequest->Send(pTarget,
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,
0);
}
...
Error;
//
// Release objects.
//
SAFE_RELEASE(pDevice);
SAFE_RELEASE(pTarget);
SAFE_RELEASE(pFile);
SAFE_RELEASE(pOutMemory);
}
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