diff options
| author | Girish Pattabiraman <[email protected]> | 2018-08-13 10:54:19 -0700 |
|---|---|---|
| committer | Adonais Romero González <[email protected]> | 2018-08-13 10:54:19 -0700 |
| commit | 2af3e666d01a60568c2875b4ccbd56b122ad714f (patch) | |
| tree | 29825a7b7cb0f6a9f77f1ab6e5813665d45ca4cc /audio/sysvad/savedata.cpp | |
| parent | 181c180357cdf9a04d5e3bb21a8e86dc2155ca69 (diff) | |
Update sample to get ready for RS4 changes - merge pre-RS4 fixes. (#256)
* Format Changes
==============
* Add KSEVENT_PINCAPS_FORMATCHANGE to Bluetooth HFP Endpoints
* Remove 8 bit formats from Bluetooth HFP Endpoints
Name Template
==============
* Bluetooth Endpoints are now based on templates in INF and then customized with endpoints specific data
Sideband Common Interface for future Sideband buses
===================================================
* Add ISidebandDevice
* Add current directory to TabletAudioSample include path. Remove unused compiler flags.
* RS4 bug fixes
Diffstat (limited to 'audio/sysvad/savedata.cpp')
| -rw-r--r-- | audio/sysvad/savedata.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/audio/sysvad/savedata.cpp b/audio/sysvad/savedata.cpp index 573e491f..7e60cf4d 100644 --- a/audio/sysvad/savedata.cpp +++ b/audio/sysvad/savedata.cpp @@ -48,6 +48,7 @@ Abstract: #define DEFAULT_BUFFER_SIZE DEFAULT_FRAME_SIZE * DEFAULT_FRAME_COUNT #define DEFAULT_FILE_NAME L"\\DosDevices\\C:\\STREAM" +#define OSDATA_FILE_NAME L"\\DosDevices\\O:\\STREAM" #define OFFLOAD_FILE_NAME L"OFFLOAD" #define HOST_FILE_NAME L"HOST" @@ -451,6 +452,10 @@ CSaveData::Initialize NTSTATUS ntStatus = STATUS_SUCCESS; WCHAR szTemp[MAX_PATH]; size_t cLen; + OBJECT_ATTRIBUTES objectAttributes; + UNICODE_STRING osDataVolumeString; + HANDLE osDataFileHandle = NULL; + IO_STATUS_BLOCK ioStatusBlock; DPF_ENTER(("[CSaveData::Initialize]")); @@ -463,9 +468,42 @@ CSaveData::Initialize m_ulStreamId++; } + // Probe if OSData volume exists. + // + RtlStringCchPrintfW(szTemp, MAX_PATH, L"%s_probe.txt", OSDATA_FILE_NAME); + RtlInitUnicodeString(&osDataVolumeString, szTemp); + InitializeObjectAttributes + ( + &objectAttributes, + &osDataVolumeString, + OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, + NULL, + NULL + ); + + ntStatus = + ZwCreateFile + ( + &osDataFileHandle, + GENERIC_WRITE | SYNCHRONIZE, + &objectAttributes, + &ioStatusBlock, + NULL, + FILE_ATTRIBUTE_NORMAL, + 0, + FILE_OVERWRITE_IF, + FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, + NULL, + 0 + ); + if (NT_SUCCESS(ntStatus)) + { + ZwClose(osDataFileHandle); + } + // Allocate data file name. // - RtlStringCchPrintfW(szTemp, MAX_PATH, L"%s_%s_%d.wav", DEFAULT_FILE_NAME, _bOffloaded ? OFFLOAD_FILE_NAME : HOST_FILE_NAME, _bOffloaded ? m_ulOffloadStreamId : m_ulStreamId); + RtlStringCchPrintfW(szTemp, MAX_PATH, L"%s_%s_%d.wav", NT_SUCCESS(ntStatus) ? OSDATA_FILE_NAME : DEFAULT_FILE_NAME, _bOffloaded ? OFFLOAD_FILE_NAME : HOST_FILE_NAME, _bOffloaded ? m_ulOffloadStreamId : m_ulStreamId); m_FileName.Length = 0; ntStatus = RtlStringCchLengthW (szTemp, sizeof(szTemp)/sizeof(szTemp[0]), &cLen); if (NT_SUCCESS(ntStatus)) |
