Поделиться через


Функция WdfDeviceInitFree (wdfdevice.h)

[Относится только к KMDF]

Метод WdfDeviceInitFree освобождает структуру WDFDEVICE_INIT .

Синтаксис

void WdfDeviceInitFree(
  [in] PWDFDEVICE_INIT DeviceInit
);

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT .

Возвращаемое значение

None

Remarks

Если драйвер получает WDFDEVICE_INIT структуру из вызова WdfPdoInitAllocate или WdfControlDeviceInitAllocate и если впоследствии драйвер обнаруживает ошибку при вызове метода инициализации объекта устройства или WdfDeviceCreate, драйвер должен вызвать WdfDeviceInitFree.

Драйвер не должен вызывать WdfDeviceInitFree после успешного вызова WdfDeviceCreate .

Драйверу не нужно вызывать WdfDeviceInitFree , если он получил структуру WDFDEVICE_INIT в качестве входных данных для функции обратного вызова EvtDriverDeviceAdd , так как платформа удаляет структуру после возврата функции обратного вызова.

Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы.

Примеры

В следующем примере кода вызывается WdfDeviceInitFree , если вызов WdfPdoInitAssignRawDevice завершается ошибкой.

NTSTATUS  status;

status = WdfPdoInitAssignRawDevice(
                                   pDeviceInit,
                                   &GUID_DEVCLASS_KEYBOARD
                                   );
if (!NT_SUCCESS(status)) {
    WdfDeviceInitFree(pDeviceInit);
    pDeviceInit = NULL;
    return STATUS;
}

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки Платформы).
IRQL <= DISPATCH_LEVEL
Правила соответствия 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)

См. также раздел

WdfDeviceCreate