IOCTL_SFFDISK_QUERY_DEVICE_PROTOCOL IOCTL (sffdisk.h)
Benutzermodusanwendungen verwenden diese IOCTL, um einen Protokollwert abzurufen, der die Karte entweder als SD-Karte oder als MMC-Karte identifiziert. Eine Beschreibung dieses Befehls finden Sie in der SDIO-Spezifikation (Secure Digital E/O).
Rufen Sie zum Ausführen dieses Vorgangs die DeviceIoControl-Funktion (in der Microsoft Windows SDK-Dokumentation beschrieben) mithilfe der folgenden Parameter auf.
bRet = DeviceIoControl (
(HANDLE) hDevice,
(DWORD) dwIoControlCode,
(PUCHAR) lpInBuffer,
(DWORD) nInBufferSize,
(PUCHAR) lpOutBuffer,
(DWORD) nOutBufferSize,
(LPDWORD) lpBytesReturned,
(LPOVERLAPPED) lpOverlapped
);
Parameter
- hGeräte
- Das Handle für ein Volume im SD-Stapel.
- dwIoControlCode
- Enthält den Steuerelementcode für den Vorgang. Dieser Wert gibt den spezifischen Vorgang an, der ausgeführt werden soll, und den Typ des Geräts, auf dem er ausgeführt werden soll. Verwenden Sie für diesen Vorgang IOCTL_SFFDISK_QUERY_DEVICE_PROTOCOL.
- lpInBuffer
- Wird nicht mit dieser IOCTL verwendet. Der Aufrufer sollte null übergeben.
- nInBufferSize
- Wird nicht mit dieser IOCTL verwendet. Der Aufrufer sollte den Wert 0 übergeben.
- lpOutBuffer
- Zeiger auf eine SFFDISK_QUERY_DEVICE_PROTOCOL_DATA-Struktur in einem vom Benutzer bereitgestellten Puffer, der die Ergebnisdaten enthält. Das ProtocolGUID-Element der SFFDISK_QUERY_DEVICE_PROTOCOL_DATA-Struktur enthält eine GUID, die den Karte entweder als SD-Karte oder als MMC-Karte identifiziert. Wenn der Vorgang fehlschlägt und GetLastError den Fehlercode STATUS_BUFFER_TOO_SMALL zurückgibt, war der Ausgabepuffer nicht groß genug, um die Ergebnisdaten aufzunehmen.
- nOutBufferSize
- Enthält die Größe des Ausgabepuffers in Bytes, auf den der lpOutBuffer-Parameter verweist.
- lpBytesReturned
-
Zeiger auf eine Variable, die die Größe der Ergebnisdaten in Bytes empfängt, die im Puffer gespeichert sind, auf den lpOutBuffer verweist.
Wenn der Ausgabepuffer zu klein ist, um die Rückgabedaten zu speichern, enthält er den Wert null für die Ausgabe, der Aufruf schlägt fehl, und GetLastError gibt den Fehlercode ERROR_INSUFFICIENT_BUFFER zurück. Für den Fall.
Wenn lpOverlappedNULL ist (nicht überlappende E/A), kann der Aufrufer bei der Eingabe keinen NULL-Parameterdem lpBytesReturned-Parameter zuweisen. Wenn lpOverlapped nicht NULL (überlappende E/A) ist, kann der Aufrufer dem parameter lpBytesReturned einen NULL-Wert zuweisen.
Wenn es sich um einen überlappenden Vorgang handelt, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetOverlappedResult-Funktion aufrufen. Wenn hDevice einem E/A-Vervollständigungsport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetQueuedCompletionStatus-Funktion aufrufen. Eine Beschreibung der Funktionen GetOverlappedResult und GetQueuedCompletionStatus finden Sie in der Dokumentation zum Windows SDK.
- lpOverlapped
-
Zeiger auf eine ÜBERLAPPENDE Struktur, wie in der Dokumentation zum Windows SDK beschrieben.
Wenn der Aufrufer das Gerät mit dem flag FILE_FLAG_OVERLAPPED geöffnet hat, muss lpOverlapped auf eine gültige OVERLAPPED-Struktur verweisen. In diesem Fall führt das System DeviceIoControl als überlappenden, asynchronen Vorgang aus. Wenn der Aufrufer das Gerät mit dem flag FILE_FLAG_OVERLAPPED geöffnet hat und lpOverlappedNULL ist, schlägt die Funktion auf unvorhersehbare Weise fehl.
Wenn der Aufrufer das Gerät geöffnet hat, ohne das Flag FILE_FLAG_OVERLAPPED anzugeben, ignoriert das System den Wert in lpOverlapped, und die DeviceIoControl-Funktion wird erst zurückgegeben, wenn der Vorgang abgeschlossen wurde oder bis ein Fehler auftritt.
Hauptcode
Eingabepuffer
TBD
Ausgabepuffer
TBD
Länge des Ausgabepuffers
TBD
Eingabe-/Ausgabepuffer
TBD
Länge des Eingabe-/Ausgabepuffers
TBD
Statusblock
Wenn der Vorgang erfolgreich ist, gibt DeviceIoControl einen wert ohne Zero zurück.
Wenn der Vorgang fehlschlägt, gibt DeviceIoControl null zurück. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Anforderungen
Anforderung | Wert |
---|---|
Header | sffdisk.h (include Sffdisk.h) |