0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 106
1

Передача данных с буфера в программу

08.07.2014, 18:29. Показов 474. Ответов 0
Метки нет (Все метки)

Ребята, у меня есть структура вида:

C
1
2
3
4
5
6
7
8
9
10
typedef struct _SCANNER_NOTIFICATION
{
    //! Real size of the encrypted/decrypted contents.
    ULONG BytesToScan;
    //! Array that are sends data to user mode.
    CHAR Contents[ARRAY_SIZE];
    //! Operation which will be apply to the file.
    INT Action;
 
} SCANNER_NOTIFICATION, *PSCANNER_NOTIFICATION;
ARRAY_SIZE == 1040.
Если размер файла меньше, то для этой цели есть BytesToScan.
А вот Action нужна для определения операции или расшифровки или кодирования файла. Может принимат 2 значения:

C
1
2
3
4
//! Variable which define encrypting.
#define ENCRYPT_ACTION 1
//! Variable which define decrypting.
#define DECRYPT_ACTION 2
В программе я обрабатываю оповещения от драйвера таким образом:

C
1
2
3
4
5
6
7
8
9
10
11
        result = GetQueuedCompletionStatus( Context->Completion, &outSize, &key, &pOvlp, INFINITE );
 
        message = CONTAINING_RECORD( pOvlp, SCANNER_MESSAGE, Ovlp );
 
        if (!result)
        {
            hr = HRESULT_FROM_WIN32( GetLastError() );
            break;
        }
 
        notification = &message->Notification;
Вот этот объект notification типа SCANNER_NOTIFICATION искажен. В этой структуре BytesToScan и Contents передаются без ошибок, а Action = -842150451, при этом в драйвере отображалось истенное значение, т.е. Action = 1.
В чем же может быть беда?

Добавлено через 13 минут
А передаю я данные из буфера так:

C
1
2
3
4
5
6
7
8
    status = FltSendMessage(
        ScannerData.Filter,
        &ScannerData.ClientPort,
        notification,
        BytesToScan + sizeof( INT ) + sizeof( ULONG ),
        reply,
        &replyLength,
        NULL );
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2014, 18:29
Ответы с готовыми решениями:

Передача данных буфера из Compute Shader в CPU
Здравствуйте! Пытаюсь реализовать чтение из карты высот и запись данных в массив. Подключаю...

Передача буфера
Здравствуйте. Нужно передать в драйвер информацию через DEVICE_CONTROL. Но информация не...

Передача буфера обмена по сети
Не знал как сформулировать тему, поэтому написал здесь и назвал так Я не админ. Всех тонкостей...

Передача большого буфера даных
Добрый день , столкнулся с такой проблемой, мне нужно передать на сервер буфер длинной допустим...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2014, 18:29

Чтение из буфера.Передача файла сокетов
Суть вопроса,что у меня не так??? рассказываю что есть,в общем прога отправляет данные,эт норм,но...

Передача большого буфера через сокет
Ниже приведены клиент и сервер(позаимствовал из соседней темы). Все работает, но при передаче...

Передача данных в другую программу
Как сделать, чтобы одна программа принимала входные данные от другой? Первая программа должна...

Передача данных в программу на лету
Есть скрипт который парсит ссылки, второй скрипт переходит по ссылкам и парсит данные. Как сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru