annotation DO_DEVICE_INITIALIZING pour les pilotes
Utilisez l’annotation _Kernel_clear_do_init_ pour spécifier si la fonction annotée est censée effacer le bit DO_DEVICE_INITIALIZING dans le champ Indicateurs de l’objet appareil.
Cette annotation a la syntaxe suivante :
_Kernel_clear_do_init_(yes|no)
L’appel d’une fonction annotée avec _Kernel_clear_do_init_(yes) dispense la fonction appelante d’avoir à effacer le bit DO_DEVICE_INITIALIZING.
L’annotation doit presque toujours être utilisée dans un contexte conditionnel lorsque la fonction retourne la réussite, sauf si l’annotation est appliquée à une définition de type de fonction. Par exemple, dans la définition de type de fonction suivante pour la classe de fonction DRIVER_ADD_DEVICE, les annotations spécifient que la fonction ne peut pas déclencher l’IRQL et que la fonction est censée effacer le 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;