DriverPackageGetPath function
Starting in Windows 10 Version 1607 (Redstone 1), the Driver Install Frameworks (DIFx) tools are no longer included in the WDK.
For more information, see DIFx Guidelines.
The DriverPackageGetPath function retrieves the fully qualified path of the INF file for a preinstalled driver package.
Syntax
DWORD DriverPackageGetPath(
_In_PCTSTR DriverPackageInfPath,
_Out_opt_PWSTR pDestInfPath,
_Inout_DWORD *pNumOfChars
);
Parameters
DriverPackageInfPath [in]
A pointer to a NULL-terminated string that supplies the fully qualified path of a driver package's INF file. DIFx uses this string to retrieve the corresponding INF file. The INF file cannot be in the system INF file directory.
pDestInfPath [out, optional]
A pointer to a buffer that receives a NULL-terminated string that contains the fully qualified path of the INF file. This string corresponds to the driver package's INF file that is supplied by DriverPackageInfPath. This pointer is optional and can be NULL.
pNumOfChars [in, out]
A pointer to a DWORD-typed variable that receives the buffer size, in characters, of the buffer that is pointed to by pDestInfPath. If the pDestInfPath buffer is large enough to hold the requested INF file path, DriverPackageGetPath returns ERROR_SUCCESS and sets *pNumOfChars to the size, in characters, of the INF file path. If the buffer is not large enough to retrieve the requested INF file path, the function returns ERROR_INSUFFICIENT_BUFFER. Also, the function sets *pNumOfChars to the buffer size, in characters, that is required to retrieve the requested INF file path in addition to the NULL terminator.
Return value
DriverPackageGetPath returns ERROR_SUCCESS if the requested path was successfully retrieved. Otherwise, the function did not retrieve the requested path and returns an error code that indicates the cause of the failure. The following table contains the most common return values.
Return code | Description |
---|---|
CRYPT_E_FILE_ERROR | The catalog file for the specified driver package was not found; or possibly, some other error occurred when DriverPackageGetPath tried to verify the driver package signature. |
ERROR_ACCESS_DENIED | A caller of DriverPackagePath must be a member of the Administrators group to retrieve an INF file path. |
ERROR_BAD_ENVIRONMENT | The current Microsoft Windows version does not support this operation. An old or incompatible version of DIFxApp.dll or DIFxAppA.dll might be present in the system. |
ERROR_CANT_ACCESS_FILE | DriverPackagePath cannot access the INF file that was specified by DriverPackageInfPath because the INF file is in the system INF directory. |
ERROR_DRIVER_PACKAGE_NOT_IN_STORE | There is no INF file in the DIFx driver store that corresponds to the INF file that was specified by DriverPackageInfPath. |
ERROR_FILE_NOT_FOUND | The INF file that was specified by DriverPackageInfPath was not found. |
ERROR_FILENAME_EXCED_RANGE | The INF file path, in characters, that was specified by DriverPackageInfPath is greater than the maximum supported path length. |
ERROR_IN_WOW64 | The 32-bit version DIFxAPI does not work on Win64 systems. A 64-bit version of DIFxAPI is required. |
ERROR_INSUFFICIENT_BUFFER | The pDestInfPath buffer is not large enough to retrieve the requested INF file path. |
ERROR_INVALID_NAME | The specified INF file path is not valid. |
ERROR_INVALID_PARAMETER | A supplied parameter is not valid. |
ERROR_OUTOFMEMORY | Available system memory was insufficient to perform the operation. |
ERROR_UNSUPPORTED_TYPE | The driver package type is not supported. |
Remarks
A caller of DriverPackageGetPath must be a member of the Administrators group. Otherwise, the function does not retrieve a path to an INF file path, and returns ERROR_ACCESS_DENIED.
DriverPackageGetPath should be primarily used with the DriverPackageUninstall function to uninstall driver packages.
If DriverPackageInfPath specifies an INF file for a signed driver package, the catalog file for the driver package must be in the same directory as the INF file. If the catalog file is not in the same directory as the INF file, the operation will fail and DriverPackageGetPath will return CRYPT_E_FILE_ERROR.
Requirements
Target platform | Desktop |
Version | Available for Microsoft Windows 2000 and later versions of Windows. |
Header | Difxapi.h (include Difxapi.h) |
Library | Difxapi.lib |