PDD_IoControl (Windows CE 5.0)
This function sends IOCTL codes that are not part of the Wave or Mixer API to the audio driver's PDD layer.
BOOL PDD_IoControl(PDWORDpdwOpenData,
DWORDdwCode,
PBYTEpBufIn,
DWORDdwLenIn,
PBYTEpBufOut,
DWORDdwLenOut,
PDWORDpdwActualOut);
Parameters
- pdwOpenData
Specifies a value returned from the messaging function. - dwCode
I/O control operation to perform. These codes are device-specific and usually exposed to developers through a header file.. - pBufIn
Pointer to the buffer containing data to transfer to the PDD layer. - dwLenIn
Number of bytes of data in the buffer specified for pBufIn. - pBufOut
Pointer to the buffer used to transfer the output data from the device. - dwLenOut
Maximum number of bytes in the buffer specified by pBufOut. - pdwActualOut
Pointer to the DWORD buffer that this function uses to return the actual number of bytes received from the PDD layer.
Return Values
TRUE indicates success. FALSE indicates failure.
Remarks
This function allows the PDD layer to handle previously unrecognized IOCTL codes not sent with PDD_AudioMessage or PDD_WaveProc, such as those for power management. To implement this function, you must first initialize a global function pointer in the PDD layer. This is necessary so as to not break existing PDD implementations.
The following code sample shows how to initialize a global function pointer to allow an audio driver to handle new IOCTL calls:
// Example of how to override handling of other IOCTL messages (other than wave and mixer), e.g. to handle power manager IOCTLs.
// The MDD can init this global to a function to override default handling of unrecognized IoControl codes
extern PFN_IOCONTROL pfn_PDD_IoControl = PDD_IoControl;
BOOL PDD_IoControl(
PDWORD pdwOpenData,
DWORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut
)
Requirements
OS Versions: Windows CE 1.0 and later.
Header: Waveddsi.h.
See Also
Send Feedback on this topic to the authors