データドライバーをアプリに送信できます。
アプリ内:
DeviceIoControl(dHandle, IOCTL_TEST, (PVOID)InputBuffer, sizeof(InputBuffer), (PVOID)OutputBuffer, sizeof(OutputBuffer), &dwRet, 0);
printf("num : %s\n", OutputBuffer);
ドライバーで:
char pData[1024];
pData="eeee";
case IOCTL_TEST:
pInputBuffer = Irp->AssociatedIrp.SystemBuffer;
pOutputBuffer = Irp->AssociatedIrp.SystemBuffer;
inputBufferLength = pStack->Parameters.DeviceIoControl.OutputBufferLength;
RtlCopyMemory(pOutputBuffer, pData, strlen(pData));
break;
Irp.IoStatus.Information=1024;
結果は"eeee"
アプリケーション コンソールに出力されます。
しかし、アプリのデータをドライバーに送信する方法がわかりません。DeviceIoControl の 3、4 パラメーターは、入力バッファーと長さです。
アプリに追加するchar InputBuffer[1024] = "InputBuffer's data";
と、ドライバーはこのデータをどのように受け取ることができますか? DbgPrint()
アプリから受け取ったデータに使用したい。
答えを選びたい。コメントしないで答えてください。