DO_DEVICE_INITIALIZING annotazione per i driver

Usare l'annotazione _Kernel_clear_do_init_ per specificare se la funzione annotata deve cancellare il bit di DO_DEVICE_INITIALIZING nel campo Flags dell'oggetto dispositivo.

Questa annotazione ha la sintassi seguente:

_Kernel_clear_do_init_(yes|no)

La chiamata a una funzione annotata con _Kernel_clear_do_init_(sì) esenta dalla funzione chiamante dalla necessità di cancellare il bit di DO_DEVICE_INITIALIZING.

L'annotazione deve essere usata quasi sempre in un contesto condizionale quando la funzione restituisce esito positivo, a meno che l'annotazione non venga applicata a una definizione del tipo di funzione. Ad esempio, nella definizione del tipo di funzione seguente per la classe di funzione DRIVER_ADD_DEVICE, le annotazioni specificano che la funzione non può generare irQL e che la funzione deve cancellare il bit 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;

Annotazioni SAL 2.0 per i driver Windows