lunghezze dei buffer CDR EvtIoDeviceControl
Domanda
Durante la manipolazione richieste DeviceIoControl in un driver CDR qual è il modo corretto per ottenere la dimensione del buffer di ingresso / uscita.
Sembra essere sia passato come parametro:
VOID
EvtIoDeviceControl(IN WDFQUEUE Queue, IN WDFREQUEST Request,
IN size_t OutputBufferLength,
IN size_t InputBufferLength,
IN ULONG IoControlCode)
Ma disponibile attraverso WdfRequestRetrieveInputBuffer
che è richiesto per ottenere l'accesso al buffer richiesta.
Sono quindi chiedo se c'è una differenza tra il parametro InputBufferLength
e il valore impostato dal WdfRequestRetrieveInputBuffer
(il parametro Length
).
Soluzione
Non c'è alcuna differenza tra i due. Il ragazzo che ha progettato l'interfaccia pensato che sarebbe stato conveniente avere il parametro in entrambi i luoghi. Non ho mai trovato che sia il caso, me stesso, ma è lì nel caso in cui lo fai.
Jake Oshins