Skip to content

Commit 3dd2018

Browse files
committed
Fix incorrect DeviceIoControl usage
1 parent dcc6b46 commit 3dd2018

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

SarAsio/sarclient.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ bool SarClient::setBufferLayout()
271271
{
272272
SarSetBufferLayoutRequest request = {};
273273
SarSetBufferLayoutResponse response = {};
274+
DWORD dummy;
274275

275276
request.bufferSize = 1024 * 1024 * 16; // TODO: size based on endpoint config
276277
request.frameSize =
@@ -284,7 +285,7 @@ bool SarClient::setBufferLayout()
284285

285286
if (!DeviceIoControl(_device, SAR_SET_BUFFER_LAYOUT,
286287
(LPVOID)&request, sizeof(request), (LPVOID)&response, sizeof(response),
287-
nullptr, nullptr)) {
288+
&dummy, nullptr)) {
288289

289290
return false;
290291
}
@@ -299,6 +300,7 @@ bool SarClient::setBufferLayout()
299300
bool SarClient::createEndpoints()
300301
{
301302
int i = 0;
303+
DWORD dummy;
302304

303305
for (auto& endpoint : _driverConfig.endpoints) {
304306
SarCreateEndpointRequest request = {};
@@ -311,7 +313,7 @@ bool SarClient::createEndpoints()
311313
wcscpy_s(request.id, UTF8ToWide(endpoint.id).c_str());
312314

313315
if (!DeviceIoControl(_device, SAR_CREATE_ENDPOINT,
314-
(LPVOID)&request, sizeof(request), nullptr, 0, nullptr, nullptr)) {
316+
(LPVOID)&request, sizeof(request), nullptr, 0, &dummy, nullptr)) {
315317

316318
std::ostringstream os;
317319

@@ -327,8 +329,10 @@ bool SarClient::createEndpoints()
327329

328330
bool SarClient::enableRegistryFilter()
329331
{
332+
DWORD dummy;
333+
330334
return DeviceIoControl(_device, SAR_START_REGISTRY_FILTER,
331-
nullptr, 0, nullptr, 0, nullptr, nullptr) == TRUE;
335+
nullptr, 0, nullptr, 0, &dummy, nullptr) == TRUE;
332336
}
333337

334338
void SarClient::updateNotificationHandles()

SarCtl/SarCtl.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@ BOOL createEndpoint(
2626
LPWSTR name)
2727
{
2828
SarCreateEndpointRequest request = {};
29+
DWORD dummy;
2930

3031
request.type = endpointType;
3132
request.index = index;
3233
request.channelCount = channelCount;
3334
wcscpy_s(request.name, name);
3435

3536
if (!DeviceIoControl(device, SAR_CREATE_ENDPOINT,
36-
(LPVOID)&request, sizeof(request), nullptr, 0, nullptr, nullptr)) {
37+
(LPVOID)&request, sizeof(request), nullptr, 0, &dummy, nullptr)) {
3738
return FALSE;
3839
}
3940

@@ -49,6 +50,7 @@ BOOL setBufferLayout(
4950
{
5051
SarSetBufferLayoutRequest request = {};
5152
SarSetBufferLayoutResponse response = {};
53+
DWORD dummy;
5254

5355
request.bufferSize = bufferSize;
5456
request.frameSize = 512;
@@ -57,7 +59,7 @@ BOOL setBufferLayout(
5759

5860
if (!DeviceIoControl(device, SAR_SET_BUFFER_LAYOUT,
5961
(LPVOID)&request, sizeof(request), (LPVOID)&response, sizeof(response),
60-
nullptr, nullptr)) {
62+
&dummy, nullptr)) {
6163

6264
return FALSE;
6365
}
@@ -80,8 +82,10 @@ BOOL setBufferLayout(
8082

8183
BOOL startRegistryFilter(HANDLE device)
8284
{
85+
DWORD dummy;
86+
8387
return DeviceIoControl(device, SAR_START_REGISTRY_FILTER,
84-
nullptr, 0, nullptr, 0, nullptr, nullptr);
88+
nullptr, 0, nullptr, 0, &dummy, nullptr);
8589
}
8690

8791
int main(int argc, char *argv[])

0 commit comments

Comments
 (0)