IWDFFile2::RetrieveCountedFileName-Methode (wudfddi.h)
Warnung
UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.
Die RetrieveCountedFileName-Methode ruft den vollständigen gezählten Dateinamen für eine Datei ab, die einem Gerät zugeordnet ist.
Syntax
HRESULT RetrieveCountedFileName(
[out] WCHAR *pCountedFileName,
[in, out] DWORD *pdwCountedFileNameLengthInChars
);
Parameter
[out] pCountedFileName
Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer. Dieser Puffer empfängt eine NULL-Zeichenfolge , die den vollständigen Namen der Datei darstellt, die dem Gerät zugeordnet ist. Wenn der Zeiger NULL ist, ruft RetrieveCountedFileName nur die Zeichenfolgenlänge ab.
[in, out] pdwCountedFileNameLengthInChars
Ein Zeiger auf eine vom Aufrufer zugewiesene Variable. Bei der Eingabe legt der Treiber die Variable auf die Länge des Puffers in Zeichen fest, auf den pdwCountedFileNameLengthInChars verweist. Bei der Ausgabe legt das Framework die Variable auf die Länge (in Zeichen) der Zeichenfolge (einschließlich des beendenden NULL-Zeichens ) fest, die es im Puffer platziert hat. Wenn kein gezählter Dateiname vorhanden ist, legt das Framework die Variable auf Null fest.
Rückgabewert
RetrieveCountedFileName gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
E_POINTER | Der pdwCountedFileNameLength-Zeiger ist NULL. |
HRESULT_FROM_WIN32 (ERROR_INVALID_PARAMETER) | Der gezählte Dateiname ist ungültig. |
E_NOT_SUFFICIENT_BUFFER | Der Puffer, auf den pCountedFileName verweist, ist zu klein. |
Diese Methode gibt möglicherweise einen der anderen Werte in Winerror.h zurück.
Hinweise
Ein gezählter Dateiname ist eine Zeichenfolge, die neben einem beendenden NULL auch eingebettete NULL -Zeichen ('\0') enthalten kann. Um eine Namenszeichenfolge ohne eingebettete NULL-Zeichen abzurufen, können Treiber IWDFFile::RetrieveFileName aufrufen.
In der Regel ruft ein Treiber RetrieveCountedFileName mit den folgenden Schritten zweimal auf:
- Der Treiber ruft RetrieveCountedFileName auf, wobei der pCountedFileName-Parameter auf NULL festgelegt ist, um die erforderliche Pufferlänge abzurufen.
- Der Treiber weist einen Puffer der erforderlichen Größe zu.
- Der Treiber ruft Erneut RetrieveCountedFileName auf, um die Dateinamenzeichenfolge abzurufen.
Beispiele
Im folgenden Codebeispiel wird die IWDFFile2-Schnittstelle von der IWDFFile-Schnittstelle abgerufen, die die Rückruffunktion IQueueCallbackCreate::OnCreateFile eines Treibers empfängt. Im Beispiel wird RetrieveCountedFileName zweimal aufgerufen. einmal, um die Länge des Dateinamens abzurufen, und einmal, um die Dateinamenzeichenfolge abzurufen.
VOID
STDMETHODCALLTYPE
CMyQueue::OnCreateFile(
__in IWDFIoQueue *pWdfQueue,
__in IWDFIoRequest *pWdfRequest,
__in IWDFFile* pWdfFileObject
)
...
IWDFFile2* pWdfFileObject2 = NULL;
WCHAR* countedFileName = NULL;
DWORD countedFileNameCch = 0;
HRESULT hr = S_OK;
//
// Obtain IWDFFile2 interface from IWDFFile.
//
hr = pWdfFileObject->QueryInterface(IID_PPV_ARGS(&pWdfFileObject2));
if (!SUCCEEDED(hr))
{
goto Done;
}
//
// Get length of counted filename.
//
hr = pWdfFileObject2->RetrieveCountedFileName(NULL,
&countedFileNameCch);
if (!SUCCEEDED(hr))
{
goto Done;
}
if (countedFileNameCch != 0)
{
//
// Allocate a buffer.
//
countedFileName = new WCHAR[countedFileNameCch];
if (countedFileName == NULL)
{
hr = E_OUTOFMEMORY;
goto Done;
}
//
// Get counted file name.
//
hr = pWdfFileObject2->RetrieveCountedFileName(countedFileName,
&countedFileNameCch);
if (!SUCCEEDED(hr))
{
goto Done;
}
}
...
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform | Desktop |
UMDF-Mindestversion | 1.9 |
Kopfzeile | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |