Делал всё по примерам NTDDK 4.0, пересылка идет макросом WRITE_PORT_UCHAR.
Вкратце вся ISR состоит из:
pFrom = (FREQ_STRUCT *)extension->pAdr;
for(i=0; i<2048; i++) {
// средний байт в 0-й порт
WRITE_PORT_UCHAR((PUCHAR)((ULONG)extension->PortBase + 0x00),(UCHAR)pFrom->byte_med);
// старший байт в 1-й порт
WRITE_PORT_UCHAR((PUCHAR)((ULONG)extension->PortBase + 0x01), (UCHAR)pFrom->byte_hi);
// младший байт во 2-й порт
WRITE_PORT_UCHAR((PUCHAR)((ULONG)extension->PortBase + 0x02), (UCHAR)pFrom->byte_lo);
pFrom++;
}