次の方法で共有


ドライバーの DO_DEVICE_INITIALIZING 注釈

_Kernel_clear_do_init_ 注釈を使用して、注釈付きの関数がデバイス オブジェクトの Flags フィールドの DO_DEVICE_INITIALIZING ビットをクリアすることが期待されるかどうかを指定します。

この注釈の構文は次のとおりです。

_Kernel_clear_do_init_(yes|no)

_Kernel_clear_do_init_(yes) で注釈が付けられた関数を呼び出すと、呼び出し元の関数は DO_DEVICE_INITIALIZING ビットをクリアする必要がなくなりなす。

注釈が関数型定義に適用されない限り、関数が成功を返すときは、ほとんどの場合、注釈を条件付きコンテキストで使用する必要があります。 たとえば、DRIVER_ADD_DEVICE 関数クラスの次の関数型定義では、注釈は、関数が IRQL を引き上げられないこと、および関数が DO_DEVICE_INITIALIZING ビットをクリアすることが期待されることを指定します。

typedef
_IRQL_always_function_max_(PASSIVE_LEVEL)
_IRQL_requires_same_
_Kernel_clear_do_init_(yes)
__drv_functionClass(DRIVER_ADD_DEVICE)
NTSTATUS
DRIVER_ADD_DEVICE (
    _In_ struct _DRIVER_OBJECT *DriverObject,
    _In_ struct _DEVICE_OBJECT *PhysicalDeviceObject
    );
typedef DRIVER_ADD_DEVICE *PDRIVER_ADD_DEVICE;

Windows ドライバーの SAL 2.0 注釈