【发布时间】:2018-11-30 08:40:21
【问题描述】:
我在用户空间有这种结构:
struct foo {
int* a;
int aSize;
int* b;
int bSize;
};
我通过为指针分配内存来初始化指针。
在 Windows 内核中,我在 IOCTL、IRP_DEVICE_CONTROL 中取消引用此结构:
PVOID inBuf, outBuf; // pointer to struct
inBuf = pIoStackLocation->Parameters.DeviceIoControl.Type3InputBuffer;
inBufLength = pIoStackLocation->Parameters.DeviceIoControl.InputBufferLength;
然后锁定该内存,以便我可以从内核访问。问题是,如何使用指针指向内存的结构的深层副本,就目前而言,如果我只是发送带有指针的结构,指针指向的内存不会发送到内核,所以我不能锁定它们.我希望能够在结构内部动态分配指针,然后让内核使用它们。
【问题讨论】: