anchor.diff:      final bufferPtr = arena<BTH_LE_GATT_DESCRIPTOR>(bufferCountPtr.value);
       final numberPtr = arena<USHORT>();
   
  -    hr = BluetoothGATTGetDescriptors(hDevice, characteristicPtr, bufferCountPtr.value,
  -          bufferPtr, numberPtr, BLUETOOTH_GATT_FLAG_NONE);
  +    hr = BluetoothGATTGetDescriptors(hDevice, characteristicPtr,
  +        bufferCountPtr.value, bufferPtr, numberPtr, BLUETOOTH_GATT_FLAG_NONE);
       if (hr != S_OK) {
         print('BluetoothGATTGetDescriptors - Get Buffer Data error: $hr');
         throw WindowsException(hr);
  
positive.code:       print('BluetoothGATTGetServices - Get Buffer Count error: $hr');
        throw WindowsException(hr);
      }
    
      final bufferPtr = arena<BTH_LE_GATT_SERVICE>(bufferCountPtr.value);
      final numberPtr = arena<USHORT>();
    
      hr = BluetoothGATTGetServices(hDevice, bufferCountPtr.value,
          bufferPtr, numberPtr, BLUETOOTH_GATT_FLAG_NONE);
    
      if (hr != S_OK) {
        print('BluetoothGATTGetServices - Get Buffer Data error: $hr');
        throw WindowsException(hr);
      }
    
      for (var i = 0; i < numberPtr.value; i++) {
        final servicePtr = Pointer<BTH_LE_GATT_SERVICE>.fromAddress(
            bufferPtr.address + i * sizeOf<BTH_LE_GATT_SERVICE>());
        print(
            '└─BTH_LE_GATT_SERVICE - ${servicePtr.ref.ServiceUuid.LongUuid}');
        printCharacteristicsByService(hDevice, servicePtr);
      }
    });
  }
  
  void printCharacteristicsByService(int hDevice, Pointer<BTH_LE_GATT_SERVICE> servicePtr) {
    int hr;
    using((Arena arena) {
      final bufferCountPtr = arena<USHORT>();
      hr = BluetoothGATTGetCharacteristics(
          hDevice, servicePtr, 0, nullptr, bufferCountPtr, BLUETOOTH_GATT_FLAG_NONE);
      if (hr != HRESULT_FROM_WIN32(ERROR_MORE_DATA)) {
        if (hr == HRESULT_FROM_WIN32(ERROR_NOT_FOUND)) {
          return;
  
negative.code:     final bufferPtr = arena<BTH_LE_GATT_CHARACTERISTIC>(bufferCountPtr.value);
      final numberPtr = arena<USHORT>();
  
      hr = BluetoothGATTGetCharacteristics(hDevice, servicePtr,
          bufferCountPtr.value, bufferPtr, numberPtr, BLUETOOTH_GATT_FLAG_NONE);
      if (hr != S_OK) {
        print('BluetoothGATTGetCharacteristics - Get Buffer Data error: $hr');
        throw WindowsException(hr);
  