заметка DO_DEVICE_INITIALIZING для драйверов

Используйте заметку _Kernel_clear_do_init_, чтобы указать, должна ли функция с заметками очищать бит DO_DEVICE_INITIALIZING в поле Флаги объекта устройства.

Эта заметка имеет следующий синтаксис:

_Kernel_clear_do_init_(yes|no)

Вызов функции, помеченной _Kernel_clear_do_init_(да), исключает необходимость очистки бита 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;

Заметки SAL 2.0 для драйверов Windows