· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› ntddk.inc использование безымянных структур (вопрос по си)

Посл.отвђт Сообщенiе


Дата: Авг 12, 2004 14:41:06

в ntddk.inc
    union {

        struct {

            union {

                //
                // DeviceQueueEntry - The device queue entry field is used to
                // queue the IRP to the device driver device queue.
                //

                KDEVICE_QUEUE_ENTRY DeviceQueueEntry;

                struct {

                    //
                    // The following are available to the driver to use in
                    // whatever manner is desired, while the driver owns the
                    // packet.
                    //

                    PVOID DriverContext[4];

                } ;

            } ;

         ...

        } Tail;
    } IRP;



Как обратится например к PVOID DriverContext[2]?
Ведь экземпляр структуры в которой определён
PVOID DriverContxet[4] - безымянный.

Ничего не могу понять.

Спасибо.


Дата: Авг 12, 2004 16:43:44 · Поправил: rsrc

Примерно так:
ULONG u = *(ULONG*)IRP.Tail.DriverContext[2]


Дата: Авг 12, 2004 17:24:54

Выдаётся ошибка:

'DriverContext' is not a member of struct

смотрел Four-F'овский ntddk.inc, там тоже бызымянные(естессно) структуры и объединения но в асм.

может кто знает (а ведь наверняка) как обращатся к членам

таких структур? Искал по инету - ничего не нашёл.

ПОМОГИТЕ плз.

заранее благодарю!


Дата: Авг 12, 2004 17:29:12

rsrc
Не совсем.

IRP irp;
rp.Tail.Overlay.DriverContext[0] = (void*)0x00EE1B01;


Дата: Авг 12, 2004 17:50:12 · Поправил: letopisec

Всем спасибо!

eel

Да я был неточен. Действительно union - Tail, struct -Overlay.

А проблема была в том, что для проверки (можно ли так обращатся) исползовал BC311.
Другой компиллер - и всй исчезло ;)


Дата: Авг 12, 2004 17:55:07 · Поправил: VOOrDOOluck

letopisec
опоздал Ж:)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087