InitFreeNull ルール (kmdf)

InitFreeNull ルールは、パラメーターとして PWDFDEVICE\_INIT を受け取る DDI を WDFDEVICE_INIT 構造体に対する NULL ポインターを使用して呼び出すことができないことを指定します。

フレームワークによって提供されるメソッドは、WDFDEVICE_INIT 構造体を初期化します。 ドライバーが WdfDeviceCreate を呼び出して機能デバイス オブジェクト (FDO) または物理デバイス オブジェクト (PDO) を作成すると、WdfDeviceCreate メソッドが成功した場合、最初のパラメーターを NULL に設定します。

ドライバーがデバイス オブジェクトの初期化メソッドまたは WdfDeviceCreate を呼び出すときにエラーが発生した場合、ドライバーは WdfDeviceInitFree を呼び出す必要があります。 WdfDeviceInitFree への呼び出しが成功したら、WDFDEVICE_INIT 構造体へポインターを NULL (PWDFDEVICE_INIT=NULL) に設定する必要があります。

ドライバーモデル: KMDF

テスト方法

コンパイル時

静的ドライバー検証ツール を実行し、InitFreeNull ルールを指定します。

コードの分析を実行するには、次の手順に従います。
  1. コードを準備します (ロール型宣言を使用します)。
  2. 静的ドライバー検証ツールを実行します。
  3. 結果を表示および分析します。

詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。

適用対象

WdfDeviceCreateWdfDeviceInitAssignNameWdfDeviceInitAssignSDDLStringWdfDeviceInitAssignWdmIrpPreprocessCallbackWdfDeviceInitFreeWdfDeviceInitRegisterPnpStateChangeCallbackWdfDeviceInitRegisterPowerPolicyStateChangeCallbackWdfDeviceInitRegisterPowerStateChangeCallbackWdfPdoInitAddCompatibleIDWdfPdoInitAddDeviceTextWdfPdoInitAddHardwareIDWdfPdoInitAssignDeviceIDWdfPdoInitAssignInstanceIDWdfPdoInitAssignRawDevice

関連項目

InitFreeDeviceCallbackInitFreeDeviceCreateInitFreeDeviceCreateType2PdoInitFreeDeviceCreateType2InitFreeDeviceCreateType4PdoInitFreeDeviceCallbackPdoInitFreeDeviceCreatePdoInitFreeDeviceCreateType4