Freigeben über


GetRawInputDeviceList-Funktion (winuser.h)

Listet die an das System angeschlossenen Roheingabegeräte auf.

Syntax

UINT GetRawInputDeviceList(
  [out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
  [in, out]       PUINT               puiNumDevices,
  [in]            UINT                cbSize
);

Die Parameter

[out, optional] pRawInputDeviceList

Typ: PRAWINPUTDEVICELIST

Ein Array von RAWINPUTDEVICELIST-Strukturen für die an das System angeschlossenen Geräte. Der Zeiger sollte an einer DWORD-Grenze (32-Bit) ausgerichtet werden.

Wenn NULL, wird die Anzahl der Geräte in *puiNumDevices zurückgegeben.

[in, out] puiNumDevices

Typ: PUINT

Wenn pRawInputDeviceListNULL ist, füllt die Funktion diese Variable mit der Anzahl der an das System angeschlossenen Geräte auf; andernfalls gibt diese Variable die Anzahl der RAWINPUTDEVICELIST-Strukturen an, die im Puffer enthalten sein können, auf den pRawInputDeviceList verweist. Wenn dieser Wert kleiner als die Anzahl der an das System angeschlossenen Geräte ist, gibt die Funktion die tatsächliche Anzahl der Geräte in dieser Variablen zurück und schlägt mit ERROR_INSUFFICIENT_BUFFER fehl. Wenn dieser Wert größer oder gleich der Anzahl der an das System angeschlossenen Geräte ist, ist der Wert unverändert, und die Anzahl der Geräte wird als Rückgabewert gemeldet.

[in] cbSize

Typ: UINT-

Die Größe einer RAWINPUTDEVICELIST-Struktur in Bytes.

Rückgabewert

Typ: UINT-

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Anzahl der im Puffer gespeicherten Geräte, auf die von pRawInputDeviceList verwiesen wird.

Bei einem anderen Fehler gibt die Funktion -1 (UINT) zurück, und GetLastError gibt die Fehleranzeige zurück.

Bemerkungen

Die von dieser Funktion zurückgegebenen Geräte sind die Maus, die Tastatur und andere HID-Geräte (Human Interface Device).

Um detailliertere Informationen zu den angeschlossenen Geräten zu erhalten, rufen Sie GetRawInputDeviceInfo mit dem hDevice von RAWINPUTDEVICELIST auf.

Eingabegeräte, auf die über Remotedesktop Protocal (RDP) zugegriffen wird, werden nicht in der Liste der rohen Eingabegeräte angezeigt.

Beispiele

Der folgende Beispielcode zeigt einen typischen Aufruf von GetRawInputDeviceList:

UINT nDevices;
PRAWINPUTDEVICELIST pRawInputDeviceList = NULL;
while (true) {
    if (GetRawInputDeviceList(NULL, &nDevices, sizeof(RAWINPUTDEVICELIST)) != 0) { Error();}
    if (nDevices == 0) { break; }
    if ((pRawInputDeviceList = malloc(sizeof(RAWINPUTDEVICELIST) * nDevices)) == NULL) {Error();}
    nDevices = GetRawInputDeviceList(pRawInputDeviceList, &nDevices, sizeof(RAWINPUTDEVICELIST));
    if (nDevices == (UINT)-1) {
        if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { Error(); }
        // Devices were added.
        free(pRawInputDeviceList);
        continue;
    }
    break;
}
// do the job...
// after the job, free the RAWINPUTDEVICELIST
free(pRawInputDeviceList);

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows XP [nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2003 [Nur Desktop-Apps]
Zielplattform Fenster
Überschrift winuser.h (enthalten Windows.h)
Bibliothek User32.lib
DLL User32.dll
API-Satz ext-ms-win-ntuser-rawinput-l1-1-0 (eingeführt in Windows 10, Version 10.0.14393)

Siehe auch

Konzeptionelle

GetRawInputDeviceInfo

RAWINPUTDEVICELIST

raw Input