DMA ハンドルは、そのあとに割り当てられる DMA リソースへの参照として使用される不透明なオブジェクトです。DMA ハンドルは通常、ddi_dma_alloc_handle(9F) を使用する、ドライバの attach() エントリポイントで割り当てられます。ddi_dma_alloc_handle() 関数は、dip によって参照されるデバイス情報と、ddi_dma_attr (9S) 構造体によってパラメータとして記述されたデバイスの DMA 属性を取得します。ddi_dma_alloc_handle() 関数の構文は次のとおりです。
int ddi_dma_alloc_handle(dev_info_t *dip, ddi_dma_attr_t *attr, int (*callback)(caddr_t), caddr_t arg, ddi_dma_handle_t *handlep);
ここでは:
デバイスの dev_info 構造体へのポインタ。
ddi_dma_attr (9S) 構造体へのポインタです (DMA Attributes を参照)。
リソース割り当てエラーに対処するためのコールバック関数のアドレスです。
コールバック関数に渡される引数です。
返されたハンドルを格納するための DMA ハンドルへのポインタです。