Funzione DrvEscape (winddi.h)
La funzione DrvEscape viene usata per recuperare informazioni da un dispositivo che non è disponibile in un'interfaccia del driver di dispositivo indipendente dal dispositivo; la query specifica dipende dal valore del parametro iEsc .
Sintassi
ULONG DrvEscape(
[in] SURFOBJ *pso,
[in] ULONG iEsc,
[in] ULONG cjIn,
[in] PVOID pvIn,
[in] ULONG cjOut,
[out] PVOID pvOut
);
Parametri
[in] pso
Puntatore a una struttura SURFOBJ che descrive la superficie a cui viene indirizzata la chiamata.
[in] iEsc
Specifica una query. Il significato degli altri parametri dipende da questo valore. QUERYESCSUPPORT è l'unico valore predefinito; esegue una query sul fatto che il driver supporti una determinata funzione di escape. In questo caso , pvIn punta a un numero di funzione di escape; cjOut e pvOut vengono ignorati. Se la funzione specificata è supportata, il valore restituito è diverso da zero.
[in] cjIn
Specifica le dimensioni, in byte, del buffer a cui fa riferimento pvIn.
[in] pvIn
Puntatore ai dati di input per la chiamata. Il formato dei dati di input dipende dalla query specificata dal parametro iEsc .
[in] cjOut
Specifica le dimensioni, in byte, del buffer a cui fa riferimento pvOut.
[out] pvOut
Puntatore al buffer di output. Il formato dei dati di output dipende dalla query specificata dal parametro iEsc .
Valore restituito
Il valore restituito dipende dalla query specificata dal parametro iEsc . Se la funzione specificata nella query non è supportata, il valore restituito è zero.
Commenti
Il disegno sul dispositivo non è consentito in questa funzione. DrvDrawEscape deve essere usato per il supporto di disegno specializzato.
GDI passa i dati direttamente da un'applicazione client (possibilmente dannosa) al driver, il che significa che la funzione DrvEscape deve convalidare tutti gli argomenti di input. In particolare, questa funzione deve:
- Verificare che il valore ricevuto nel parametro iEsc rappresenti una query valida.
- Verificare che le dimensioni del buffer di input (il valore nel parametro cjIn ) siano valide per la query specificata.
- Verificare che il contenuto del buffer a cui punta il parametro pvIn sia valido per la query specificata.
- Verificare che le dimensioni del buffer di output specificato (il valore nel parametro cjOut ) siano valide per la query specificata.
DrvEscape è facoltativo per tutti i driver.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | winddi.h (include Winddi.h) |