驅動程式的 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
...