Partager via


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;

Annotations SAL 2.0 pour les pilotes Windows