Função WdfDeviceInitFree (wdfdevice.h)
[Aplica-se somente ao KMDF]
O método WdfDeviceInitFree desaloca uma estrutura WDFDEVICE_INIT .
Sintaxe
void WdfDeviceInitFree(
[in] PWDFDEVICE_INIT DeviceInit
);
Parâmetros
[in] DeviceInit
Um ponteiro para uma estrutura WDFDEVICE_INIT .
Retornar valor
Nenhum
Comentários
Se o driver receber uma estrutura WDFDEVICE_INIT de uma chamada para WdfPdoInitAllocate ou WdfControlDeviceInitAllocate e, se o driver encontrar um erro posteriormente ao chamar um método de inicialização de objeto de dispositivo ou WdfDeviceCreate, o driver deverá chamar WdfDeviceInitFree.
Seu driver não deve chamar WdfDeviceInitFree depois de chamar WdfDeviceCreate com êxito .
Seu driver não precisará chamar WdfDeviceInitFree se ele recebeu a estrutura WDFDEVICE_INIT como entrada para sua função de retorno de chamada EvtDriverDeviceAdd , pois a estrutura exclui a estrutura após o retorno da função de retorno de chamada.
Para obter mais informações sobre como chamar WdfDeviceCreate, consulte Criando um objeto de dispositivo framework.
Exemplos
O exemplo de código a seguir chama WdfDeviceInitFree se uma chamada para WdfPdoInitAssignRawDevice falhar.
NTSTATUS status;
status = WdfPdoInitAssignRawDevice(
pDeviceInit,
&GUID_DEVCLASS_KEYBOARD
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
return STATUS;
}
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Cabeçalho | wdfdevice.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.) |
IRQL | <= DISPATCH_LEVEL |
Regras de conformidade de 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) |