Freigeben über


IWDFDevice::RetrieveDeviceName-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 in neueren 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 RetrieveDeviceName-Methode ruft den Namen eines zugrunde liegenden Kernelmodusgeräts ab.

Syntax

HRESULT RetrieveDeviceName(
  [out]     PWSTR pDeviceName,
  [in, out] DWORD *pdwDeviceNameLength
);

Parameter

[out] pDeviceName

Ein Zeiger auf einen Puffer, der eine NULL-beendete Zeichenfolge empfängt, die den Namen des zugrunde liegenden Kernelmodusgeräts darstellt, wenn der Puffer nicht NULL ist und RetrieveDeviceName erfolgreich ist.

[in, out] pdwDeviceNameLength

Ein Zeiger auf eine Variable, die die Anzahl der Zeichen, einschließlich des NULL-Zeichens , im Gerätenamen empfängt.

Wenn der Puffer bei pDeviceNameNULL ist, ist der vom Treiber bereitgestellte Wert Null. Das Framework gibt dann die Größe in Zeichen zurück, die für die Gerätenamenzeichenfolge erforderlich ist.

Wenn der Puffer bei pDeviceName ungleich NULL ist, gibt das Framework die Größe der Gerätenamenzeichenfolge in Zeichen zurück.

Rückgabewert

RetrieveDeviceName gibt für die folgenden Szenarien S_OK zurück:

  • Der Puffer, auf den der pDeviceName-Parameter verweist, war nicht NULL und groß genug, um die Namenszeichenfolge, einschließlich des NULL-Zeichens , aufzunehmen. Das Framework hat die Zeichenfolge erfolgreich in den angegebenen Puffer kopiert und die Variable festgelegt, auf die von pdwDeviceNameLength auf die Anzahl der Zeichen in der Zeichenfolge verwiesen wird.
  • Der Puffer bei pDeviceName war NULL, der Treiber hat die Variable bei pdwDeviceNameLength auf 0 festgelegt, und das Framework legt die Variable auf pdwDeviceNameLength auf die Anzahl der Zeichen fest, die für die Zeichenfolge erforderlich waren.

RetrieveDeviceName gibt HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) zurück, um anzugeben, dass der bereitgestellte Puffer ungleich NULL war und nicht genügend Speicherplatz für den Gerätenamen enthielt. Das Framework legt die Variable unter pdwDeviceNameLength auf die Anzahl der Zeichen fest, die für die Zeichenfolge erforderlich sind.

RetrieveDeviceName gibt möglicherweise auch andere HRESULT-Werte zurück.

Hinweise

Der Gerätename ist nicht der Name des physischen Geräteobjekts (PDO). Stattdessen ist der Gerätename der Name des Reflektors. Der Treiber muss alle E/A-Vorgänge auf dieses Geräteobjekt ausrichten.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie den Namen eines zugrunde liegenden Kernelmodusgeräts abrufen.

    PWSTR deviceName = NULL;
    DWORD deviceNameCch = 0;
    HRESULT hr;
    //
    // Get the length of the device name to allocate a buffer
    //
    hr = m_FxDevice->RetrieveDeviceName(NULL, &deviceNameCch);
    //
    // Allocate the buffer
    //
    deviceName = new WCHAR[deviceNameCch];

    if (deviceName == NULL) {
        hr = E_OUTOFMEMORY;
        goto Exit1;
    }
    //
    // Get the device name
    //
    hr = m_FxDevice->RetrieveDeviceName(deviceName,
                                        &deviceNameCch);

    // Open the device and get the handle

    m_Handle = CreateFile(deviceName, 
                         (GENERIC_READ | GENERIC_WRITE), 
                         0, 
                         NULL, 
                         OPEN_EXISTING, 
                         FILE_FLAG_OVERLAPPED, 
                         NULL);

Anforderungen

Anforderung Wert
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform Desktop
UMDF-Mindestversion 1.5
Kopfzeile wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Weitere Informationen

IWDFDevice