C28128
предупреждение C28128: доступ к полю был сделан напрямую. Это должно быть сделано рутиной.
Драйвер напрямую обращается к члену структуры, доступ к которому должен осуществляться только с помощью специализированных функций.
Например, вместо непосредственного изменения элемента CancelRoutine структуры IRP следует использовать IoSetCancelRoutine.
Пример
В следующем примере кода показано это предупреждение.
irp->CancelRoutine = myCancelRoutine;
Следующий пример кода позволяет избежать этого предупреждения.
oldCancel = IoSetCancelRoutine(irp, myCancelRoutine);