다음을 통해 공유


드라이버에 대한 DMA IO 잘못된 _Kernel_IoGetDmaAdapter_ 주석

_Kernel_IoGetDmaAdapter_ 주석을 사용하여 코드 분석 도구에 DMA 포인터의 오용을 찾도록 지시합니다.

함수가 _Kernel_IoGetDmaAdapter_ 주석으로 주석이 추가된 인터페이스를 호출하는 경우 함수가 성공할 때까지 다시 시도되도록 재시도 논리가 있어야 합니다.

IoGetDmaAdapter 루틴은 요청된 레지스터 수보다 적은 수를 반환할 수 있으며 호출자는 요청된 번호가 아닌 실제 번호를 사용하여 진행해야 합니다.

_Must_inspect_result_
_IRQL_requires_max_(PASSIVE_LEVEL)
NTKERNELAPI
struct _DMA_ADAPTER *
IoGetDmaAdapter(
    _In_opt_ PDEVICE_OBJECT PhysicalDeviceObject,           // required for PnP drivers
    _In_ struct _DEVICE_DESCRIPTION *DeviceDescription,
    _Out_ _When_(return!=0, _Kernel_IoGetDmaAdapter_ _At_(*NumberOfMapRegisters, _Must_inspect_result_))
    PULONG NumberOfMapRegisters

...

Windows 드라이버용 SAL 2.0 주석