Я пробовал подключаться таким образом int main(int argc, char* argv[]) { // main char BufferToTrans[MAX_TRANSFER]; DWORD dwBytesWritten; int a; HANDLE hDevice = CreateFile("\\\\.\\Something", 0,0,NULL, OPEN_EXISTING, 0,NULL); if (hDevice == INVALID_HANDLE_VALUE) { printf("Unable to open Something device - Error %d\n", GetLastError()); return 1; } ... } Но что бы я не ставил заместо Something мне все время пишет что не может найти такой файл. Вроде если драйвер есть в стеке драйверов то он должен спокойно вызываться с помощью этой функции, но почему то не находиться! В чем проблема? Есть другие варианты? Правда более сложные не осилю , если даже этот не выходит..
"\\\\.\\Something" превратится в имя символьной ссылки "\\??\\Something". Для начала надо убедится, что такая символьная ссылка существует. Под NT линейкой проще всего это сделать с помощью WinObjEx (есть на этом сайте): в диалоге поиска ограничить поиск по объектам SymbolicLink и набрать Something. Если такая ссылка есть, то желательно явно определить параметры dwDesiredAccess и dwShareMode иначе запрос эксклюзивного доступа может быть отклонён. Если всё равно случается облом, то смотреть код ошибки. Если ERROR_ACCESS_DENIED, то значит драйвер отклоняет запрос на открытие по какой-то причине. Вот это должно работать точно: Код (Text): CreateFile( "\\\\.\\A:", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL );