Metode IWDFDevice::CreateRequest (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 CreateRequest membuat objek permintaan yang tidak diformat.
Sintaks
HRESULT CreateRequest(
[in, optional] IUnknown *pCallbackInterface,
[in, optional] IWDFObject *pParentObject,
[out] IWDFIoRequest **ppRequest
);
Parameter
[in, optional] pCallbackInterface
Penunjuk ke antarmuka IUnknown yang digunakan kerangka kerja untuk menentukan fungsi panggilan balik peristiwa terkait objek yang berlangganan driver pada objek permintaan yang baru dibuat. Parameter ini bersifat opsional. Driver dapat melewati NULL jika driver tidak memerlukan pemberitahuan. Jika driver melewati pointer yang valid, kerangka kerja akan memanggil QueryInterface pada antarmuka IUnknown untuk antarmuka IObjectCleanup . Jika kerangka kerja mendapatkan antarmuka IObjectCleanup driver, kerangka kerja kemudian dapat memanggil metode IObjectCleanup driver::OnCleanup untuk memberi tahu driver bahwa objek permintaan dibersihkan.
[in, optional] pParentObject
Penunjuk ke antarmuka IWDFObject untuk objek induk dari objek permintaan I/O yang dibuat. Jika NULL, objek perangkat menjadi induk default.
[out] ppRequest
Pointer ke variabel yang menerima pointer ke antarmuka IWDFIoRequest untuk objek permintaan baru.
Mengembalikan nilai
CreateRequest mengembalikan S_OK jika operasi berhasil. Jika tidak, metode ini mengembalikan salah satu kode kesalahan yang didefinisikan dalam Winerror.h.
Keterangan
Sebelum driver UMDF menggunakan objek permintaan yang dibuat CreateRequest , driver harus memformat objek permintaan. Untuk memformat objek permintaan I/O, driver memanggil salah satu metode berikut:
Jika NULL ditentukan dalam parameter pParentObject , objek perangkat menjadi objek induk default untuk objek permintaan I/O yang baru dibuat. Jika driver UMDF membuat objek permintaan I/O yang digunakan driver dengan objek antrean I/O tertentu atau objek permintaan I/O lainnya, driver harus mengatur antrean atau objek permintaan tersebut sebagai objek induk objek permintaan yang dibuat. Ketika objek induk dihapus, objek permintaan yang dibuat akan dihapus.
Contoh
Contoh kode berikut menunjukkan cara membuat permintaan, memformat permintaan untuk membaca, dan mengirim permintaan.
HRESULT
CUmdfHidDevice::SendInterruptPipeRead(
VOID
)
{
CComPtr<IWDFDevice> wdfDevice;
HRESULT hr;
IWDFFile *pTargetFile = NULL;
// Allocate a new WDF request to send on the interrupt pipe.
GetWdfDevice(&wdfDevice);
hr = wdfDevice->CreateRequest(
static_cast<IObjectCleanup*>(this),
wdfDevice,
&m_InterruptReadRequest
);
if (SUCCEEDED(hr))
{
m_InterruptPipe->GetTargetFile(&pTargetFile);
hr = m_InterruptPipe->FormatRequestForRead(
m_InterruptReadRequest,
pTargetFile,
m_ReadMemory,
NULL,
NULL
);
}
// Issue the read to the pipe.
if (SUCCEEDED(hr))
{
hr = m_InterruptReadRequest->Send(m_InterruptPipe, 0, 0);
}
return hr;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Akhir dukungan | Tidak tersedia di UMDF 2.0 dan yang lebih baru. |
Target Platform | Desktop |
Versi UMDF minimum | 1,5 |
Header | wudfddi.h (termasuk Wudfddi.h) |
DLL | WUDFx.dll |
Lihat juga
IWDFIoTarget::FormatRequestForIoctl
IWDFIoTarget::FormatRequestForRead
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