Fungsi WdfDeviceInitFree (wdfdevice.h)
[Berlaku untuk KMDF saja]
Metode WdfDeviceInitFree membatalkan struktur WDFDEVICE_INIT .
Sintaks
void WdfDeviceInitFree(
[in] PWDFDEVICE_INIT DeviceInit
);
Parameter
[in] DeviceInit
Penunjuk ke struktur WDFDEVICE_INIT .
Nilai kembali
Tidak ada
Keterangan
Jika driver Anda menerima struktur WDFDEVICE_INIT dari panggilan ke WdfPdoInitAllocate atau WdfControlDeviceInitAllocate, dan jika driver kemudian mengalami kesalahan ketika memanggil metode inisialisasi objek perangkat atau WdfDeviceCreate, driver harus memanggil WdfDeviceInitFree.
Driver Anda tidak boleh memanggil WdfDeviceInitFree setelah berhasil memanggil WdfDeviceCreate .
Driver Anda tidak perlu memanggil WdfDeviceInitFree jika menerima struktur WDFDEVICE_INIT sebagai input ke fungsi panggilan balik EvtDriverDeviceAdd , karena kerangka kerja menghapus struktur setelah fungsi panggilan balik kembali.
Untuk informasi selengkapnya tentang memanggil WdfDeviceCreate, lihat Membuat Objek Perangkat Kerangka Kerja.
Contoh
Contoh kode berikut memanggil WdfDeviceInitFree jika panggilan ke WdfPdoInitAssignRawDevice gagal.
NTSTATUS status;
status = WdfPdoInitAssignRawDevice(
pDeviceInit,
&GUID_DEVCLASS_KEYBOARD
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
return STATUS;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Header | wdfdevice.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.) |
IRQL | <= DISPATCH_LEVEL |
Aturan kepatuhan DDI | DoubleDeviceInitFree(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeDeviceCreateType2(kmdf), InitFreeDeviceCreateType4(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf), PdoInitFreeDeviceCreateType2(kmdf), PdoInitFreeDeviceCreateType4(kmdf) |