Compartilhar via


Regra InitFreeNull (kmdf)

A regra InitFreeNull especifica que os DDIs que recebem PWDFDEVICE_INIT como parâmetro não podem ser chamados usando um ponteiro NULL para uma estrutura WDFDEVICE_INIT .

Os métodos fornecidos pela estrutura inicializam a estrutura WDFDEVICE_INIT . Quando o driver chama WdfDeviceCreate para criar um FDO (objeto de dispositivo funcional) ou um PDO (objeto de dispositivo físico), o método WdfDeviceCreate define o primeiro parâmetro como NULL se ele for bem-sucedido.

Se o driver encontrar um erro ao chamar um método de inicialização de objeto de dispositivo ou WdfDeviceCreate, o driver deverá chamar WdfDeviceInitFree. Após uma chamada bem-sucedida para WdfDeviceInitFree, você deve definir o ponteiro para a estrutura WDFDEVICE_INIT como NULL (PWDFDEVICE_INIT=NULL).

Modelo de driver: KMDF

Como testar

Em tempo de compilação

Execute o Verificador de Driver Estático e especifique a regra InitFreeNull .

Use as seguintes etapas para executar uma análise do código:
  1. Prepare seu código (use declarações de tipo de função).
  2. Execute o Verificador de Driver Estático.
  3. Exiba e analise os resultados.

Para obter mais informações, consulte Usando o verificador de driver estático para localizar defeitos em drivers.

Aplica-se a

WdfDeviceCreateWdfDeviceInitAssignNameWdfDeviceInitAssignSDDLStringWdfDeviceInitAssignWdmIrpPreprocessCallbackWdfDeviceInitFreeWdfDeviceInitRegisterPnpStateChangeCallbackWdfDeviceInitRegisterPowerPolicyStateChangeCallbackWdfDeviceInitRegisterPowerStateChangeCallbackWdfPdoInitAddCompatibleIDWdfPdoInitAddDeviceTextWdfPdoInitAddHardwareIDWdfPdoInitAssignDeviceIDWdfPdoInitAssignInstanceIDWdfPdoInitAssignRawDevice

Confira também

InitFreeDeviceCallbackInitFreeDeviceCreateInitFreeDeviceCreateType2PdoInitFreeDeviceCreateType2InitFreeDeviceCreateType4PdoInitFreeDeviceCallbackPdoInitFreeDeviceCreatePdoInitFreeDeviceCreateType4