информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsАтака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 ФБР нашла русский след в атаках... 
 Массовый взлом SharePoint 
 Microsoft Authenticator прекращает... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
64битна ли 64хбитная винда? 12.05.04 02:40  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
просматривая пресловутые сырцы винды нашел в private\ntos\w32\ntuser\kernel\class.c такой вот фрагмент:
#ifdef _WIN64
DWORD xxxSetClassLong(
PWND pwnd,
int index,
DWORD value,
BOOL bAnsi)
{
DWORD dwOld;
PCLS pcls;

CheckLock(pwnd);
CheckCritIn();

if (GETPTI(pwnd)->ppi != PpiCurrent()) {
RIPERR1(ERROR_ACCESS_DENIED, RIP_WARNING, "SetClassLong: different process: index 0x%lx", index);
return 0;
}

if (index < 0) {
if (index < INDEX_OFFSET|afClassDWord[index - INDEX_OFFSET] > sizeof(DWORD)) {
RIPERR1(ERROR_INVALID_INDEX, RIP_WARNING, "SetClassLong: invalid index %d", index);
return 0;
}
return (DWORD)xxxSetClassData(pwnd, index, value, bAnsi);
} else {
pcls = pwnd->pcls->pclsBase;
if (index + (int)sizeof(DWORD) > pcls->cbclsExtra) {
RIPERR0(ERROR_INVALID_INDEX, RIP_WARNING, "SetClassLong: invalid index");
return 0;
} else {
DWORD UNALIGNED *pudw;
pudw = (DWORD UNALIGNED *)((BYTE *)(pcls + 1) + index);
dwOld = *pudw;
*pudw = value;
pcls = pcls->pclsClone;
while (pcls != NULL) {
pudw = (DWORD UNALIGNED *)((BYTE *)(pcls + 1) + index);
*pudw = value;
pcls = pcls->pclsNext;
}
return dwOld;
}
}
}
#endif

Вообще там больше практически нету ничего насчет WIN64 и может потом все поправят но все равно количество DWORD'ов в 64х битном коде немного напрягает Ж)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach