1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-08 03:45:57 +00:00

nsi: Implement NsiCancelChangeNotification().

This commit is contained in:
Paul Gofman 2023-07-25 19:28:25 -06:00 committed by Alexandre Julliard
parent a72f91f5f5
commit 79165b1624
2 changed files with 20 additions and 14 deletions

View File

@ -119,9 +119,15 @@ err:
DWORD WINAPI NsiCancelChangeNotification( OVERLAPPED *ovr )
{
FIXME( "%p stub.\n", ovr );
DWORD err = ERROR_SUCCESS;
return ERROR_NOT_SUPPORTED;
TRACE( "%p.\n", ovr );
if (!ovr) return ERROR_NOT_FOUND;
if (!CancelIoEx( get_nsi_device( TRUE ), ovr ))
err = GetLastError();
return err;
}
DWORD WINAPI NsiEnumerateObjectsAllParameters( DWORD unk, DWORD unk2, const NPI_MODULEID *module, DWORD table,

View File

@ -1056,24 +1056,24 @@ void test_change_notifications(void)
ok( !bret && GetLastError() == ERROR_IO_INCOMPLETE, "got bret %d, err %lu.\n", bret, GetLastError() );
ret = NsiCancelChangeNotification( NULL );
todo_wine ok( ret == ERROR_NOT_FOUND, "got %lu.\n", ret );
ok( ret == ERROR_NOT_FOUND, "got %lu.\n", ret );
ret = NsiCancelChangeNotification( &ovr );
todo_wine ok( !ret, "got %lu.\n", ret );
ok( !ret, "got %lu.\n", ret );
bytes = 0xdeadbeef;
bret = GetOverlappedResult( handle, &ovr, &bytes, FALSE );
bret = GetOverlappedResult( handle, &ovr, &bytes, TRUE );
todo_wine ok( !bret && GetLastError() == ERROR_OPERATION_ABORTED, "got bret %d, err %lu.\n", bret, GetLastError() );
todo_wine ok( ovr.Internal == (ULONG)STATUS_CANCELLED, "got %Ix.\n", ovr.Internal );
todo_wine ok( !bytes, "got %lu.\n", bytes );
ok( !bret && GetLastError() == ERROR_OPERATION_ABORTED, "got bret %d, err %lu.\n", bret, GetLastError() );
ok( ovr.Internal == (ULONG)STATUS_CANCELLED, "got %Ix.\n", ovr.Internal );
ok( !bytes, "got %lu.\n", bytes );
bret = GetOverlappedResult( handle2, &ovr2, &bytes, FALSE );
ok( !bret && GetLastError() == ERROR_IO_INCOMPLETE, "got bret %d, err %lu.\n", bret, GetLastError() );
ret = NsiCancelChangeNotification( &ovr2 );
todo_wine ok( !ret, "got %lu.\n", ret );
bret = GetOverlappedResult( handle, &ovr, &bytes, FALSE );
todo_wine ok( !bret && GetLastError() == ERROR_OPERATION_ABORTED, "got bret %d, err %lu.\n", bret, GetLastError() );
ok( !ret, "got %lu.\n", ret );
bret = GetOverlappedResult( handle, &ovr, &bytes, TRUE );
ok( !bret && GetLastError() == ERROR_OPERATION_ABORTED, "got bret %d, err %lu.\n", bret, GetLastError() );
ret = NsiRequestChangeNotification( 0, &NPI_MS_NDIS_MODULEID, NSI_NDIS_INDEX_LUID_TABLE, &ovr, &handle );
todo_wine ok( ret == ERROR_INVALID_PARAMETER, "got %lu.\n", ret );
@ -1081,9 +1081,9 @@ void test_change_notifications(void)
ret = NsiRequestChangeNotification( 0, &NPI_MS_IPV4_MODULEID, NSI_IP_FORWARD_TABLE, &ovr, &handle );
ok( ret == ERROR_IO_PENDING, "got %lu.\n", ret );
ret = NsiCancelChangeNotification( &ovr );
todo_wine ok( !ret, "got %lu.\n", ret );
bret = GetOverlappedResult( handle, &ovr, &bytes, FALSE );
todo_wine ok( !bret && GetLastError() == ERROR_OPERATION_ABORTED, "got bret %d, err %lu.\n", bret, GetLastError() );
ok( !ret, "got %lu.\n", ret );
bret = GetOverlappedResult( handle, &ovr, &bytes, TRUE );
ok( !bret && GetLastError() == ERROR_OPERATION_ABORTED, "got bret %d, err %lu.\n", bret, GetLastError() );
}
START_TEST( nsi )