C28128

warning C28128: An access to a field has been made directly. It should be made by a routine.

The driver directly accessed a structure member that should be accessed only by using specialized functions.

For example, you should use the IoSetCancelRoutine instead of directly modifying the CancelRoutine member of the IRP structure.

Example

The following code example elicits this warning.

irp->CancelRoutine = myCancelRoutine;

The following code example avoids this warning.

oldCancel = IoSetCancelRoutine(irp, myCancelRoutine);