Код: Выделить всё
HANDLE gHandle = CreateFileA("\\\\.\\DriverFile",
GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
...
DeviceIoControl(gHandle, MY_MSG_ID, NULL, 0, &refCount,
sizeof(refCount), &length, NULL);
...
CloseHandle(gHandle);
Один из способов реализовать это — обработать IRP_MJ_CREATE/IRP_MJ_CLOSE на стороне драйвера и сохранить подсчет рефов вручную; затем использование некоторого сообщения в клиентском коде драйвера может получить счетчик. Есть ли способ сделать это без внесения изменений в драйвер?
Подробнее здесь: https://stackoverflow.com/questions/790 ... on-windows