DO_DEVICE_INITIALIZING anotación para controladores

Use la anotación _Kernel_clear_do_init_ para especificar si se espera que la función anotada borre el bit DO_DEVICE_INITIALIZING en el campo Marcas del objeto de dispositivo.

Esta anotación tiene la siguiente sintaxis:

_Kernel_clear_do_init_(yes|no)

Llamar a una función anotada con _Kernel_clear_do_init_(sí) exime a la función de llamada de tener que borrar el bit de DO_DEVICE_INITIALIZING.

La anotación casi siempre debe usarse en un contexto condicional cuando la función devuelve éxito, a menos que la anotación se aplique a una definición de tipo de función. Por ejemplo, en la siguiente definición de tipo de función para la clase de función DRIVER_ADD_DEVICE, las anotaciones especifican que la función no puede generar irQL y que se espera que la función borre el bit de 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;

Anotaciones SAL 2.0 para controladores de Windows