![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мастера как можно определить КЕМ СДЕЛАН винчестер и ;ID [D5, Win2k]
Dimich1978 © (2002-10-21 11:59:00)Вот и все.
Dimich1978 (2002-10-21 13:19:00) [1]Если кому интересно, под Паскаль есть такая фича как определение ID винчестера....нашел в инете
http://www.osp.ru/pcworld/1999/04/105lis14.htm
Dimich1978 (2002-10-21 12:25:00) [2]Да на С++ есть, а вот под Делфи...толком ничего. Попробовать перевести тока с С++, но его еще знать надо...а с этим у меня проблема. Так общий смысл
Ученик (2002-10-21 12:19:00) [3]http://www.sources.ru/cpp/system/devid.shtml
REA (2002-10-21 12:17:00) [4]Да это из драйвера какого-то кусок. Оно вообще на Delphi не смотрится.
Игорь Шевченко (2002-10-21 12:14:00) [5]REA © (21.10.02 12:06)
В переводе на Delphi это особенно рулезно смотрится.
iNew (2002-10-21 12:12:00) [6]Попробуй поискать в реестре.
REA (2002-10-21 12:06:00) [7]Наврал наверно. Вот кусок который MBR читает. Может пригодится.
NTSTATUS MSJReadDriveZeroMasterBootRecord(PUCHAR pBuffer)
{
NTSTATUS ntStatus;
UNICODE_STRING uszDeviceName;
PFILE_OBJECT fileObject;
PDEVICE_OBJECT pDriveDeviceObject;
// Initialize unicode string
RtlInitUnicodeString(&uszDeviceName, L"\\DosDevices\\PhysicalDrive0");
// Get a pointer to PhysicalDrive0
ntStatus = IoGetDeviceObjectPointer(&uszDeviceName,
FILE_READ_ATTRIBUTES,
&fileObject,
&pDriveDeviceObject);
// If the device object pointer is valid...
if(NT_SUCCESS(ntStatus))
{
IO_STATUS_BLOCK ioStatus;
KEVENT event;
PIRP pIrp;
LARGE_INTEGER sectorNum;
KeInitializeEvent(&event, NotificationEvent, FALSE);
sectorNum.LowPart = sectorNum.HighPart = 0;
pIrp = IoBuildSynchronousFsdRequest(IRP_MJ_READ,
pDriveDeviceObject,
pBuffer,
512,
§orNum,
&event,
&ioStatus);
if(!pIrp)
return FALSE;
ntStatus = IoCallDriver(pDriveDeviceObject, pIrp);
if(ntStatus == STATUS_PENDING)
{
KeWaitForSingleObject(&event, Suspended, KernelMode, FALSE, NULL);
ntStatus = ioStatus.Status;
}
if(!NT_SUCCESS(ntStatus))
return ntStatus;
// Ditch the fileObject pointer created earlier
ObDereferenceObject(fileObject);
}
return ntStatus;
}
REA (2002-10-21 12:00:00) [8]Видел вроде такую шнягу: под W98 залезть в порты. Под NT написать драйвер и залезть в порты.