다음을 통해 공유


드라이버에 대한 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;

Windows 드라이버용 SAL 2.0 주석