OLa, deixa eu dar a minha opiniao, pois assunto é muito serio, 1 - NAO DEVEMOS MUDAR U NUMERO DE SERIE DA HD 2 - TODAS AS CHAVES DA TRANSPORTE DO RESGISTRO SAO GERADAS COM BASE NO NUMERO DO HD 3 - SISTEMA JA INSTALADOS E QUE FAZEM A VERIFICACAO DO NUM DO HD VAO PARAR DE FUNCIONAR obs: se voce que seguranca use hardlock
e-mail - [EMAIL PROTECTED] MSN - [EMAIL PROTECTED] Analista de Sistemas itamar roloff ------------------------------------------- ----- Original Message ----- From: "Walter Alves Chagas Junior" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Monday, January 17, 2005 10:23 AM Subject: RES: [delphi-br] No Seria HD Serial do Volume ou Serial da Controladora eu desconheço alguma coisa que faça isto. []s Walter Alves Chagas Junior Projeto e desenvolvimento Telemont Engenharia de telecomunicações [EMAIL PROTECTED] Fone: (31) 3389-8215 Fax: (31) 3389-8200 > -----Mensagem original----- > De: MOITA [mailto:[EMAIL PROTECTED] > Enviada em: segunda-feira, 17 de janeiro de 2005 09:18 > Para: delphi-br@yahoogrupos.com.br > Assunto: Re: [delphi-br] No Seria HD > > > > Essa rotina é apenas para buscar o SN, gostaria de muda-lo. > Vc teria uma rotina ? > > Obrigado. > ----- Original Message ----- > From: Walter Alves Chagas Junior > To: 'delphi-br@yahoogrupos.com.br' > Sent: Monday, January 17, 2005 8:34 AM > Subject: RES: [delphi-br] No Seria HD > > > Tem como buscar o numero serial interno do HD (Não é o do volume): > > function GetIdeDiskSerialNumber : String; > type > TSrbIoControl = packed record > HeaderLength : ULONG; > Signature : Array[0..7] of Char; > Timeout : ULONG; > ControlCode : ULONG; > ReturnCode : ULONG; > Length : ULONG; > end; > SRB_IO_CONTROL = TSrbIoControl; > PSrbIoControl = ^TSrbIoControl; > > TIDERegs = packed record > bFeaturesReg : Byte; // especificar "comandos" SMART > bSectorCountReg : Byte; // registro de contador de setor > bSectorNumberReg : Byte; // registro de número de setores > bCylLowReg : Byte; // valor de cilindro (byte mais baixo) > bCylHighReg : Byte; // valor de cilindro (byte mais alto) > bDriveHeadReg : Byte; // registro de drive/cabeça > bCommandReg : Byte; // comando IDE > bReserved : Byte; // reservado- tem que ser zero > end; > IDEREGS = TIDERegs; > PIDERegs = ^TIDERegs; > > TSendCmdInParams = packed record > cBufferSize : DWORD; > irDriveRegs : TIDERegs; > bDriveNumber : Byte; > bReserved : Array[0..2] of Byte; > dwReserved : Array[0..3] of DWORD; > bBuffer : Array[0..0] of Byte; > end; > SENDCMDINPARAMS = TSendCmdInParams; > PSendCmdInParams = ^TSendCmdInParams; > > TIdSector = packed record > wGenConfig : Word; > wNumCyls : Word; > wReserved : Word; > wNumHeads : Word; > wBytesPerTrack : Word; > wBytesPerSector : Word; > wSectorsPerTrack : Word; > wVendorUnique : Array[0..2] of Word; > sSerialNumber : Array[0..19] of Char; > wBufferType : Word; > wBufferSize : Word; > wECCSize : Word; > sFirmwareRev : Array[0..7] of Char; > sModelNumber : Array[0..39] of Char; > wMoreVendorUnique : Word; > wDoubleWordIO : Word; > wCapabilities : Word; > wReserved1 : Word; > wPIOTiming : Word; > wDMATiming : Word; > wBS : Word; > wNumCurrentCyls : Word; > wNumCurrentHeads : Word; > wNumCurrentSectorsPerTrack : Word; > ulCurrentSectorCapacity : ULONG; > wMultSectorStuff : Word; > ulTotalAddressableSectors : ULONG; > wSingleWordDMA : Word; > wMultiWordDMA : Word; > bReserved : Array[0..127] of Byte; > end; > PIdSector = ^TIdSector; > > const > IDE_ID_FUNCTION = $EC; > IDENTIFY_BUFFER_SIZE = 512; > DFP_RECEIVE_DRIVE_DATA = $0007c088; > IOCTL_SCSI_MINIPORT = $0004d008; > IOCTL_SCSI_MINIPORT_IDENTIFY = $001b0501; > DataSize = sizeof(TSendCmdInParams)-1+IDENTIFY_BUFFER_SIZE; > BufferSize = SizeOf(SRB_IO_CONTROL)+DataSize; > W9xBufferSize = IDENTIFY_BUFFER_SIZE+16; > var > hDevice : THandle; > cbBytesReturned : DWORD; > pInData : PSendCmdInParams; > pOutData : Pointer; // PSendCmdOutParams > Buffer : Array[0..BufferSize-1] of Byte; > srbControl : TSrbIoControl absolute Buffer; > > procedure ChangeByteOrder( var Data; Size : Integer ); > var ptr : PChar; > i : Integer; > c : Char; > begin > ptr := @Data; > for i := 0 to (Size shr 1)-1 do > begin > c := ptr^; > ptr^ := (ptr+1)^; > (ptr+1)^ := c; > Inc(ptr,2); > end; > end; > > begin > Result := ''; > FillChar(Buffer,BufferSize,#0); > if Win32Platform=VER_PLATFORM_WIN32_NT then > // Windows NT, Windows 2000, Windows XP > begin > // recuperar handle da porta SCSI > hDevice := CreateFile('\\.\Scsi0:', > // Nota: '\\.\C:' precisa de privilégios administrativos > GENERIC_READ or GENERIC_WRITE, > FILE_SHARE_READ or FILE_SHARE_WRITE, > nil, OPEN_EXISTING, 0, 0); > > if hDevice=INVALID_HANDLE_VALUE then Exit; > try > srbControl.HeaderLength := SizeOf(SRB_IO_CONTROL); > System.Move('SCSIDISK',srbControl.Signature,8); > srbControl.Timeout := 2; > srbControl.Length := DataSize; > srbControl.ControlCode := IOCTL_SCSI_MINIPORT_IDENTIFY; > pInData := PSendCmdInParams(PChar(@Buffer) + > SizeOf(SRB_IO_CONTROL)); > pOutData := pInData; > with pInData^ do > begin > cBufferSize := IDENTIFY_BUFFER_SIZE; > bDriveNumber := 0; > with irDriveRegs do > begin > bFeaturesReg := 0; > bSectorCountReg := 1; > bSectorNumberReg := 1; > bCylLowReg := 0; > bCylHighReg := 0; > bDriveHeadReg := $A0; > bCommandReg := IDE_ID_FUNCTION; > end; > end; > > if not DeviceIoControl( hDevice, > IOCTL_SCSI_MINIPORT, @Buffer, > BufferSize, @Buffer, BufferSize, cbBytesReturned, nil) then > Exit; > finally > CloseHandle(hDevice); > end; > end > else > begin > // Windows 95 OSR2, Windows 98, Windows ME > hDevice := CreateFile( '\\.\SMARTVSD', 0, 0, nil, > CREATE_NEW, 0, 0 ); > if hDevice=INVALID_HANDLE_VALUE then Exit; > try > pInData := PSendCmdInParams(@Buffer); > pOutData := @pInData^.bBuffer; > with pInData^ do > begin > cBufferSize := IDENTIFY_BUFFER_SIZE; > bDriveNumber := 0; > with irDriveRegs do > begin > bFeaturesReg := 0; > bSectorCountReg := 1; > bSectorNumberReg := 1; > bCylLowReg := 0; > bCylHighReg := 0; > bDriveHeadReg := $A0; > bCommandReg := IDE_ID_FUNCTION; > end; > end; > > if not DeviceIoControl( hDevice, DFP_RECEIVE_DRIVE_DATA, > pInData, SizeOf(TSendCmdInParams)-1, pOutData, W9xBufferSize, > cbBytesReturned, nil ) then > Exit; > finally > CloseHandle(hDevice); > end; > end; > > with PIdSector(PChar(pOutData)+16)^ do > begin > ChangeByteOrder(sSerialNumber,SizeOf(sSerialNumber)); > SetString(Result,sSerialNumber,SizeOf(sSerialNumber)); > end; > end; > > > > Dica de como chamar a função > 1) Create this variables: > s : String; > rc : DWORD; > > 2) on onClick of Event of Button, paste this code > s := GetIdeDiskSerialNumber; > if s='' then > begin > rc := GetLastError; > if rc=0 then > showmessage('Drive IDE don´t suport SMART') > else > showmessage(SysErrorMessage(rc)); > end > else > showmessage('Fisical serial number disk is: ' + s); > > > > > []s > > Walter Alves Chagas Junior > Projeto e desenvolvimento > Telemont Engenharia de telecomunicações > [EMAIL PROTECTED] > Fone: (31) 3389-8215 Fax: (31) 3389-8200 > > > > > -----Mensagem original----- > > De: Alosi yarru [mailto:[EMAIL PROTECTED] > > Enviada em: segunda-feira, 17 de janeiro de 2005 08:27 > > Para: delphi-br@yahoogrupos.com.br > > Assunto: Re: [delphi-br] No Seria HD > > > > > > > > Tem como buscar o ROM do HD? > > > > > > ----- Original Message ----- > > From: Rubem Rocha > > To: delphi-br@yahoogrupos.com.br > > Sent: Saturday, January 15, 2005 9:05 AM > > Subject: RES: [delphi-br] No Seria HD > > > > > > O número de série do volume do HD, sim! O número de série > > de fábrica, que fica armazenado na ROM do HD, não! > > []s > > > > -----Mensagem original----- > > De: MOITA [mailto:[EMAIL PROTECTED] > > Enviada em: sábado, 15 de janeiro de 2005 08:24 > > Para: delphi-br@yahoogrupos.com.br > > Assunto: [delphi-br] No Seria HD > > > > > > > > É possivel alterar o numero de serie do HD ? > > > > [As partes desta mensagem que não continham texto foram > removidas] > > > > > > > > -- > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > Para ver as mensagens antigas, acesse: > > http://br.groups.yahoo.com/group/delphi-br/messages > > > > Para falar com o moderador, envie um e-mail para: > > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > --- > > Incoming mail is certified Virus Free. > > Checked by AVG anti-virus system (http://www.grisoft.com). > > Version: 6.0.799 / Virus Database: 543 - Release Date: > 19/11/2004 > > > > > > > > -- > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > Para ver as mensagens antigas, acesse: > > http://br.groups.yahoo.com/group/delphi-br/messages > > > > Para falar com o moderador, envie um e-mail para: > > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > > > > > > > Yahoo! Grupos, um serviço oferecido por: > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > ---------------- > > Links do Yahoo! Grupos > > > > a.. Para visitar o site do seu grupo na web, acesse: > > http://br.groups.yahoo.com/group/delphi-br/ > > > > b.. Para sair deste grupo, envie um e-mail para: > > [EMAIL PROTECTED] > > > > c.. O uso que você faz do Yahoo! Grupos está sujeito aos > > Termos do Serviço do Yahoo!. > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > -- > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > Para ver as mensagens antigas, acesse: > > http://br.groups.yahoo.com/group/delphi-br/messages > > > > Para falar com o moderador, envie um e-mail para: > > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > Para ver as mensagens antigas, acesse: > http://br.groups.yahoo.com/group/delphi-br/messages > > Para falar com o moderador, envie um e-mail para: > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > > > Yahoo! Grupos, um serviço oferecido por: > PUBLICIDADE > > > > > -------------------------------------------------------------- > ---------------- > Links do Yahoo! Grupos > > a.. Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/delphi-br/ > > b.. Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > c.. O uso que você faz do Yahoo! Grupos está sujeito aos > Termos do Serviço do Yahoo!. > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > Para ver as mensagens antigas, acesse: > http://br.groups.yahoo.com/group/delphi-br/messages > > Para falar com o moderador, envie um e-mail para: > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > Links do Yahoo! Grupos > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html