Metode IWDFDriver::CreateWdfMemory (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 CreateWdfMemory membuat objek memori kerangka kerja dan mengalokasikan, untuk objek memori, buffer data dengan ukuran bukan nol yang ditentukan.
Sintaks
HRESULT CreateWdfMemory(
[in] SIZE_T BufferSize,
[in, optional] IUnknown *pCallbackInterface,
[in, optional] IWDFObject *pParentObject,
[out] IWDFMemory **ppWdfMemory
);
Parameter
[in] BufferSize
Ukuran yang ditentukan bukan nol, dalam byte, data untuk buffer data objek memori WDF yang baru dibuat.
[in, optional] pCallbackInterface
Penunjuk ke antarmuka IUnknown yang digunakan kerangka kerja untuk menentukan fungsi panggilan balik peristiwa terkait objek yang berlangganan driver pada objek memori yang baru dibuat. Parameter ini bersifat opsional. Driver dapat melewati NULL jika driver tidak memerlukan pemberitahuan. Antarmuka IUnknown digunakan untuk pembersihan dan pembuangan objek. 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::OnCleanup driver untuk memberi tahu driver bahwa objek memori dibersihkan.
[in, optional] pParentObject
Penunjuk ke antarmuka IWDFObject untuk objek induk objek memori yang dibuat. Jika NULL, objek driver menjadi induk default.
[out] ppWdfMemory
Penunjuk ke buffer yang menerima penunjuk ke antarmuka IWDFMemory untuk objek memori WDF yang baru dibuat.
Mengembalikan nilai
CreateWdfMemory mengembalikan S_OK jika operasi berhasil. Jika tidak, metode ini mengembalikan salah satu kode kesalahan yang ditentukan dalam Winerror.h.
Keterangan
Metode CreateWdfMemory mengalokasikan buffer ukuran yang ditentukan parameter BufferSize , dan membuat objek memori kerangka kerja yang mewakili buffer.
Jika NULL ditentukan dalam parameter pParentObject , objek driver menjadi objek induk default untuk objek memori yang baru dibuat. Jika driver UMDF membuat objek memori yang digunakan driver dengan objek perangkat tertentu, objek permintaan, atau objek kerangka kerja lainnya, driver harus mengatur objek induk objek memori dengan tepat. Ketika objek induk dihapus, objek memori dan buffernya dihapus.
Driver UMDF juga dapat menghapus objek memori dan buffernya dengan memanggil IWDFObject::D eleteWdfObject.
Driver UMDF tidak dapat membuat objek memori dengan buffer ukuran yang ditentukan nol. Jika driver harus menggunakan buffer ukuran yang ditentukan nol, driver harus menggunakan objek memori NULL sebagai gantinya. Misalnya, jika driver harus menggunakan buffer ukuran yang ditentukan nol dalam permintaan baca, driver harus meneruskan NULL ke parameter pOutputMemory dalam panggilan ke metode IWDFIoTarget::FormatRequestForRead .
Contoh
Contoh kode berikut menunjukkan cara membuat objek memori yang dapat menyimpan informasi yang dibaca dari titik akhir USB.
HRESULT
CUmdfHidDevice::PrepareReader(
VOID
)
{
CComPtr<IWDFDevice> wdfDevice;
CComPtr<IWDFDriver> wdfDriver;
CComPtr<IWDFIoRequest> wdfRequest;
HRESULT hr;
GetWdfDevice(&wdfDevice);
wdfDevice->GetDriver(&wdfDriver);
// Open the interrupt pipe.
hr = m_HidInterface->RetrieveUsbPipeObject(
USB_HID_INTERRUPT_PIPE_INDEX,
&m_InterruptPipe
);
// Allocate a memory object to hold information that
// is read from the interrupt pipe.
// This memory object will be reused.
if (SUCCEEDED(hr))
{
hr = wdfDriver->CreateWdfMemory(m_ReadBufferSize,
NULL,
wdfDevice,
&m_ReadMemory);
}
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
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