Код
typedef struct _DEVICE_EXTENSION
{
PDEVICE_OBJECT pDevice;
UNICODE_STRING ustrDeviceName; // внутреннее имя устройства
UNICODE_STRING ustrSymLinkName; // внешнее имя (символьная ссылка)
UCHAR deviceOutBuffer[MAX_BUFFER_SIZE], // для вывода в устройство
deviceInBuffer [MAX_BUFFER_SIZE]; // для получения из устройства
ULONG xferCount, // текущий передаваемый байт
xferRest; // остаток непереданных байт (индикатор завершенности)
//=============================================
PUCHAR portBase; // адрес порта ввода/вывода
ULONG Irq; // Irq в терминах шины ISA для параллельного порта
//=============================================
PKINTERRUPT pIntObj; // interrupt object
KDPC DpcForIsr_Object; // DPC object
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
{
PDEVICE_OBJECT pDevice;
UNICODE_STRING ustrDeviceName; // внутреннее имя устройства
UNICODE_STRING ustrSymLinkName; // внешнее имя (символьная ссылка)
UCHAR deviceOutBuffer[MAX_BUFFER_SIZE], // для вывода в устройство
deviceInBuffer [MAX_BUFFER_SIZE]; // для получения из устройства
ULONG xferCount, // текущий передаваемый байт
xferRest; // остаток непереданных байт (индикатор завершенности)
//=============================================
PUCHAR portBase; // адрес порта ввода/вывода
ULONG Irq; // Irq в терминах шины ISA для параллельного порта
//=============================================
PKINTERRUPT pIntObj; // interrupt object
KDPC DpcForIsr_Object; // DPC object
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
вот код где она работает:
Код
NTSTATUS status;
PDEVICE_OBJECT pDevObj;
PDEVICE_EXTENSION pDevExt;
PDEVICE_OBJECT pDevObj;
PDEVICE_EXTENSION pDevExt;
а вот как эта строчка работает не пойму:
Код
pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;
pDevExt указатель на PDEVICE_EXTENSION, pDevExt содержит адрес структуры PDEVICE_EXTENSION
pDevObj->DeviceExtension содержимое элемента структуры pDevObj, после выполнения этой строчке что
будет pDevExt = ?