IMF2DBuffer2::Lock2DSize-Methode (mfobjects.h)
Gewährt dem Aufrufer Zugriff auf den Speicher im Puffer.
Syntax
HRESULT Lock2DSize(
[in] MF2DBuffer_LockFlags lockFlags,
[out] BYTE **ppbScanline0,
[out] LONG *plPitch,
[out] BYTE **ppbBufferStart,
[out] DWORD *pcbBufferLength
);
Parameter
[in] lockFlags
Ein Member der MF2DBuffer_LockFlags-Enumeration , das angibt, ob der Puffer zum Lesen, Schreiben oder beides gesperrt werden soll.
[out] ppbScanline0
Empfängt einen Zeiger auf das erste Byte der oberen Pixelzeile im Bild. Die oberste Zeile wird als oberste Zeile definiert, wenn das Bild dem Viewer angezeigt wird, und ist möglicherweise nicht die erste Zeile im Arbeitsspeicher.
[out] plPitch
Empfängt den Oberflächenschritt in Bytes. Der Schritt kann negativ sein, was angibt, dass das Bild im Arbeitsspeicher von unten nach oben ausgerichtet ist.
[out] ppbBufferStart
Empfängt einen Zeiger auf den Anfang des zugänglichen Puffers im Arbeitsspeicher.
[out] pcbBufferLength
Empfängt die Länge des Puffers in Bytes.
Rückgabewert
Diese Methode kann einen dieser Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Erfolg. |
|
Ungültige Anforderung. Der Puffer ist möglicherweise bereits mit einem inkompatiblen Sperrflag gesperrt. Siehe Hinweise. |
|
Es ist nicht genügend Arbeitsspeicher vorhanden, um den Vorgang abzuschließen. |
Hinweise
Wenn Sie mit dem Zugriff auf den Arbeitsspeicher fertig sind, rufen Sie IMF2DBuffer::Unlock2D auf, um den Puffer zu entsperren. Sie müssen Unlock2D für jeden Aufruf von Lock2DSize einmal aufrufen.
Diese Methode entspricht der IMF2DBuffer::Lock2D-Methode . Lock2DSize wird jedoch bevorzugt, da der Aufrufer Speicherzeiger überprüfen kann und schreibgeschützte Sperren unterstützt. Es ist nicht garantiert, dass ein Puffer die IMF2DBuffer2-Schnittstelle unterstützt. Um auf einen Puffer zuzugreifen, sollten Sie die folgenden Methoden in der aufgeführten Reihenfolge ausprobieren:
- IMF2DBuffer2::Lock2DSize
- IMF2DBuffer::Lock2D
- IMFMediaBuffer::Lock
Der lockFlags-Parameter gibt an, ob der Puffer für schreibgeschützten Zugriff, schreibgeschützten Zugriff oder Lese-/Schreibzugriff gesperrt ist.
- Wenn der Puffer bereits für den schreibgeschützten Zugriff gesperrt ist, kann er nicht für den Schreibzugriff gesperrt werden.
- Wenn der Puffer bereits für schreibgeschützten Zugriff gesperrt ist, kann er nicht für den Lesezugriff gesperrt werden.
- Wenn der Puffer bereits für den Lese-/Schreibzugriff gesperrt ist, kann er für lese- oder schreibzugriff gesperrt werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mfobjects.h (include Mfidl.h) |