驅動程式的DO_DEVICE_INITIALIZING批注
使用_Kernel_clear_do_init_註釋來指定批註函式是否預期會清除裝置物件的 Flags 欄位中的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;