Compartir vía


Uso de Dirids

Muchos de los directorios que aparecen en los archivos INF se pueden expresar mediante identificadores de directorio (dirids), que son números que identifican directorios específicos. Las aplicaciones pueden usar, pero no pueden reasignar, los directorios definidos por el sistema asociados a dirids cuyos valores van de -1 a 32767.

Para crear dirids con valores definidos por el usuario de 32768 a 65534, o 65536 y versiones posteriores, use la función SetupSetDirectoryId (que se describe en la documentación de Microsoft Windows SDK).

Tenga en cuenta que un dirid con un valor de 65535 se considera sinónimo de un dirid con un valor de -1, aunque se prefiere el último (dirid -1).

Si piensa usar dirids en el archivo INF, tenga en cuenta las dos instrucciones siguientes:

  1. Cuando la sintaxis de una entrada de archivo INF especifica explícitamente un valor dirid (la sección INF DestinationDirs, por ejemplo), exprese ese valor como un número.

    En el siguiente ejemplo se muestra esta sintaxis.

    [DestinationDirs]
    DefaultDestDir = 11  ;  \system32 directory on Windows 2000 and later versions
    
  2. Cuando la sintaxis de una entrada de archivo INF especifica una ruta de acceso de archivo, puede usar una sustitución de cadenas proporcionada por el sistema para representar parte o toda esta ruta de acceso. Esta sustitución tiene el siguiente formato:

    %dirid%

    Este formato consta de un carácter de porcentaje (%) seguido del dirid del directorio que desea especificar, seguido de otro carácter de porcentaje (%). Un carácter de barra invertida () separa esta expresión del siguiente nombre de archivo o directorios adicionales en la ruta.

    En el siguiente ejemplo se muestra esta sintaxis.

    [aic78xx_Service_Inst]
    ServiceBinary = %12%\aic78xx.sys
    

    Cuando se expande completamente, la ruta mostrada en el ejemplo anterior se convierte en c:\windows\system32\drivers\aic78xx.sys (suponiendo que Windows esté instalado en el directorio c:\windows). Tenga en cuenta que la sustitución de cadenas, o el formato %dirid%, se puede usar en cualquier lugar donde se espere una cadena, con la excepción de la sección INF Strings del archivo INF.

    Los dos ejemplos siguientes muestran cómo no se debe usar la sustitución de cadenas.

    [DestinationDirs]
    DefaultDestDir = %11%  ; Error! - number expected
    
    [aic78xx_Service_Inst]
    ServiceBinary = 12\aic78xx.sys  ; Error! - unknown directory name
    

    En el primer ejemplo, la sintaxis de la entrada DefaultDestDir requiere que su valor sea un número. Sin embargo, la expresión %11% se expande a una cadena. En el segundo ejemplo, el escritor INF aparentemente pretende establecer el valor de la entrada ServiceBinary en un archivo del directorio que contiene controladores (consulte la tabla siguiente para obtener más información). El error se produce porque Windows busca el archivo especificado en un directorio denominado "12", que probablemente no existe en el equipo.

En la tabla siguiente se muestran varios dirids usados habitualmente y los directorios que representan. Los valores especificados con más frecuencia por los archivos INF de dispositivos y los archivos INF de controladores aparecen en la parte superior de la tabla.

Como parte de los requisitos de aislamiento de paquetes de controladores, un controlador debe ejecutarse desde el almacén de controladores y usar DIRID 13 para especificar la ubicación de los archivos de paquete de controladores en la instalación. A partir de Windows 11, versión 24H2, algunos de los dirids usados habitualmente han quedado en desuso al enviar el INF para una firma WHQL. Para obtener más información, consulte InfVerif /h.

Valor Directorio de destino Versión en desuso

01

SourceDrive:\pathname (el directorio desde el que se instaló el archivo INF)

24H2 de Windows 11

10

Directorio de Windows.

Esto equivale a %SystemRoot%.

11

Directorio del sistema.

Esto equivale a %SystemRoot%\system32 para Windows 2000 y versiones posteriores de Windows.

12

Directorio controladores.

Esto equivale a %SystemRoot%\system32\drivers para Windows 2000 y versiones posteriores de Windows.

13

Directorio del almacén de controladores del paquete de controladores.

Para Windows 8.1 y versiones posteriores de Windows, especifica la ruta al directorio del almacén de controladores donde se importó el paquete de controladores.

No use DelFiles en un archivo para el que DestinationDirs incluye dirid 13.

El subdirectorio opcional de la sección SourceDiskFiles de un archivo debe coincidir con el subdirectorio de la sección DestinationDirs para la entrada que se aplica a este archivo.

No use CopyFiles para cambiar el nombre de un archivo para el que DestinationDirs incluye dirid 13.

Para obtener más información sobre el uso de dirid 13, consulte Ejecutar desde el almacén de controladores.

17

Directorio de archivos INF

24H2 de Windows 11

18

Directorio de ayuda

24H2 de Windows 11

20

Directorio de fuentes

24H2 de Windows 11

21

Directorio de visores

24H2 de Windows 11

23

El directorio de colores (ICM) (no se usa para instalar controladores de impresora)

24

Directorio raíz del disco del sistema.

Este es el directorio raíz del disco en el que se instalan los archivos de Windows. Por ejemplo, si dirid 10 es "C:\winnt", entonces dirid 24 es "C:\".

24H2 de Windows 11

25

Directorio compartido

24H2 de Windows 11

30

Directorio raíz del disco de arranque, también conocido como "partición del sistema ARC". (Esto podría ser o no el mismo directorio que el representado por dirid 24).

24H2 de Windows 11

50

Directorio del sistema

Esto equivale a %SystemRoot%\system.

24H2 de Windows 11

51

Directorio de colas (no usado para instalar controladores de impresora; consulte Dirids de impresora)

52

Directorio de controladores de cola (no se usa para instalar controladores de impresora)

53

Directorio de perfil de usuario

24H2 de Windows 11

54

Directorio donde residen Ntldr.exe y Osloader.exe

24H2 de Windows 11

55

Directorio de procesadores de impresión (no se usa para instalar controladores de impresora)

-1

Ruta de acceso absoluta

24H2 de Windows 11

Los valores dirid de 16384 a 32767 están reservados para carpetas de shell especiales. En la tabla siguiente se muestran valores dirid para estas carpetas.

Valor Carpeta especial Shell Versión en desuso

16406

Todos los usuarios\Menú Inicio

24H2 de Windows 11

16407

Todos los usuarios\Menú Inicio\Programas

24H2 de Windows 11

16408

Todos los usuarios\Menú Inicio\Programas\Inicio

24H2 de Windows 11

16409

Todos los usuarios\Escritorio

24H2 de Windows 11

16415

Todos los usuarios\Favoritos

24H2 de Windows 11

16419

Todos los usuarios\Datos de la aplicación

24H2 de Windows 11

16422

Archivos de programa

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Program Files\Common

16428

%ProgramFiles(x86)%\Common

16429

Todos los usuarios\plantillas

24H2 de Windows 11

16430

Todos los usuarios\Documentos

24H2 de Windows 11

Además de los valores de esta tabla definidos en Setupapi.h, puede usar cualquiera de los valores CSIDL_Xxx definidos en Shlobj.h. Para definir un valor dirid para una carpeta que no aparece en esta tabla, agregue 16384 (0x4000) al valor CSIDL_Xxx. Para obtener más información sobre los valores CSIDL_Xxx, consulte la documentación de Windows SDK.