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