Autor Tema: CreateFile  (Leído 4252 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Dessa

  • Visitante
CreateFile
« en: Febrero 19, 2010, 02:23:26 pm »
Hola, tengo una duda con el rotorno de CreateFile, estoy tratando de hacer funcion específica (serial verdadero de discos rigidos instalados en el sistema), para esto estoy usando como guia un modulo de clase en el que su autor se refiere en una de sus funciones a que si el retono de CreateFile = 0 (cero) Then "error en createfile", hasta aquí todo bien pero si uso un lpfilename inexistente el retono es -1, lo mismo si intento usar la funcion en W7 con UAC activado el retorno es -1 ...

Puntualmente, la pregunta es: puede createfile retornar 0 (cero) en un Win NT ?

Gracias y saludos

   

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:CreateFile
« Respuesta #1 en: Febrero 19, 2010, 02:28:04 pm »
Hola, tengo una duda con el rotorno de CreateFile, estoy tratando de hacer funcion específica (serial verdadero de discos rigidos instalados en el sistema), para esto estoy usando como guia un modulo de clase en el que su autor se refiere en una de sus funciones a que si el retono de CreateFile = 0 (cero) Then "error en createfile", hasta aquí todo bien pero si uso un lpfilename inexistente el retono es -1, lo mismo si intento usar la funcion en W7 con UAC activado el retorno es -1 ...

Puntualmente, la pregunta es: puede createfile retornar 0 (cero) en un Win NT ?

Gracias y saludos

   

No entendi del todo, pero fijate si te sirve:

Citar
If the function succeeds, the return value is an open handle to the specified file. If the specified file exists before the function call and dwCreationDistribution is CREATE_ALWAYS or OPEN_ALWAYS, a call to GetLastError returns ERROR_ALREADY_EXISTS (even though the function has succeeded). If the file does not exist before the call, GetLastError returns zero.
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

Dessa

  • Visitante
Re:CreateFile
« Respuesta #2 en: Febrero 19, 2010, 02:38:08 pm »
Return value del Apiguide, si era un perro me mordía, gracias coco, era eso.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:CreateFile
« Respuesta #3 en: Febrero 19, 2010, 04:29:56 pm »
-1 es invalid handle value y es basicamente cuando falla

Dessa

  • Visitante
Re:CreateFile
« Respuesta #4 en: Febrero 19, 2010, 04:44:48 pm »
If ret = 0 Or ret = -1 Then Exit Function ?

o puedo retirar el cero del if ?



cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:CreateFile
« Respuesta #5 en: Febrero 19, 2010, 07:15:25 pm »
Para la proxima usa MSDN es mas rapido y no hay necesidad de quedarse con dudas.

Return Value

If the function succeeds, the return value is an open handle to the specified file, device, named pipe, or mail slot.

If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.

Dessa

  • Visitante
Re:CreateFile
« Respuesta #6 en: Febrero 19, 2010, 07:54:14 pm »
Las dudas me la creó el autor de la clase con el retorno cero, por supusto que lo respeto, pero la practica me devuelve -1. Por eso pense que si alguien tenia claro el tema (en la practica) me podia ayudar mas que la teoria del MSDN.

Gracias por las respuestas Cobein y coco.